Skip to content

MCP integration

Connect your AI agent to BUMIT.

BUMIT checks Swiss businesses against authoritative public sources and returns a deterministic result with its evidence. Agents can call it through the Model Context Protocol (MCP), an open standard that lets AI assistants use external tools.

Server URL

https://bumit.ai/mcp

Transport: streamable-http. No sign-in, account or API key is currently required. This address is for MCP clients; opening it in a browser shows an error, which is expected.

Why agents need business verification

An agent that pays an invoice, onboards a supplier or signs up a customer needs to know the business is real and active. BUMIT answers that from Swiss authoritative sources and shows exactly which evidence it used, so the agent can decide or hand the case to a person.

The tool: verify_business

There is one tool. It covers Swiss businesses only. Give it either a Swiss UID or a company name.

  • uid — Swiss UID in the form CHE-xxx.xxx.xxx. It is checked locally, including the check digit, before any source is contacted.
  • name — legal company name, optionally with address.locality (registered town) to narrow several exact matches.

Finding a name is not confirming an identity. A name only resolves to a company when exactly one entry matches the legal name exactly (after normalisation, optionally narrowed by town). Several or partial matches return AMBIGUOUS with candidates, and BUMIT never picks one for you. Call again with the chosen UID.

arguments by UID
{
  "uid": "CHE-xxx.xxx.xxx"
}
arguments by name
{
  "name": "Example Company AG",
  "address": {
    "locality": "Example town"
  }
}

Example prompt for your agent: “Use BUMIT to verify the Swiss company with UID CHE-xxx.xxx.xxx.” Replace the placeholders with a real UID or name; they are not valid inputs themselves.

Outcomes

A successful tool call does not mean the business is verified. Read result.outcome:

VERIFIED
The mandatory checks passed using available evidence. It does not mean safe to transact, complete KYB or legal approval.
NOT_VERIFIED
Evidence contradicts a mandatory requirement, for example the company is not active.
REVIEW_REQUIRED
Evidence needs a human look, for example a possible sanctions match.
NOT_FOUND
No matching entry was found in the register. This is not proof that the business does not exist.
AMBIGUOUS
A name matched more than one entry or matched only partially. Candidates are returned; none is chosen for you.
UNAVAILABLE
The overall verification could not be completed: the business could not be resolved because the register was unreachable or not configured, or at least one required check did not produce a definite result (and none came back NOT_VERIFIED or REVIEW_REQUIRED). It is never a negative finding.
UNSUPPORTED
The request asks for something BUMIT does not cover, for example a non-Swiss business.

Full semantics are in the OpenAPI contract and the API docs.

Evidence, sources and freshness

Each result lists the source behind each check and when that evidence was retrieved. Freshness differs by source; there is no single “last updated” time.

  • Zefix (Swiss commercial register): looked up during verification, cache-first.
  • SECO sanctions and FINMA lists: answered from datasets loaded by the operator, not queried live.
  • Some sources exist for tests only. Checks that depend on them return unsupported or unavailable, never a positive result.

What is available right now is shown on Capabilities and Status. If a source is down, the checks that depend on it are reported as unavailable individually. The overall outcome becomes UNAVAILABLE only when an affected check is required and no required check is NOT_VERIFIED or REVIEW_REQUIRED; an optional check being unavailable does not change the overall outcome.

Client setup

“Tested” below means BUMIT has a recorded successful connection. “Documented” means the client's own setup method fits BUMIT's server, but we have not tested it.

Claude (claude.ai, custom connector)

Tested — connection and one verification call

Needs a Claude plan that allows custom connectors. BUMIT is not listed in Claude's directory.

  1. Open Settings → Connectors → Add custom connector.
  2. Name: BUMIT. URL: https://bumit.ai/mcp. Leave authentication empty.
  3. Enable the connector in a chat. Claude should list one tool, verify_business.

Claude Code

Documented — not tested
command
claude mcp add --transport http bumit https://bumit.ai/mcp

VS Code (GitHub Copilot agent mode)

Documented — not tested

Add to .vscode/mcp.json:

mcp.json
{
  "servers": {
    "bumit": {
      "type": "http",
      "url": "https://bumit.ai/mcp"
    }
  }
}

Cursor

Documented — not tested

Add to ~/.cursor/mcp.json or the project's .cursor/mcp.json:

mcp.json
{
  "mcpServers": {
    "bumit": {
      "url": "https://bumit.ai/mcp"
    }
  }
}

ChatGPT

Documented — not verified

BUMIT is not published in ChatGPT. OpenAI's tool scan for BUMIT does not currently complete, and the cause is still being investigated. Connecting through developer mode may work, but we cannot confirm it.

Troubleshooting

  • Error when opening the URL in a browser: expected. The address only answers MCP clients.
  • 403 Forbidden: requests sent from a web page on another site are refused. Connect from an MCP client, not browser code.
  • Client asks for sign-in: choose no authentication. BUMIT has no sign-in.
  • Invalid UID error: the UID failed the local format or check-digit test and was not sent to any source.
  • UNAVAILABLE: the overall result is incomplete — the register could not be searched or a required check had no definite result. Each check in the response shows its own outcome; the blocking list names the required checks that were affected. Check Status.

Access and payment

No account, API key or payment is currently required. This may change; any change will be announced. Questions: see Support.