@keylio/mcp
v1.0.1
Published
Local stdio MCP bridge for Keylio's hosted MCP endpoint.
Downloads
32
Maintainers
Readme
@keylio/mcp
@keylio/mcp is a local stdio bridge for Claude Code and other stdio MCP clients. It stays thin by forwarding MCP JSON-RPC requests to Keylio's hosted MCP endpoint at /functions/v1/mcp. The hosted backend remains the source of truth for:
- tool registry
- PAT authentication
- scope enforcement
- confirmations
- tool execution behavior
That means newly added hosted domains such as property notes automatically appear in the local bridge with no separate local tool implementation.
Requirements
- Node.js 20 or newer
- a Keylio personal access token from
Settings->MCP API - a Keylio base URL such as
https://app.keylio.io
Claude Code setup
Use this .mcp.json configuration:
{
"mcpServers": {
"keylio": {
"command": "npx",
"args": ["-y", "@keylio/mcp"],
"env": {
"KEYLIO_BASE_URL": "https://app.keylio.io",
"KEYLIO_PAT": "kmcp_..."
}
}
}
}npx downloads the published package on first run. No global install or npm link is required.
Environment
Required:
KEYLIO_BASE_URLKEYLIO_PAT
Optional:
KEYLIO_MCP_ENDPOINT- overrides the derived MCP endpoint
KEYLIO_BASE_URL may be your app host (for example https://getkeylio.app). App hosts serve the SPA only and do not proxy /functions/v1/*, so the bridge resolves production app hosts to the hosted Supabase MCP endpoint automatically. Supabase and local loopback base URLs still use ${KEYLIO_BASE_URL}/functions/v1/mcp.
Local development fallback
For contributors working from this repository:
npm --prefix packages/keylio-mcp install
npm --prefix packages/keylio-mcp run buildThe built local CLI path is:
/absolute/path/to/keylio-property/packages/keylio-mcp/dist/index.jsManual launch:
KEYLIO_BASE_URL=https://app.keylio.io \
KEYLIO_PAT=kmcp_... \
/absolute/path/to/keylio-property/packages/keylio-mcp/dist/index.jsSmoke test
Run the local smoke test after building:
npm --prefix packages/keylio-mcp run smokeIt always checks:
- missing-env failure behavior
- built CLI startup over stdio
If KEYLIO_PAT and either KEYLIO_BASE_URL or KEYLIO_MCP_ENDPOINT are already set in your shell, it also performs a live tools/list check against that endpoint.
Troubleshooting
- Missing
KEYLIO_PAT- create or copy a personal access token again from
Settings->MCP API
- create or copy a personal access token again from
- Invalid
KEYLIO_BASE_URL- use an absolute
http://orhttps://URL with no query string or fragment
- use an absolute
401or403- confirm the PAT starts with
kmcp_, was copied in full, is not revoked, and your account has MCP API access
- confirm the PAT starts with
- Endpoint unreachable
- check
KEYLIO_BASE_URLorKEYLIO_MCP_ENDPOINT, and confirm the hosted or local Supabase endpoint is reachable
- check
- Tools do not appear
- run
npm --prefix packages/keylio-mcp run smokewith the same environment values and verify the livetools/listcheck succeeds
- run
