Skip to content

Speedmap Connect · MCP server

Identity verification for AI agents.

KYC and KYB inside Claude, ChatGPT, Cursor and VS Code. Your compliance team and your agents verify NINs, BVNs, companies and bank accounts in the tools they already use, and the model only ever sees the answer.

ClaudeChatGPTCursorVS CodeAny MCP client

The contract

Built for a bank’s security review, not just a demo.

Speedmap receives the full record and decides what leaves the platform. On the MCP channel that decision is fixed: assertions only, purpose and consent enforced, bulk by handle.

Assertions only

Tools return verified, match, field matches, masked names and risk scores. No NIN, BVN, date of birth, address or photo is returned into the conversation, including in error messages.

38 purpose codes, as an enum

reason is a constrained enum of the NIMC purpose codes in every tool schema. An agent cannot invent a purpose, and misdeclared purpose never reaches a provider.

Consent before execution

Checks that touch personal data require an explicit consent confirmation. Full BVN records need a NIBSS Consent Hub grant. Same gate as the REST API.

Bulk returns a job handle

bulk_verify returns a job id and a dashboard link, never rows. Ten thousand identifiers never land in a context window.

B2B only, your key

Every call authenticates with your organisation’s Speedmap API key and its entitlements.

Audited like any other channel

MCP calls are tagged with their source in the verification log and the audit trail, so compliance can see exactly what an assistant ran and why.

Setup

Connect your client in under a minute.

Create a key in the dashboard, then add the server to your client. Remote server URL: http://localhost:4000/mcp

Create an MCP key

Claude Desktop

Add Speedmap to claude_desktop_config.json (Settings, Developer, Edit config). The @speedmap/mcp package is a thin stdio bridge to the hosted server; it needs Node.js 20 or later.

  1. 1Open Claude Desktop, then Settings → Developer → Edit config.
  2. 2Paste the configuration below and replace sk_test_... with your test key.
  3. 3Restart Claude Desktop. The Speedmap tools appear in the tools menu of a new chat.
claude_desktop_config.json · stdio package
{
  "mcpServers": {
    "speedmap": {
      "command": "npx",
      "args": [
        "-y",
        "@speedmap/mcp"
      ],
      "env": {
        "SPEEDMAP_API_KEY": "sk_test_...",
        "SPEEDMAP_MCP_URL": "http://localhost:4000/mcp"
      }
    }
  }
}
Alternative · via mcp-remote
{
  "mcpServers": {
    "speedmap": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "http://localhost:4000/mcp",
        "--header",
        "Authorization:${SPEEDMAP_AUTH}"
      ],
      "env": {
        "SPEEDMAP_AUTH": "Bearer sk_test_..."
      }
    }
  }
}

Use a sk_test_ key while you evaluate: test mode, free and deterministic. Swap in a sk_live_ key once your workspace is switched live after the compliance review.

Tools

Twelve tools. Every one returns the minimum.

Each tool mirrors a REST endpoint and runs through the same verification engine, consent gate, billing and audit trail.

  • verify_nin

    What it does
    Checks a National Identity Number, optionally comparing a name and date of birth.
    Returns to the model
    verified or not_found, field matches, masked name, reference
  • verify_bvn

    What it does
    Boolean BVN check through NIBSS against the name and date of birth you supply.
    Returns to the model
    match, field matches, masked BVN, reference
  • verify_business

    What it does
    Looks up a CAC-registered company by RC number, TIN or exact name (KYB).
    Returns to the model
    Company name, registration status, type, registration date
  • verify_account

    What it does
    NUBAN name enquiry on a 10-digit account, with an expected holder name.
    Returns to the model
    name_match, masked account name, bank name
  • face_match

    What it does
    Passive liveness on a selfie, optionally matched against the BVN photo.
    Returns to the model
    Pass or fail and confidence scores only
  • check_signals

    What it does
    Scores SIM-swap recency, recent BVN changes and watchlist status.
    Returns to the model
    risk_score 0–100, risk_level, factors
  • bulk_verify

    What it does
    Queues up to 10,000 checks of one product as a single job.
    Returns to the model
    Job id and dashboard link, never rows
  • get_bulk_job

    What it does
    Reports progress for a bulk job.
    Returns to the model
    Progress and outcome counts
  • get_verification

    What it does
    Fetches an earlier check by reference_id, for example to resolve a pending result.
    Returns to the model
    Status and assertion
  • request_consent

    What it does
    Creates a consent request the person approves by link, email or USSD.
    Returns to the model
    Consent id, link and USSD code to share
  • list_reasons

    What it does
    Lists the permitted purpose codes.
    Returns to the model
    The 38 NIMC purpose codes
  • list_banks

    What it does
    Lists bank names and codes for verify_account.
    Returns to the model
    Bank names and codes

Use cases

Where Connect earns its place.

KYC reconciliation in chat

A compliance officer works through a list of flagged applications in Claude or ChatGPT: confirm each BVN matches the applicant, check the company is active on the CAC register, and note the reference for the file. No spreadsheet of identity data in the conversation.

“Check that the BVN on LA-2291 matches Clarke Griffin, born 18 April 1992, for credit background check.”

Verification wired from the editor

A developer in Cursor or VS Code asks the agent to integrate NIN verification. The agent reads the schemas, runs checks for every outcome, and writes the handling code, without leaving the editor.

“Run verify_nin against the sandbox not-found value and write the error handling for it.”

Bulk, dispatched conversationally

An operations lead asks the assistant to verify this month’s payout accounts. Connect queues a bulk job and returns the handle; the assistant reports progress and counts, and the rows stay in the dashboard.

“Verify the 2,400 vendor accounts in the October payout batch and tell me when it’s done.”

Purpose limitation

The 38 NIMC purpose codes, enforced in the schema.

These are the only values an assistant can pass as reason. The list is served by list_reasons and GET /v1/reasons, and stored with every result.

  • taxationEnrollment
  • taxationAssessment
  • taxationEnforcement
  • corporateAffairsDirector
  • corporateAffairsShareholder
  • corporateAffairsTrustee
  • medical
  • educationExam
  • educationAdmission
  • educationPromotion
  • employmentRecruitment
  • employmentEnrollment
  • employmentDismissal
  • creditBackgroundCheck
  • financialProducts
  • insurance
  • clearanceForPoliticalOffice
  • legalCourts
  • legalEnrollment
  • crimePrisonIncarceration
  • passportImmigration
  • pensionEnrollment
  • socioCulturalEnrollment
  • entertainment
  • physicalAccess
  • logicalVirtualAccess
  • telecommunicationSimReg
  • telecommunicationIotReg
  • aviationTransport
  • roadTransport
  • maritimeTransport
  • railwayTransport
  • leaCheck
  • defence
  • nyscCheck
  • efccCheck
  • blacklistPolitical
  • blacklistSocial

FAQ

Questions security teams ask.

Building an agent? See the MCP docs, mcp.json and llms.txt.

What is Speedmap Connect?
Speedmap Connect is a Model Context Protocol (MCP) server that lets AI assistants and agents run Speedmap identity checks: NIN, BVN, CAC business, bank account, face and fraud signals. It is the first identity MCP server designed so a NIN never enters an AI context window.
Does the AI model ever see the NIN, BVN or identity record?
No. Tools return assertions only: verified or not found, match results, masked identifiers and names, risk scores and a reference. Identifiers are masked in tool output and error messages, and the full record stays in the Speedmap dashboard, where reveals are role-restricted and audited.
Who can use Speedmap Connect?
Businesses with a Speedmap account. Connect is B2B only: every request authenticates with your organisation’s Speedmap API key, and the same entitlements, purpose codes, consent rules and audit log apply as on the REST API. There is no consumer path through MCP.
How is purpose enforced?
The reason argument is a fixed enum of the 38 NIMC purpose codes in the tool schema. An agent cannot invent a purpose; an invalid one is rejected before any provider is called. The reason is stored with the result.
How does consent work inside a chat?
Checks that touch personal data require an explicit consent confirmation argument, which the assistant should set only after the user confirms the data subject consented. Full BVN records need a NIBSS Consent Hub grant, which request_consent creates as a link, email or USSD code.
Can I paste thousands of identities into a chat?
Use bulk_verify for volume. It returns a job handle and a dashboard link, never rows, so results stay in Speedmap. For large lists, upload a CSV in the dashboard or call the bulk API rather than pasting identifiers into a conversation.
What does it cost?
There is no separate fee for the MCP server. Checks made through Connect are billed exactly like API checks, at the product price, from your prepaid wallet.

Give your team verification inside the AI tools they already use.

Create an account, copy your API key and connect Claude, ChatGPT, Cursor or VS Code in a minute. Your workspace switches live after the compliance review.