MCP server to ship Web Bluetooth on iPhone Safari via the WebBLE extension.
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"io-github-wklm-ios-web-bluetooth": {
"command": "<see-readme>",
"args": []
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
MCP server to ship Web Bluetooth on iPhone Safari via the WebBLE extension.
No automated test available for this server. Check the GitHub README for setup instructions.
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
No package registry to scan.
This server is missing a description. Tools and install config are also missing.If you've used it, help the community.
Add informationBe the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in other
Pi Coding Agent extension (CLI-first) — routes bash/read/grep/find/ls through lean-ctx CLI for strong token savings. Optional MCP bridge can register advanced tools.
Apify MCP Server
97% token reduction for AI coding sessions — zero deps, 21 languages, MCP server
MCP proxy that compresses prose fields (tool descriptions, etc.) using caveman rules. Same accuracy, fewer context tokens.
MCP Security Weekly
Get CVE alerts and security updates for io.github.wklm/ios-web-bluetooth and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
Web Bluetooth SDK for iOS Safari. Scan, connect, and talk to BLE devices from any web app.
| Package | Purpose | Size |
|---|---|---|
@ios-web-bluetooth/core | BLE scanning, connecting, GATT read/write/subscribe | ~4KB gzip |
@ios-web-bluetooth/detect | iOS extension detection + install banner | ~2KB gzip |
@ios-web-bluetooth/profiles | Typed BLE profiles (heart rate, battery, etc.) | Optional |
@ios-web-bluetooth/react | React hooks (useDevice, useCharacteristic) | Optional |
@ios-web-bluetooth/cli | CLI tooling | Optional |
@ios-web-bluetooth/mcp | MCP server for AI coding agents | Optional |
npm install @ios-web-bluetooth/core @ios-web-bluetooth/detect
import { initIOSWebBLE, isIOSSafari } from '@ios-web-bluetooth/detect';
import { WebBLE, WebBLEError } from '@ios-web-bluetooth/core';
// 1. On iOS Safari, detect the extension and prompt install if missing
if (isIOSSafari()) {
await initIOSWebBLE({
operatorName: 'MyApp',
banner: { mode: 'sheet' },
onReady: () => console.log('Extension ready'),
});
}
// 2. Scan and connect (works on iOS Safari + Chrome + Edge)
const ble = new WebBLE();
const device = await ble.requestDevice({
filters: [{ services: ['heart_rate'] }],
});
await device.connect();
// 3. Read a value
const value = await device.read('heart_rate', 'heart_rate_measurement');
console.log('Heart rate:', value.getUint8(1));
// 4. Subscribe to notifications
const unsub = device.subscribe('heart_rate', 'heart_rate_measurement', (v) => {
console.log('Heart rate:', v.getUint8(1));
});
// 5. Clean up
unsub();
await device.disconnect();
For plain HTML (no bundler):
<script src="https://ioswebble.com/webble.js"></script>
All errors are WebBLEError instances with a typed code and a human-readable suggestion:
try {
const device = await ble.requestDevice({
filters: [{ services: ['heart_rate'] }],
});
await device.connect();
} catch (err) {
if (err instanceof WebBLEError) {
console.log(err.code); // e.g. 'DEVICE_NOT_FOUND'
console.log(err.suggestion); // 'No matching devices in range'
}
}
MCP server for coding agents (Claude Code, Cursor, Copilot):
npx -y @ios-web-bluetooth/mcp
Full SDK reference for LLM context: https://ioswebble.com/llms-full.txt
Each package has its own README with full API reference:
@ios-web-bluetooth/core README -- scanning, connecting, GATT operations, error codes@ios-web-bluetooth/detect README -- extension detection, install banners, React provider@ios-web-bluetooth/react README -- React hooks, provider setup, and UI componentsProprietary. See individual package licenses.