Command Palette

Search for a command to run...

UnylyUnyly
Browse all

mcp

FreeNot checked

MCP server for Web Bluetooth on iOS Safari: scaffolding, UUID lookup, extension detection.

GitHubEmbed

About

MCP server for Web Bluetooth on iOS Safari: scaffolding, UUID lookup, extension detection.

README

Web Bluetooth SDK for iOS Safari. Scan, connect, and talk to BLE devices from any web app.

Packages

Package Purpose Size
@beacio/core BLE scanning, connecting, GATT read/write/subscribe ~4KB gzip
@beacio/detect iOS extension detection + install banner ~2KB gzip
@beacio/profiles Typed BLE profiles (heart rate, battery, etc.) Optional
@beacio/react React hooks (useDevice, useCharacteristic) Optional
@beacio/cli CLI tooling Optional
@beacio/mcp MCP server for AI coding agents Optional

Quick Start

npm install @beacio/core @beacio/detect
import { initBeacio, isIOSSafari } from '@beacio/detect';
import { beacio, BeacioError } from '@beacio/core';

// 1. On iOS Safari, detect the extension and prompt install if missing
if (isIOSSafari()) {
  await initBeacio({
    operatorName: 'MyApp',
    banner: { mode: 'sheet' },
    onReady: () => console.log('Extension ready'),
  });
}

// 2. Scan and connect (works on iOS Safari + Chrome + Edge)
const ble = new beacio();
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://beacio.com/beacio.js"></script>

Error Handling

All errors are BeacioError 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 BeacioError) {
    console.log(err.code);       // e.g. 'DEVICE_NOT_FOUND'
    console.log(err.suggestion); // 'No matching devices in range'
  }
}

AI Agent Integration

MCP server for coding agents (Claude Code, Cursor, Copilot):

npx -y @beacio/mcp

Full SDK reference for LLM context: https://beacio.com/llms-full.txt

Documentation

Each package has its own README with full API reference:

Wiki

License

Proprietary. See individual package licenses.

from github.com/wklm/beacio-sdk

Install mcp in Claude Desktop, Claude Code & Cursor

Recommended · one command, every IDE
unyly install com-beacio

Installs into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.

First time? Get the CLI: curl -fsSL https://unyly.org/install | sh

Or configure manually

Run in your terminal:

claude mcp add com-beacio -- npx -y @beacio/mcp

FAQ

Is mcp MCP free?

Yes, mcp MCP is free — one-click install via Unyly at no cost.

Does mcp need an API key?

No, mcp runs without API keys or environment variables.

Is mcp hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install mcp in Claude Desktop, Claude Code or Cursor?

Open mcp on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare mcp with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All development MCPs