KeyID
NPM · @KEYID/AGENT-KIT · 2 COMPONENTS · SCANNED SEP 20
Signup sessions, browser continuity, email, SMS, and OTP/TOTP infrastructure for AI agents.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security98
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 31 of 95 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency19
- Repository check failed: the declared repository URL returned HTTP 404. See how to fix → View diagnostics → Fail
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 36 days ago).Pass
- Security-disclosure policy not yet verified: we couldn't inspect the source repository.Unverified
Schema Quality & AI Usability77
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (good).Pass
- Tool/resource definitions use about 2955 tokens (~41/item across 71 items; 64 tools + 7 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage74
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 22% of tool parameters carry a description.Partial
Tool Safety96
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 6 of 7 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "send_email" implies "send" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Partial
- An AI judge read all 65 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the KeyID MCP server?
KeyID runs locally as an npm package, launched with npx -y @keyid/agent-kit. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · @keyid/agent-kit
claude mcp add keyid-ai-keyid -- npx -y @keyid/agent-kit
{
"mcpServers": {
"keyid-ai-keyid": {
"command": "npx",
"args": [
"-y",
"@keyid/agent-kit"
]
}
}
} {
"servers": {
"keyid-ai-keyid": {
"command": "npx",
"args": [
"-y",
"@keyid/agent-kit"
]
}
}
} codex mcp add keyid-ai-keyid -- npx -y @keyid/agent-kit
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"keyid-ai-keyid": {
"type": "local",
"command": [
"npx",
"-y",
"@keyid/agent-kit"
],
"enabled": true
}
}
} openclaw mcp add keyid-ai-keyid --command npx --arg -y --arg @keyid/agent-kit
mcp_servers:
keyid-ai-keyid:
command: "npx"
args: ["-y", "@keyid/agent-kit"] {
"McpServers": {
"keyid-ai-keyid": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"@keyid/agent-kit"
]
}
}
} assistant mcp add keyid-ai-keyid -t stdio -c npx -a -y @keyid/agent-kit
{
"mcpServers": {
"keyid-ai-keyid": {
"command": "npx",
"args": [
"-y",
"@keyid/agent-kit"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 20 Sept 26 +1
- Stability: 0.97 → pass security
- 18 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
- 16 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 15 Sept 26 −3
- Stability: pass → 0.83 functional
- 14 Sept 26 +1
- Stability: 0.97 → pass security
- 12 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
- 10 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 9 Sept 26 −3
- Stability: pass → 0.83 functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 20 Sept 2026 · Analysed npm/@keyid/agent-kit@0.4.1
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Background: How many MCP packages publish verified provenance →
Dependencies 95 packages
| Packages resolved | 95 |
|---|---|
| Stale | 31 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
block_registration_session Block Registration Session ~52
Mark a signup session blocked and record why the flow could not continue.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | – | – |
| metadata | object | – | – |
| reason | string | yes | – |
| sessionId | string | yes | – |
No output schema declared.
No examples provided.
complete_registration_session Complete Registration Session ~35
Mark a signup session complete after the browser flow succeeds.
| Name | Type | Req | Description |
|---|---|---|---|
| metadata | object | – | – |
| sessionId | string | yes | – |
No output schema declared.
No examples provided.
create_cron Schedule a Webhook ~101
Register a webhook URL to fire on a cron schedule. Standard 5-field cron: minute hour day month weekday.
| Name | Type | Req | Description |
|---|---|---|---|
| cronExpr | string | yes | Cron expression (e.g., "0 9 * * MON" for 9am every Monday) |
| name | string | – | Human-readable name for this schedule |
| timezone | string | – | Timezone (default: UTC) |
| webhookUrl | string | yes | URL to receive POST requests on schedule |
No output schema declared.
No examples provided.
create_or_update_persona Create Or Update Persona ~124
Create a persona or update the existing one with explicit overrides.
| Name | Type | Req | Description |
|---|---|---|---|
| addressLine1 | string | – | – |
| city | string | – | – |
| companyName | string | – | – |
| country | string | – | – |
| customFields | object | – | – |
| dateOfBirth | string | – | – |
| firstName | string | – | – |
| fullName | string | – | – |
| gender | string | – | – |
| jobTitle | string | – | – |
| lastName | string | – | – |
| state | string | – | – |
| zip | string | – | – |
No output schema declared.
No examples provided.
create_page Create Agent Page ~75
Claim a slug and create a new agent page. Slug must be 5+ chars, lowercase alphanumeric with hyphens.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | – | Page description |
| slug | string | yes | URL slug (5-40 chars, lowercase alphanumeric + hyphens) |
| title | string | – | Page title |
No output schema declared.
No examples provided.
create_webhook Create Webhook ~28
Create a webhook subscription.
| Name | Type | Req | Description |
|---|---|---|---|
| events | array | – | – |
| url | string | yes | – |
No output schema declared.
No examples provided.
delete_contact Delete Contact ~22
Delete a contact by ID.
| Name | Type | Req | Description |
|---|---|---|---|
| contactId | string | yes | – |
No output schema declared.
No examples provided.
delete_cron Delete Scheduled Webhook ~27
Remove a scheduled webhook.
| Name | Type | Req | Description |
|---|---|---|---|
| cronId | string | yes | Cron job ID to delete |
No output schema declared.
No examples provided.
delete_file Delete File ~26
Delete a stored file by key.
| Name | Type | Req | Description |
|---|---|---|---|
| key | string | yes | File key to delete |
No output schema declared.
No examples provided.
delete_page Delete Agent Page ~27
Delete a page and all its files.
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | yes | Page slug to delete |
No output schema declared.
No examples provided.
delete_page_file Delete Page File ~38
Delete a single file from an agent page.
| Name | Type | Req | Description |
|---|---|---|---|
| path | string | yes | File path to delete |
| slug | string | yes | Page slug |
No output schema declared.
No examples provided.
delete_secret Delete Secret ~20
Delete a vault entry.
| Name | Type | Req | Description |
|---|---|---|---|
| key | string | yes | – |
No output schema declared.
No examples provided.
follow_verification_link Follow Verification Link ~46
Follow a verification link directly or from an extracted message link list.
| Name | Type | Req | Description |
|---|---|---|---|
| linkIndex | integer | – | – |
| messageId | string | – | – |
| url | string | – | – |
No output schema declared.
No examples provided.
get_auto_reply Get Auto Reply ~17
Fetch the current auto-reply configuration.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_file Get File ~31
Download a stored file by key. Returns base64-encoded content.
| Name | Type | Req | Description |
|---|---|---|---|
| key | string | yes | File key |
No output schema declared.
No examples provided.
get_forwarding Get Forwarding ~15
Fetch the current forwarding address.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_identity Get Identity ~22
Fetch the current KeyID identity, address, phone, and reputation.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_message Get Message ~27
Fetch the full details for a single message.
| Name | Type | Req | Description |
|---|---|---|---|
| messageId | string | yes | Message ID |
No output schema declared.
No examples provided.
get_metrics Get Metrics ~44
Fetch usage metrics for the current identity.
| Name | Type | Req | Description |
|---|---|---|---|
| event | string | – | – |
| period | string | – | – |
| since | string | – | – |
| until | string | – | – |
No output schema declared.
No examples provided.
get_page Get Agent Page ~26
Get details of an agent page by slug.
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | yes | Page slug |
No output schema declared.
No examples provided.
get_persona Get Persona ~17
Fetch the synthetic persona used for registrations.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_registration Get Registration ~23
Fetch one registration record by ID.
| Name | Type | Req | Description |
|---|---|---|---|
| registrationId | string | yes | – |
No output schema declared.
No examples provided.
get_registration_artifacts Get Registration Artifacts ~31
Fetch the normalized artifacts attached to a signup session in priority order.
| Name | Type | Req | Description |
|---|---|---|---|
| sessionId | string | yes | – |
No output schema declared.
No examples provided.
get_registration_session Get Registration Session ~31
Fetch one signup session, including its latest artifact summary and lease state.
| Name | Type | Req | Description |
|---|---|---|---|
| sessionId | string | yes | – |
No output schema declared.
No examples provided.
get_reputation Get Reputation ~18
Fetch the current reputation score and factor breakdown.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_secret Get Secret ~23
Retrieve a decrypted vault entry by key.
| Name | Type | Req | Description |
|---|---|---|---|
| key | string | yes | – |
No output schema declared.
No examples provided.
get_signature Get Signature ~14
Fetch the current email signature.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_thread Get Thread ~25
Fetch a thread and all of its messages.
| Name | Type | Req | Description |
|---|---|---|---|
| threadId | string | yes | – |
No output schema declared.
No examples provided.
get_totp_code Get TOTP Code ~32
Generate the current TOTP code for a stored authenticator entry.
| Name | Type | Req | Description |
|---|---|---|---|
| totpId | string | yes | – |
No output schema declared.
No examples provided.
get_verification_codes Get Verification Codes ~72
Read OTP or verification codes from a message, or from the latest matching message.
| Name | Type | Req | Description |
|---|---|---|---|
| channel | string | – | – |
| messageId | string | – | – |
| search | string | – | – |
| senderContains | string | – | – |
| subjectContains | string | – | – |
| timeoutSeconds | integer | – | – |
No output schema declared.
No examples provided.
get_webhook_deliveries Get Webhook Deliveries ~32
Inspect recent webhook delivery attempts.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| page | integer | – | – |
No output schema declared.
No examples provided.
list_contacts List Contacts ~15
List saved contacts for the identity.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_crons List Scheduled Webhooks ~20
List cron jobs that fire webhooks on a schedule.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_files List Files ~41
List files stored for the current agent.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| page | integer | – | – |
| prefix | string | – | Filter by key prefix |
No output schema declared.
No examples provided.
list_messages List Messages ~100
List email or SMS messages with search and inbox filters.
| Name | Type | Req | Description |
|---|---|---|---|
| channel | string | – | – |
| direction | string | – | – |
| labels | string | – | Comma-separated label filter |
| limit | integer | – | – |
| page | integer | – | – |
| search | string | – | – |
| senderContains | string | – | – |
| since | string | – | ISO timestamp filter |
| subjectContains | string | – | – |
| unreadOnly | boolean | – | – |
No output schema declared.
No examples provided.
list_page_files List Page Files ~26
List all files in an agent page.
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | yes | Page slug |
No output schema declared.
No examples provided.
list_pages List Agent Pages ~17
List all pages owned by the current agent.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_registration_sessions List Registration Sessions ~47
List current and historical signup sessions for this identity.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| page | integer | – | – |
| service | string | – | – |
| status | string | – | – |
No output schema declared.
No examples provided.
list_registrations List Registrations ~43
List saved service registrations.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| page | integer | – | – |
| service | string | – | – |
| status | string | – | – |
No output schema declared.
No examples provided.
list_secrets List Secrets ~17
List vault keys without exposing secret values.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_threads List Threads ~37
List conversation threads for the current identity.
| Name | Type | Req | Description |
|---|---|---|---|
| labels | string | – | – |
| limit | integer | – | – |
| page | integer | – | – |
No output schema declared.
No examples provided.
list_totp_entries List TOTP Entries ~21
List registered authenticator/TOTP entries for the identity.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_webhooks List Webhooks ~16
List webhook subscriptions for the identity.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
load_browser_state Load Browser State ~27
Load the saved browser state for a signup session.
| Name | Type | Req | Description |
|---|---|---|---|
| sessionId | string | yes | – |
No output schema declared.
No examples provided.
provision_identity Provision Identity ~36
Create or reveal the email identity for this MCP session.
| Name | Type | Req | Description |
|---|---|---|---|
| storageType | string | – | How the local MCP session stores its private key |
No output schema declared.
No examples provided.
put_secret Put Secret ~45
Create or update a vault entry.
| Name | Type | Req | Description |
|---|---|---|---|
| contentType | string | – | – |
| expiresAt | string | – | – |
| key | string | yes | – |
| value | string | yes | – |
No output schema declared.
No examples provided.
reply_to_message Reply To Message ~49
Reply to a message, optionally as reply-all.
| Name | Type | Req | Description |
|---|---|---|---|
| body | string | – | – |
| html | string | – | – |
| messageId | string | yes | – |
| replyAll | boolean | – | – |
No output schema declared.
No examples provided.
request_phone_number Request Phone Number ~20
Assign a phone number to the current KeyID identity.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
save_browser_state Save Browser State ~58
Store cookies and browser session state for a signup session in the KeyID vault.
| Name | Type | Req | Description |
|---|---|---|---|
| expiresAt | string | – | – |
| sessionId | string | yes | – |
| state | – | yes | Browser state object, typically cookies plus localStorage or sessionStorage |
No output schema declared.
No examples provided.
save_registration Save Registration ~87
Create or update a registration record for an external service.
| Name | Type | Req | Description |
|---|---|---|---|
| emailUsed | string | – | – |
| id | string | – | – |
| metadata | object | – | – |
| phoneUsed | string | – | – |
| registeredAt | string | – | – |
| serviceName | string | – | – |
| serviceUrl | string | – | – |
| status | string | – | – |
| username | string | – | – |
No output schema declared.
No examples provided.
What is the KeyID MCP server?
KeyID is an MCP server listed in the public MCP registry as io.github.KeyID-AI/keyid. Signup sessions, browser continuity, email, SMS, and OTP/TOTP infrastructure for AI agents. This page covers its npm package (@keyid/agent-kit).
Is the KeyID MCP server safe to use?
KeyID scores 77 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the KeyID MCP server expose?
KeyID exposes 64 tools: provision_identity, get_identity, request_phone_number, list_messages, wait_for_message, and 59 more. Their descriptions and schemas cost roughly 2,863 tokens of context every time the server is loaded.
Is the KeyID MCP server still maintained?
KeyID is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the KeyID MCP server under?
KeyID declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.