Server data from the Official MCP Registry
MCP server for Web Bluetooth on iOS Safari: scaffolding, UUID lookup, extension detection.
MCP server for Web Bluetooth on iOS Safari: scaffolding, UUID lookup, extension detection.
Valid MCP server (1 strong, 1 medium validity signals). No known CVEs in dependencies. ⚠️ Package registry links to a different repository than scanned source. Imported from the Official MCP Registry. 1 finding(s) downgraded by scanner intelligence.
13 files analyzed · 1 issue found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
Add this to your MCP configuration file:
{
"mcpServers": {
"com-beacio-mcp": {
"args": [
"-y",
"@beacio/mcp"
],
"command": "npx"
}
}
}From the project's GitHub README.
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.
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Web content fetching and conversion for efficient LLM usage
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.