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", "verifex-mcp@0.1.1"],
      "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 verifex-mcp@0.1.1

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", "verifex-mcp@0.1.1"],
      "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.

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 scr_… 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/dvecy/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 api.verifex.dev 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 verifex.dev 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.