Use case · AI agents & MCP

Company data for AI agents

An assistant that answers "is this company real, active and sanctioned?" from its training data is guessing. Prometiam ships a Model Context Protocol server so Claude Desktop, Cursor and any MCP client answer from the official registries the API covers — with the record behind every answer.

Tool names as published in prometiam-risk-mcp on 15 September 2026

The problem

A language model knows a great deal about companies and none of it is current. It cannot tell you whether a Spanish supplier was dissolved last month, who was appointed to a UK board last week, or whether a name was added to a sanctions list yesterday, and when it does not know it produces something plausible. A compliance analyst cannot file "the model said so", and an automated agent that acts on a guess is a liability.

The fix is not a bigger model. It is a tool the model calls that returns the official record, typed, with a date and an identifier, so the answer can be checked and cited. That is what the MCP server is for.

Connect it in one line

The server runs locally inside your MCP client and needs no key: without one it uses a shared demo key, so the first call answers at once. For your own credits, add PROMETIAM_API_KEY to the config (the free trial, 500 credits over 14 days, card required, nothing charged for 14 days, is enough to try it). Claude Desktop readsclaude_desktop_config.json; Cursor reads .cursor/mcp.json; the shape is the same:

{
  "mcpServers": {
    "prometiam-risk": {
      "command": "npx",
      "args": ["-y", "prometiam-risk-mcp"]
    }
  }
}

Restart the client and the tools appear in its tool list. Full install steps for Claude Desktop, Claude Code, Cursor and VS Code, the tool list by job, and the demo-key limits are on the install page; the full configuration for Continue, Cline and a raw stdio client is in the package README.

What the agent can do with it

The tools wrap the same endpoints as the REST API, so anything in the documentation is reachable in plain language:

  • Resolve a company — companies_search by name or registry identifier (NIF, SIREN/SIRET, Companies House number, CRO, KRS, organisation number, Y-tunnus, organisationsnummer, enterprise number, MBS/OIB, CVR number, Estonian registry code, Slovak IČO); company_detail for the profile (status, registered address, capital, activity code, officers where held, include=risk_flags for Spain's published tax-debt flag); companies_lookup for up to 100 at once.
  • Follow the people — people_search, person_detail (every appointment, with dates and whether it is current) and directors_network (people on many boards). Officers are held for Spain, France, the UK, Norway, Poland and the Czech Republic (Polish natural persons are masked by the register itself; Czech natural persons are the name and the month and year of birth only) (Polish officers are on the company record only: natural persons are masked by the register, so there is no people search, person record or network); Ireland is company-level.
  • Read the history — events_search and events_timeline: capital changes, director changes, dissolutions, mergers, insolvency, for Spain, France and the UK, plus register-change events for every other live country except Chile (none before 14 Oct 2026 for Ireland, Poland and Norway; Argentina is read monthly, none before 28 Oct 2026; Mexico covers its LEI-registered entities only).
  • Check for distress — insolvency_check (up to 100 counterparties across FR, DE, GB, AT, CH, NO, FI, US, NL, DK, HR, SE, ES, LV, EE and SG, corporate only), insolvency_notices_search, and insolvency_search for Spanish concursal proceedings.
  • Screen names — sanctions_screen and sanctions_screen_batch against the EU, UN, OFAC, UK, Australia (DFAT) and French lists plus the US Consolidated Screening List, with a match_score and a threshold (beta); sanctions_changes for what was listed or delisted since a date.
  • Validate and link — vat_validate (VIES), lei_lookup, lei_search, lei_relationships (GLEIF parents and children).
  • Keep watching — monitor_subscribe puts a company on daily monitoring with signed webhooks (every live country except France and Chile); monitor_list, monitor_get, monitor_stop.

Questions it can now answer

Each of these is a multi-step job the model plans itself — search, then detail, then screen — and every step returns a record it can quote:

  • “Is ACME SL an active company in Spain, and who are its current directors?”
  • “Does any company in this list of twenty suppliers have a corporate insolvency notice in France or Germany?”
  • “Screen these five counterparty names against sanctions at threshold 85 and show me the matches with their lists.”
  • “Which other companies is this UK director appointed to, and are any of them dissolved?”
  • “Validate this VAT number and give me the registered name and address.”
  • “What corporate events did this French company file in the last twelve months?”

Building your own agent instead

If your agent does not speak MCP, give it the REST API as a tool. The OpenAPI 3.0 specification at /openapi.json is the tool schema; /llms.txt and /pricing.md are written for a model to read. A verification tool is a few lines:

import os, requests

BASE = "https://api.prometiam.com/functions/v1/risk-api"
H = {"Authorization": "Bearer " + os.environ["PROMETIAM_API_KEY"]}

def verify_company(name: str, country: str, threshold: int = 85) -> dict:
    """Tool for an agent: official record + sanctions check, nothing decided."""
    hits = requests.get(BASE + "/companies/search",
                        params={"country": country, "name": name, "limit": 3},
                        headers=H, timeout=20).json()["data"]
    if not hits:
        return {"found": False, "name": name, "country": country}
    best = hits[0]                                  # highest match_score first
    detail = requests.get(BASE + "/companies/" + str(best["id"]),
                          params={"country": country}, headers=H, timeout=20).json()["data"]
    screen = requests.get(BASE + "/sanctions/screen",
                          params={"name": detail["company_name"], "threshold": threshold,
                                  "entity_type": "entity"},
                          headers=H, timeout=20).json()
    return {
        "found": True,
        "match_score": best["match_score"],
        "company_number": detail["company_number"],
        "company_name": detail["company_name"],
        "status": detail["status"],
        "founding_date": detail.get("founding_date"),
        "sanctions_hits": screen.get("data", []),   # a hit is for review, not a verdict
        "source": "official registry via Prometiam, " + detail.get("last_seen_date", ""),
    }

Register verify_company as a tool with your model of choice, and describe its output honestly in the tool description: a registry record and a list of screening hits with scores. The model decides what to ask; the tool never decides what to conclude.

Guardrails that matter

  • Read-only by default. Only monitor_subscribe and monitor_stop change anything, and the package marks them as mutating. Ask the client to confirm those two.
  • Facts, not verdicts. The API returns registry records and a match_score. Have the agent present a sanctions hit with its score, list and aliases for a person to review, and never write "this company is sanctioned" on its own.
  • The key stays out of the prompt. It lives in the client configuration or the environment. Use a key with only the scopes the agent needs; usage shows per key in the dashboard.
  • Every call counts. One request per tool call, and a successful call costs credits; batch tools count each item. An agent that loops carelessly spends credits fast, so set the tool descriptions to prefer batch tools for lists.
  • Log the responses. Store what the tool returned, with its date, next to the agent's answer. That is the audit trail a reviewer will ask for.

Pricing fit

An analyst asking thirty questions a day, at three or four tool calls each, uses roughly 2,500 calls a month, mostly at 1 credit (events, insolvency and screened names cost 2 or 3): a few thousand credits, inside Professional (€29.99/month, 10,000 credits), which also carries the full sanctions and export-control screening scope. A team of five, or an agent that screens long lists, fits Scale (€99.99/month, 50,000 credits). Trying it costs nothing: the free trial is 500 credits over 14 days, with nothing charged until it ends (a card is required).

Scope limits, stated plainly

  • Ireland is company-level: no officers yet. Ireland, Poland and Norway have register-change events only, from 14 Oct 2026 (no gazette).
  • Insolvency notices are corporate only, across sixteen markets (FR, DE, GB, AT, CH, NO, FI, US, NL, DK, HR, SE, ES, LV, EE, SG).
  • Monitoring is every live country except France and Chile. Sanctions screening is beta; PEP is beta, Spain only, with no relatives or close associates.
  • No credit scores, and no beneficial ownership outside the UK PSC register (GLEIF Level-2 gives parents for companies that hold an LEI).
  • Company financial statements (annual accounts as filed) are served for GB, FR, DK, SE, NO and SEC filers in the United States from the Scale plan: France excludes companies that declare their accounts confidential, and elsewhere only digitally filed accounts are served. For FI, statements filed digitally with PRH (about one filer in twenty) and listed groups are covered, with tax records from 2020; for ES, PL, HR and BE only listed companies are (their ESEF annual financial reports; not every report is held, Polish reports arrive more than a year late, and the reports of Spanish listed companies are available free of charge on the CNMV website).

FAQ

What is an MCP server for company data?
A Model Context Protocol server is a small program an AI client (Claude Desktop, Cursor, Continue, Cline and others) starts locally; it exposes typed tools the model can call. prometiam-risk-mcp exposes the Prometiam API as tools — company search and detail, officers, corporate events, insolvency checks, sanctions screening, VAT and LEI lookup, monitoring — so the model answers from official registry data instead of its training memory, and can show the record it used.

Which AI clients work with it?
Any client that speaks MCP over stdio: Claude Desktop, Cursor, Continue and Cline are documented in the package README. An agent built on another stack calls the REST API directly and can load the OpenAPI 3.0 specification at /openapi.json as its tool schema.

Can the agent change anything in my account?
Only through two tools, monitor_subscribe and monitor_stop, which are marked as mutating; everything else is read-only. Keep the key in the client configuration, not in a prompt, and use a key with only the scopes the agent needs.

Does a tool call count against my quota?
Yes. A successful tool call costs credits (1 for a company search or record, 2 for events, people or insolvency, 3 for each name screened; errors cost nothing), and batch tools (companies_lookup, sanctions_screen_batch, insolvency_check) charge every item separately. The free trial is 500 credits over 14 days with a card required and nothing charged for 14 days; Starter is €9.99 a month for 1,000 credits. Professional is €29.99 for 10,000 credits.

Is the answer a decision?
No. The API returns registry facts and, for screening, a match_score against the lists it holds. A sanctions hit is a prompt to review, not a verdict, and the agent should say so. Sanctions screening is beta; PEP screening is beta and Spain only.

Related