CorroborateMe
Prove end users to agents and apps: login-links, OIDC clients, and API keys over remote MCP
Hosted MCP Server
npx add-mcp 'https://corroborateme.com/mcp'Installs into Claude Code, Codex, Cursor and more
Documentation
CorroborateMe
Prove end users to agents and apps.
CorroborateMe gives agents and apps company API keys and human login-links with multi-channel notify so they can prove who the end user is - plus OIDC client registration, integration secrets, and budget-aware billing. REST is first-class; MCP is optional.
Live endpoint: https://corroborateme.com/mcp
This repository is the public catalog and schema stub for directory crawlers. It is not the hosted server. Point MCP clients at the live URL above with a CorroborateMe API key (
aa_...) or use MCP OAuth (PRM at /.well-known/oauth-protected-resource). Running the TypeScript in this repo does not authenticate users or store secrets.
Agent guide: see AGENTS.md for discovery URLs, auth, and MCP connect snippets.
Get an API key
Zero-human (agents)
POST https://corroborateme.com/api/agents/bootstrapwith optional{ "company_name": "...", "contact_email": "agent@example.com" }-> bootstrap token (no outbound mail).POST https://corroborateme.com/api/billing/machine-paywithAuthorization: Bearer <bootstrapToken>and optional{ "sku": "pro_prepaid_30d" }.- Settle Stripe MPP when enabled (see live
GET /api/configfor amounts) -> response includessecret(aa_...) when unlock succeeds.
See llms.txt and llms-full.txt. Legal: Terms · Privacy.
Human path
- Open corroborateme.com and create an account.
- Subscribe on Pricing, then mint an API key in the console. Secrets start with
aa_. - Use the company key for REST and MCP.
Never commit a real key. Use the aa_... placeholder in configs.
Connect a client
Transport is Streamable HTTP. Authenticate with either:
Authorization: Bearer aa_...(API key from console or bootstrap + machine-pay), or- MCP OAuth - host discovers PRM at /.well-known/oauth-protected-resource, registers via DCR, and obtains an access token for
https://corroborateme.com/mcp
Cursor
Install via Cursor Marketplace (plugin)
This repo includes a Cursor plugin manifest and root mcp.json for one-click install from the Cursor Marketplace.
- Install the CorroborateMe plugin from the marketplace (or clone this repo for local plugin testing).
- Open Cursor Settings -> Customize -> CorroborateMe and set CorroborateMe API key (
aa_...from bootstrap + machine-pay or the console). - Reload the window. MCP tools should appear under the CorroborateMe server.
The plugin points at https://corroborateme.com/mcp with Authorization: Bearer ${CORROBORATE_ME_API_KEY}. Never commit a real key.
Submit the public repo at cursor.com/marketplace/publish when ready.
Manual MCP config
User or project MCP config:
{
"mcpServers": {
"corroborate-me": {
"url": "https://corroborateme.com/mcp",
"headers": {
"Authorization": "Bearer aa_..."
}
}
}
}
Claude Desktop / Claude Code
{
"mcpServers": {
"corroborate-me": {
"command": "npx",
"args": ["mcp-remote", "https://corroborateme.com/mcp", "--header", "Authorization: Bearer aa_..."]
}
}
}
Generic remote MCP
{
"url": "https://corroborateme.com/mcp",
"headers": {
"Authorization": "Bearer aa_..."
}
}
Discovery manifests on the product host:
Tools
Schemas in src/server.ts match the hosted server.
| Tool | What it does |
|---|---|
agent_bootstrap | Start humanless company onboarding (bootstrap token flow) |
budget_get | Remaining quotas for the authenticated company |
billing_checkout | Create Stripe Checkout URL for human Pro |
billing_machine_pay | Agent prepaid unlock via Stripe MPP (sku optional) |
billing_portal | Stripe Customer Portal URL |
keys_create | Mint a new aa_ API key (shown once) |
oauth_client_create | Register an OIDC relying-party client (RP logout enabled; optional post-logout URIs) |
integration_upsert | Store encrypted integration secret (Google/Apple/etc.) |
integration_list | List integrations (prefixes only, no secrets) |
create_login_link | Mint one-time human login URL with notify methods |
get_login_status | Poll login-link session status |
retry_login_webhook | Retry signed webhook delivery after a failed notify |
webhook_allowlist_add | Allowlist a callback URL prefix |
Typical agent loop
- Bootstrap a company (
agent_bootstrap) and unlock prepaid Pro (billing_machine_pay) when needed. - Mint a key with
keys_createif you need a durableaa_...secret. - Allowlist callback prefixes (
webhook_allowlist_add), thencreate_login_linkfor human proof. - Poll with
get_login_status(or wait for webhook / redirect / postMessage). - Use REST or MCP for keys, OIDC clients, and integrations as needed.
Prefer live docs and llms-full.txt for recipes that may change.
Auth and errors
- 401 - missing or invalid Authorization (API key
aa_...or MCP OAuth access token) - 402 / 429 - plan or quota; follow machine-readable actions from the live API
- Pricing amounts: read live
GET /api/config- do not hardcode dollars as eternal truth (at time of writing: Pro $5.99/mo, agent prepaid Pro $5.99 per 30 days)
Product docs
- App: corroborateme.com
- Docs: corroborateme.com/docs
- OpenAPI: corroborateme.com/openapi.json
- Swagger: corroborateme.com/swagger
The CorroborateMe product (Worker, billing, IdP) is closed source. This catalog is MIT-licensed so directories can list tools and install snippets.
Directory listing
Registry name: com.cnrcode/corroborateme (domain namespace via cnrcode.com).
-
Ensure
https://cnrcode.com/.well-known/mcp-registry-authis deployed. -
Set GitHub repo secret
MCP_PRIVATE_KEY(the existing cnrcode.com Ed25519 private key hex; never commit it). -
Push a version tag so GitHub Actions publishes
server.jsonto the official MCP Registry:git tag v0.1.0 git push origin v0.1.0
Directories that ingest the official registry (PulseMCP, MCPCentral, MCPFind, Glama connectors) pick the entry up from there. Other directories (Glama server listing, Smithery, mcpservers.org, mcp.directory, MCP Market, McpMux) are submitted by maintainers only. See docs/directory-listings.md.
Stdio stub (directory introspection)
This repo includes a stdio catalog stub (src/main.ts) so directories can build a container, start the process, and introspect the 13 tool definitions. It does not implement auth or billing - clients still connect to the hosted endpoint above.
Local verify:
npm ci && npm run build && npm start # hangs on stdio - expected
docker build -t corroborate-me-stub . && docker run -i corroborate-me-stub
License
MIT - catalog, documentation, and schema stub only.