Verifex

Integrations · MCP

Screen from your AI assistant. With the scope stated.

verifex-mcp is a Model Context Protocol server for Claude, Cursor, VS Code and other MCP clients. It screens a person or company with your own Verifex API key, reads back past screenings and fetches each screening's Evidence Capsule. Screenings bill to your Verifex plan.

Before you start

You need two things.

  1. 1. A Verifex API key

    Sign in, open API Keys and create a separate key for your MCP client, so you can revoke it on its own: a key has full access to your account's API, not only screening. Keep it in your MCP client's settings; never paste it into a chat. No account yet? Start free.

  2. 2. Node.js 18.17 or later

    The server has no other dependencies. It runs on your machine and talks to your client over stdio.

Set up

Add it to your client.

Claude Desktop

Settings → Developer → Edit Config, add the entry below, then restart Claude Desktop. Or install the verifex-mcp.mcpb bundle from the releases page; Claude Desktop asks for the key.

claude_desktop_config.json
{
  "mcpServers": {
    "verifex": {
      "command": "npx",
      "args": ["-y", "[email protected]"],
      "env": { "VERIFEX_API_KEY": "<your Verifex API key>" }
    }
  }
}

Claude Code

bash
claude mcp add verifex --env VERIFEX_API_KEY=<your Verifex API key> -- npx -y [email protected]

VS Code

VS Code prompts for the key and stores it securely.

.vscode/mcp.json
{
  "inputs": [{ "type": "promptString", "id": "verifex-key", "description": "Verifex API key", "password": true }],
  "servers": {
    "verifex": {
      "command": "npx",
      "args": ["-y", "[email protected]"],
      "env": { "VERIFEX_API_KEY": "${input:verifex-key}" }
    }
  }
}

Cursor, Windsurf and other clients

Use the same command, args and env as the Claude Desktop entry in the client's MCP settings (Cursor: ~/.cursor/mcp.json).

Reading a result

Every result starts with a status line.

It follows the decision the Verifex API served and is followed by the lists checked, the lists not checked, and the Evidence Capsule id.
Status lineWhat it means
Potential match — review requiredAt least one candidate on a list that was checked, or a match held back because your plan does not include its list. It is not a verdict: a person reviews it and decides.
No potential match in the lists checkedVerifex served a clear decision and nothing was found in the lists named directly underneath. Lists your plan does not include are named too. It does not say the party is absent from every list.
Screening incomplete — do not treat as clearNo match was found, but Verifex does not treat the result as a clearance, and the reason is given: for example a required list (OFAC, UN, EU or UK) was not screened, lists in your plan were unavailable at screening time, or the name is in a non-Latin script. Also shown when the screening could not complete or the response could not be read. On the Free plan, which screens OFAC and UN only, a no-match result reads this way and names EU and UK as not screened.
Review required — no potential match, but this result is not a clearanceA person must look at the record first, for example a stored record read back with get_screening that does not carry Verifex's decision.

A real result

What the assistant receives.

Captured from the production API with the published server on 28 October 2026. Every line is as printed; only the two long runs of list names are shortened, where marked. In each result the served JSON follows, cut by the server when it is very long.
screen_name · Vladimir Putin, RU
Verifex status: Potential match — review required
Screened: name "Vladimir Putin", type "person", country "RU" · screened "2026-10-28T14:59:46.316Z" · request_id "hb_y72MEbIuN1dUjpkJbc"
Potential matches:
  1. "PUTIN, Vladimir Vladimirovich" — list "OFAC", confidence 85, programs RUSSIA-EO14024
  2. "Vladimir Vladimirovich PUTIN" — list "UK", confidence 100, programs The Russia (Sanctions) (EU Exit) Regulations 2019
  3. "Vladimir Putin" — list "PEP", confidence 100, programs President of Russia, podpolkovnik, colonel
  4. "PUTIN, Vladimir Vladimirovich" — list "CANADA", confidence 83, programs SEMA 1, Part 1
  5. "Влади́мир Влади́мирович ПУ́ТИН" — list "BELGIUM_TREASURY", confidence 83, programs UKR, 2022/332 (OJ L53)
  … 15 more in the full result.
This is not a verdict. A person must review each potential match before any decision.
Incomplete: Not every available candidate was evaluated.
Review: Verifex flags this result for human review.
Review: Verifex placed this result in its "review" tier.
Lists checked (44): ADB_DEBARMENT, AUSTRALIA, AU_ASIC_BANNED, AZERBAIJAN_HMS, BELGIUM_TREASURY, BIS_DPL, BIS_ENTITY_LIST, BIS_MEU, BIS_UVL, BR_PEP, CANADA, CZECH_NATIONAL_SANCTIONS, … [32 more names shortened here]
Not available at screening time (1): FATF_HIGH_RISK
1 source included in your plan was not consulted for this screening because it was not available: FATF_HIGH_RISK. This is a data-availability limitation on our side, not a limitation of your plan.
Complete for the required lists. Also searched: 36 additional lists whose publishers are not yet independently verified ([names shortened here]); they can add hits but are not part of the completeness claim.
Evidence Capsule: "hb_y72MEbIuN1dUjpkJbc" — open it with get_evidence_capsule.

Three tools.

  • screen_name · quota: One screening

    Screen one person or company. Arguments: name, and optionally type (person or entity), country (two-letter ISO code) and date of birth.

  • get_screening · quota: None

    Read the stored record of an earlier screening by its request_id. A stored record may not carry Verifex's decision; then it reads Review required.

  • get_evidence_capsule · quota: None

    Get the Evidence Capsule of a screening. A capsule still being written is reported as pending.

Try asking.

  • “Screen Acme Trading FZE, a company registered in the United Arab Emirates (AE), and tell me exactly which lists were checked.”
  • “We're onboarding a new distributor contact, Ivan Petrov, born 1971, Russian national. Screen him and, if there is a potential match, list each candidate with its list and programmes.”
  • “Get the Evidence Capsule for request <request_id> and summarise what was screened, when, and against which list versions, so I can attach it to our customer file.”

Source code and issues: github.com/Verifex-dev/verifex-mcp. Help: Support. Data handling: privacy policy and DPA. Verifex results support your compliance decision; they are not legal advice.

Questions about the MCP server.

Something else? Talk to us.
What does the MCP server send to Verifex?

Only the name, the type (person or company), the country and the date of birth you ask it to screen, over HTTPS to the Verifex API (api.verifex.dev, the server's built-in default) with your API key. Nothing else from your conversation or your files is sent to Verifex.

Does my AI assistant see the results?

Yes. The name you ask about and the results the server returns, including candidate records and earlier screenings you read back, become part of your conversation with the assistant and are handled by its provider under its own terms.

Where is my API key stored?

In your MCP client's configuration on your own machine. The server reads it from the environment and never writes it to the assistant, to its output or to logs. If a key is ever exposed, revoke it under API Keys in the dashboard.

How is the MCP server protected against prompt injection and tampering?

The status line is computed by the server, not taken from any record. Names, aliases and notes are cleaned (no control characters or line breaks), quoted and length-capped, and the assistant is told to treat everything after the status line as data. Redirects are never followed, answers over 2 MB are refused, the API key is sent only to api.verifex.dev — the server refuses any other address unless VERIFEX_ALLOW_CUSTOM_API_URL=1 is set — and removed from any result, and the server stops after 20 screenings in 10 minutes unless you raise the limit. Pin the version in your configuration so an update only runs when you choose it, and don't set your client to always allow screen_name.

What does it cost?

The server is free and open source (MIT). Each screening counts against your existing Verifex plan, exactly like an API call. Reading a past screening or an Evidence Capsule uses no quota.

Can the assistant decide that someone is sanctioned or cleared?

No. The status follows the decision Verifex served, and the server only ever adds caution to it. A potential match needs review by a person, and a no-match result covers only the lists it names. The server tells the assistant to repeat its status line word for word.