MCP server
Use the MCP server to let AI agents perform Sumsub operations on your behalf, while keeping access controlled by your existing Sumsub role permissions.
How Sumsub MCP server works
Sumsub supports the Model Context Protocol (MCP), which allows AI agents to interact with your Sumsub account through a single server URL. After you add the MCP server to your client and authenticate, your agent can perform the actions allowed by your Sumsub role permissions.
With the Sumsub MCP server, you can create agent-based workflows for onboarding, compliance operations, transaction monitoring, and configuration discovery.
You can connect MCP-compatible AI agents, such as Claude Desktop, Claude Code, ChatGPT, Codex, Cursor, or your own agent, directly to your Sumsub account.
Connect MCP server
Before you start, make sure that:
- You have an active Sumsub account.
- Your role has the Use MCP server permission enabled.
Use https://api.sumsub.com/mcp/ as base URL to connect to the Sumsub MCP server.
Connect Claude Web or Claude Desktop
To connect Claude Web or Claude Desktop:
- Open Claude.
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste
https://api.sumsub.com/mcp/as the server URL. - Save the connector.
Sumsub will appear as an available connector in your next chat.
If the Add custom connector option is disabled, you can configure Claude Desktop manually.
To add the Sumsub MCP server manually:
-
Open Claude Desktop.
-
Go to Settings → Developer.
-
Click Edit Config.
-
Add the following configuration:
{ "mcpServers": { "sumsub": { "command": "npx", "args": [ "mcp-remote", "https://api.sumsub.com/mcp/" ] } } }
Connect Claude Code
To connect Claude Code:
-
Open Terminal.
-
Add the Sumsub MCP server:
claude mcp add --transport http sumsubhttps://api.sumsub.com/mcp/ -
Run Claude Code.
-
Type
/mcp. -
Select the
sumsubMCP server and authenticate.
Connect OpenAI Codex
To connect OpenAI Codex:
- Open Terminal.
- Add the Sumsub MCP server:
codex mcp add sumsub --url https://api.sumsub.com/mcp/. - Paste the following to authenticate:
codex mcp login sumsub.
Connect Cursor
To connect Cursor:
- Open the .
cursor/mcp.jsonfile. - Add the following configuration:
{ "mcpServers": { "sumsub": { "command": "npx", "args": [ "mcp-remote", "https://api.sumsub.com/mcp/" ] } } }
Onboard applicant through agent
The following example shows how an MCP-compatible agent can create an applicant, generate a verification link, and check the applicant status.
The JSON-RPC payloads show what the MCP client sends to the Sumsub MCP server. You do not need to write these payloads manually when working through an agent.
Step 1: Create applicant
A user asks the agent:
Create a new applicant for John Doe ([email protected]), assign him to the Standard KYC level, and send him the verification link.
The agent calls applicant_create_individual:
{
"method": "tools/call",
"params": {
"name": "applicant_create_individual",
"arguments": {
"externalUserId": "user-john-doe-12345",
"email": "[email protected]",
"levelName": "basic-kyc-level"
}
}
}Example response:
{
"id": "65f1c2d4e8a9b0123456789a",
"externalUserId": "user-john-doe-12345",
"type": "individual",
"email": "[email protected]",
"createdAt": "2026-04-27T12:00:00Z"
}The response above is shortened for readability. The full applicant object may also include verification status, documents, AML and risk fields, and metadata.
Step 2: Generate verification link
Next, the agent calls verification_link_create. The request uses:
- The same
levelNameas in the applicant creation request. - The same
externalUserIdasuserId. ttlInSecsto define how long the link remains valid.
Note that the link uses your external user identifier, not the Sumsub applicant ID.
{
"method": "tools/call",
"params": {
"name": "verification_link_create",
"arguments": {
"payload": {
"levelName": "basic-kyc-level",
"userId": "user-john-doe-12345",
"ttlInSecs": 3600
},
"source": "verificationEmail"
}
}
}Example response:
{
"url": "https://in.sumsub.com/idensic/l/#/uni_abc123"
}The agent can now return the verification link to the user:
Applicant created and verification link generated. Send John this URL: https://in.sumsub.com/idensic/l/#/uni_abc123. The link expires in 1 hour.Step 3: Check applicant status
Later, the user asks: Did John finish his verification?
The agent calls applicant_status_get with the applicant ID returned in Step 1:
{
"method": "tools/call",
"params": {
"name": "applicant_status_get",
"arguments": {
"applicantId": "65f1c2d4e8a9b0123456789a"
}
}
}Example response:
{
"reviewId": "rev_abc123",
"levelName": "basic-kyc-level",
"reviewStatus": "completed",
"reviewResult": {
"reviewAnswer": "GREEN"
}
}The agent can summarize the result: the applicant has a green review result meaning John completed verification successfully.
Request examples
The following examples show how you can ask your agent to perform common Sumsub operations and which MCP tools the agent can call to complete each request.
Self-service onboarding from chat
Ask your agent to onboard an applicant and send a verification link.
Example request: Onboard John Doe at the Standard KYC level and send him the verification link.
The agent can call:
applicant_create_individualto create the applicant.verification_link_createto generate the verification link.
Compliance-team copilot
Ask your agent to check an applicant current status and review history.
Example request: What is the current status of applicant A12345, and what triggered the last review?
The agent can call:
applicant_getto retrieve applicant data.applicant_timeline_getto inspect applicant events.applicant_moderation_state_listto check moderation states.
Transaction-monitoring triage
Ask your agent to retrieve transactions that triggered monitoring rules.
Example request: Show me transactions for applicant A12345 over the last 7 days that hit a monitoring rule.
The agent can call:
transaction_listwith filters.transaction_getto retrieve transaction details.
Configuration discovery
Ask your agent to inspect configured verification levels.
Example request: What verification levels do we have configured, and how do they differ?
The agent can call:
verification_level_listto retrieve available levels.verification_level_getto inspect selected levels.
Updated about 22 hours ago