io.github.codespar/mcp-onfido
io.github.codespar/mcp-onfido · 273 stars · TypeScript · MIT
MCP server MCP server for Onfido — global identity verification + KYC: applicants, documents, checks, workflows
Install
The repo has no one-line install. Follow its README.
Published as
- npm
@codespar/mcp-onfidostdio
From the server's entry in the official MCP Registry.
Configuration
| Name | Set as | What it is |
|---|---|---|
ONFIDO_API_TOKENRequired · Secret | Env var | Onfido API token. Sent as 'Authorization: Token token=<value>'. |
ONFIDO_REGIONOptional | Env var | Region for the API host: 'eu' (api.eu.onfido.com), 'us' (api.us.onfido.com), 'ca' (api.ca.onfido.com). Defaults to api.onfido.com when unset. |
Files
@codespar/mcp-onfido
MCP server for Onfido — global identity verification and KYC.
Onfido is the identity verification layer behind Revolut, N26, Uber, and hundreds of regulated fintechs. One API covers 195+ countries and the full KYC flow: applicant → document → live photo → check (runs verification) → reports.
Second entry in CodeSpar's identity category alongside Unico (BR-first KYC). Pair them: Unico for Brazilian users (CPF + Receita Federal biometric pool), Onfido when the flow touches non-LatAm users.
Tools (20)
| Tool | Purpose |
|---|---|
create_applicant |
Create an Onfido applicant — the person record that documents, live photos, and checks attach to. |
retrieve_applicant |
Retrieve an applicant by id. |
update_applicant |
Update fields on an existing applicant. |
upload_document |
Upload an identity document image for an applicant. |
retrieve_document |
Retrieve document metadata by id. |
upload_live_photo |
Upload a live photo (selfie) for an applicant, used by facial_similarity_photo reports. |
retrieve_live_photo |
Retrieve a live photo record by id. |
create_check |
Run a verification check on an applicant. |
retrieve_check |
Retrieve a check by id. |
list_checks |
List all checks for a given applicant. |
retrieve_report |
Retrieve an individual report by id. |
delete_applicant |
Soft-delete an applicant. |
list_documents |
List all documents uploaded for a given applicant. |
download_document |
Download the raw binary of an uploaded document. |
list_live_photos |
List all live photos (selfies) uploaded for a given applicant. |
resume_check |
Resume a check that was paused (typically awaiting_applicant or paused states). |
list_reports |
List the reports contained within a given check. |
create_workflow_run |
Start an Onfido Studio workflow run. |
retrieve_workflow_run |
Retrieve a workflow run by id. |
generate_sdk_token |
Mint a short-lived SDK token for embedding the Onfido Web / iOS / Android SDKs in your frontend. |
Flow
create_applicant
-> upload_document (front, and back if driving_licence / national_identity_card)
-> upload_live_photo
-> create_check report_names=["document","facial_similarity_photo","watchlist_standard"]
-> retrieve_check (poll until status = complete)
-> retrieve_report (for each report id to get the detailed breakdown)
Install
npm install @codespar/mcp-onfido
Environment
ONFIDO_API_TOKEN="..." # API token (required, secret) ONFIDO_REGION="eu" # Optional. 'eu' | 'us' | 'ca'. Defaults to api.onfido.com.
Authentication
Onfido uses a non-Bearer header format:
Authorization: Token token=<ONFIDO_API_TOKEN>
The server handles this automatically.
Regional hosts
| Region | Host |
|---|---|
| Default | https://api.onfido.com |
| EU | https://api.eu.onfido.com |
| US | https://api.us.onfido.com |
| CA | https://api.ca.onfido.com |
All requests target API version v3.6 (current stable).
Multipart uploads
upload_document and upload_live_photo accept files as base64-encoded strings. Pass the bytes in file, with file_name and content_type:
{
"applicant_id": "a1b2c3...",
"type": "passport",
"file": "<base64-encoded bytes>",
"file_name": "passport.jpg",
"content_type": "image/jpeg"
}
The server wraps it as multipart/form-data before sending.
Note: Onfido increasingly recommends capturing live photos via their SDK rather than API upload. Direct /live_photos upload may be restricted on some accounts — use the SDK flow when in doubt.
Run
# stdio (default — for Claude Desktop, Cursor, etc) npx @codespar/mcp-onfido # HTTP (for server-to-server testing) MCP_HTTP=true MCP_PORT=3000 npx @codespar/mcp-onfido
When to pick Onfido vs Unico
| Signal | Pick |
|---|---|
| User is Brazilian, need CPF validation + biometric match against Receita Federal | Unico |
| User is outside LatAm, or flow is global | Onfido |
| Regulated fintech needing AML watchlist + PEP screening globally | Onfido |
| Travel / gig marketplace onboarding across 20+ countries | Onfido |
Enterprise
Need governance, budget limits, and audit trails for agent payments? CodeSpar Enterprise adds policy engine, payment routing, and compliance templates on top of these MCP servers.
License
MIT
Facts
- Kind
- MCP server
- Group
- Uncategorized
- Stars
- 273
- License
- MIT
- Language
- TypeScript
- Last push
- 2026-09-27
- Forks
- 50
- MCP Registry
- io.github.codespar/mcp-onfido
- Homepage
- codespar.dev/servers
- Topics
- agentic-commerce, ai-agents, brazil, claude, fintech, latin-america, llm-tools, mcp, model-context-protocol, nfe, open-finance, payments, pix
- 1REAio.github.morluto/reaReverse engineer anything from your terminal or agent with one CLI and MCP server.125.3k
- 2com.browser-use/browser-usecom.browser-use/browser-useControl a real Chrome browser to complete any task: fill forms, extract data, book flights.117.7k
- 3World Monitorapp.worldmonitor/mcpLive markets, conflicts, country risk, chokepoints, energy, and China decision signals. 93 tools.88.3k
- 4Scrapling MCP Serverd4vinci/scrapling🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scraplingdev86.9k
- 5Everythingmodelcontextprotocol/serversThis MCP server attempts to exercise all the features of the MCP protocol. It is not intended to be a useful server, but rather a test server for builders of MCP clients. It implements prompts, tools, resources, sampling, and more to showcase MCP capabilities.85.8k
- 6Fetchmodelcontextprotocol/serversA Model Context Protocol server that provides web content fetching capabilities. This server enables LLMs to retrieve and process content from web pages, converting HTML to markdown for easier consumption.85.8k