Keploy
End-to-end API testing — generate and run tests from OpenAPI, curl, Postman, or real user traffic.
KEkeploy/keploy19k近 7 天新增 36 个 star
MCP server for Bluetooth LE health sensors (standard GATT profiles).
Let an AI agent read any Bluetooth Low Energy sensor that implements the standard Bluetooth SIG health profiles: record heart rate with RR intervals and HRV from a chest strap, read SpO2 and pulse rate from an oximeter, and capture blood pressure, body temperature and weight readings from monitors, thermometers and scales, in physiology labs, sports-science studies, sleep/HRV research and lab-operations settings.
Warning
Research and lab-operations use only. This is not a medical device. It is not intended for diagnosis, monitoring of patients, triage, or any clinical decision-making, and has not been validated or cleared by any regulator. Consumer sensors can be inaccurate; values pass through an AI agent that can misread them. Never use this server's output to make health decisions. Readings of people are personal data: follow your ethics approval and data-protection rules.
| Package | labmcp-ble-health |
| Instruments | Any device implementing the Bluetooth SIG profiles: heart-rate straps/armbands (Heart Rate Service 0x180D), pulse oximeters (Pulse Oximeter Service 0x1822), blood pressure monitors (0x1810), thermometers (Health Thermometer 0x1809), weight scales (Weight Scale 0x181D), plus Battery (0x180F) and Device Information (0x180A) |
| Interfaces | Bluetooth Low Energy, via bleak (Linux/BlueZ, macOS/CoreBluetooth, Windows/WinRT) |
| Protocol | Bluetooth SIG GATT: GATT Specification Supplement, HRS 1.0, PLXS 1.0.1, BLS 1.1.1, HTS 1.0, WSS 1.0.1; IEEE 11073-20601 SFLOAT/FLOAT per the PHD Transcoding White Paper v16 |
| Status | 🧪 simulated: tested against a simulated BLE backend that emits byte-exact GATT packets, not yet verified on hardware. Report a hardware test |
uvx labmcp-ble-health --simulate --check
The simulator provides six devices (addresses 00:00:5E:00:53:01–06, from the IANA documentation range): a combined "health kit" (default) exposing every service, and a separate HR strap, oximeter, BP monitor, thermometer and scale. Pick one with e.g. --simulate --address 00:00:5E:00:53:04.
--address and ask the agent to run scan_devices, or run it with --check after putting the device in advertising mode (wear the strap; press the monitor's Bluetooth/start button). On Linux/Windows the address is the MAC (AA:BB:CC:DD:EE:FF); on macOS it is a CoreBluetooth UUID that is specific to your computer.uvx labmcp-ble-health --address AA:BB:CC:DD:EE:FF --check # Linux / Windows
uvx labmcp-ble-health --address 1A2B3C4D-1111-2222-3333-444455556666 --check # macOS
Devices that require bonding (common for BP monitors and scales): add --option pair=true on Linux/Windows; macOS shows a system pairing prompt automatically. On Linux choose a non-default adapter with --option adapter=hci1; lengthen device discovery with --option connect_timeout_s=40 (at most 60 s).macOS: the terminal (or MCP client app) that launches the server needs Bluetooth permission (System Settings › Privacy & Security › Bluetooth). Without it macOS terminates the process as soon as Bluetooth is touched (exit code 134), before any error message can be printed.
Claude Code
claude mcp add hr-strap -- uvx labmcp-ble-health --address AA:BB:CC:DD:EE:FF
Claude Desktop / Cursor / Windsurf (claude_desktop_config.json, .cursor/mcp.json, …)
{
"mcpServers": {
"hr-strap": {
"command": "uvx",
"args": ["labmcp-ble-health", "--address", "AA:BB:CC:DD:EE:FF"]
}
}
}
Every tool is read-only (nothing on the device is changed, no control points are written), so --read-only makes no difference. Run one server entry per device if you use several sensors at once. For other clients, generate the snippet with uvx labmcp config ble-health --address AA:BB:CC:DD:EE:FF --client vscode (also cursor, codex, claude-code).
| Tool | Kind | Description |
|---|---|---|
get_command_log | 👁 read | Return the most recent raw commands sent to / replies received from the instrument (newest last). Useful for debugging and for recording what was done. |
get_connection_info | 👁 read | Report which instrument is connected (identity, address, simulated or real), whether the server is read-only, and the active safety limits. Call this first. |
get_device_info | 👁 read | Read the device's identity (manufacturer, model, serial, firmware), the standard health services it exposes and its features. |
read_battery | 👁 read | Read the device's battery level (Battery Service, 0-100 %). |
read_pulse_oximetry | 👁 read | Read SpO2 (%) and pulse rate from a pulse oximeter, averaged over a few seconds or as a single spot-check reading. |
read_temperature | 👁 read | Wait for a thermometer to send a temperature measurement and return it in °C. |
read_weight | 👁 read | Wait for a scale to send a weight measurement (kg), with BMI and height if the scale sends them. |
reconnect | 🛑 safety | Close and re-open the connection to the instrument (e.g. after it was power cycled or a cable was re-plugged). |
record_heart_rate | 👁 read | Record heart rate for duration_s: bpm series, RR intervals and time-domain HRV (mean HR, SDNN, RMSSD, pNN50). |
scan_devices | 👁 read | Scan for nearby Bluetooth LE devices: address, name, signal strength and advertised health services. Works without a configured --address. |
wait_for_blood_pressure | 👁 read | Wait for a blood pressure monitor to send a measurement: systolic, diastolic and mean arterial pressure (mmHg) and pulse rate. |
get_connection_info, get_command_log and reconnect are built into every LabMCP server.
| Limit | Default | Meaning |
|---|---|---|
max_record_duration_s | 600 s | Longest heart-rate recording or continuous-oximetry averaging window an agent may start |
max_wait_s | 300 s | Longest time a tool may wait for a blood pressure, temperature, weight or spot-check reading |
Override at launch: --limit max_record_duration_s=1800. Note that many MCP clients also enforce their own per-tool-call timeout; long recordings may need that raised too (e.g. MCP_TOOL_TIMEOUT in Claude Code).
mode="spot_check"; auto must connect first to find out which mode the device supports).reconnect cancels it too; the cancelled call returns an error.get_command_log) rather than discarding the whole recording; record_heart_rate and read_pulse_oximetry report how many in malformed_packets.save_path (record_heart_rate) must be a new .csv file: ~ is expanded, missing folders are created, and an existing file is never overwritten. It is checked before recording starts.other_measurements; the device clock time is in device_timestamp (device local time, often wrong if the clock was never set).null with an explanation (special_values, unavailable_samples). Oximeters typically send NaN for the first seconds while acquiring.unit_reported says what the device sent. Weight resolution is 0.005 kg / 0.01 lb per the Weight Scale spec; 0xFFFF means "measurement unsuccessful" and is returned as weight_kg: null. Energy expended is in kJ (HRS 1.0).| Model | Firmware | Interface | Verified by | Date |
|---|---|---|---|---|
| none yet: be the first |
End-to-end API testing — generate and run tests from OpenAPI, curl, Postman, or real user traffic.
KEkeploy/keploy19k近 7 天新增 36 个 star
MCP server for iOS and Android Mobile Development, Automation and Testing
MOmobile-next/mobile-mcp9k近 7 天新增 329 个 star
MCP server for mobile app automation: verify, control, and debug iOS, Android, TV, and desktop apps
CAcallstack/agent-device5k近 7 天新增 84 个 star
Open-source MCP server for LinkedIn. Give Claude and any MCP-compatible AI agent access to profiles, companies, jobs, and messages.
STstickerdaniel/linkedin-mcp-server3.8k近 7 天新增 75 个 star
The ripgrep of AI context: a zero-dependency C++23 CLI + MCP server for coding agents. Find what you want without reading the repo, then check you built what you meant — blast radius, tests-to-run, quality deltas. Signatures at 74.7% fewer bytes than bodies; every guess labelled, every loss published. Paddle out with a map.
REredhat-et/ripwire2.4k近 7 天新增 33 个 star
An MCP client for Neovim that seamlessly integrates MCP servers into your editing workflow with an intuitive interface for managing, testing, and using MCP servers with your favorite chat plugins.
RAravitemer/mcphub.nvim1.8k近 7 天新增 2 个 star