Global Company Check MCP Server
<!-- mcp-name: io.github.fieldnote-agents/company-check-mcp -->
# Company Check MCP server (LEI, ARES, KRS)
An MCP server (stdio) that lets AI agents look up companies and Legal Entity
Identifiers (LEIs) worldwide. It calls the
[Global Company Check](https://apify.com/fieldnoteagents/global-company-check)
actor on Apify, which reads GLEIF open data (CC0).
> Not affiliated with or endorsed by GLEIF, the Czech Ministry of Finance or the Polish Ministry of Justice. Data comes from their public sources (GLEIF CC0, ARES, KRS open API).
## Tools
| Tool | What it does |
|---|---|
| `lookup_company(name, country?)` | Best match for a legal name; add an ISO-2 country (e.g. `SE`) for better results |
| `lookup_lei(lei)` | Full record for one 20-character LEI |
| `bulk_lookup(queries)` | Up to 500 queries: LEIs or `"Legal name \| CC"` |
| `czech_company_check(queries, include_persons?)` | Czech ARES: IČO lookup or company name ([actor](https://apify.com/fieldnoteagents/czech-company-check-ares)) |
| `poland_krs_extract(krs_numbers, include_persons?, full_extract?)` | Poland KRS extract by KRS number only ([actor](https://apify.com/fieldnoteagents/poland-krs-company-check)) |
The LEI tools take `include_parents` (default `true`) to add direct and ultimate parents.
All tools take up to 500 items per call. Built for KYB, supplier and counterparty checks, not lead lists.
`include_persons` returns personal data (board members): use only for a lawful purpose (GDPR).
## Pricing
Runs go to **your own Apify account** using your `APIFY_TOKEN`:
each actor: first 25 results free, then $0.03 per company found. No result, no charge.
### Spending cap for agents
Every tool call is one Apify run. To cap what a single call can cost, set
`COMPANY_CHECK_MAX_CHARGE_USD` (e.g. `"0.50"`) in the server's `env`; it is sent as
Apify's `maxTotalChargeUsd` and the actor stops cleanly at the limit.
**The cap must be at least $0.05**: Apify refuses runs of these actors with a lower max charge.
Calling the actors directly through the Apify MCP server (`https://mcp.apify.com`, `call-actor`)?
The same $0.05 minimum applies to `maxTotalChargeUsd` in `callOptions`.
## Setup
1. Get an Apify API token: https://console.apify.com/settings/integrations
2. Install from GitHub (works today; the PyPI package is not published yet):
`uvx --from git+https://github.com/fieldnote-agents/company-check-mcp company-check-mcp`
or `pip install "git+https://github.com/fieldnote-agents/company-check-mcp"`
3. Add to your MCP client, e.g. Claude Desktop / Cursor:
```json
{
"mcpServers": {
"company-check": {
"command": "uvx",
"args": ["--from", "git+https://github.com/fieldnote-agents/company-check-mcp", "company-check-mcp"],
"env": { "APIFY_TOKEN": "apify_api_..." }
}
}
}
```
From source: `pip install .` then run `company-check-mcp`.
Once on PyPI, the short form `uvx company-check-mcp` will also work.
## Related
- [EU company registers directory](https://fieldnote-agents.github.io/eu-company-registers/): free, open list of official registers with API, key, limits, terms and a live status check (MIT, same org).
## Changelog
- **0.2.2**: removed the `eu_vat_check` (EU VAT / VIES) tool. The server now exposes 5 tools.
- **0.2.1**: install from GitHub, parameter descriptions, read-only hints, spending cap.
## License
MIT. Made by Fieldnote Agents.
TDQS
Scored across 3 tools
The three tools split cleanly by input key: lookup_company takes a legal name, lookup_lei takes a single 20-char LEI, and bulk_lookup handles many queries. There is mild overlap since bulk_lookup accepts both LEI and 'name | CC' formats, but the single-vs-batch boundary is clear enough to guide selection.
All names are snake_case and start with a lookup verb, giving a predictable read (lookup_company, lookup_lei). The only minor deviation is bulk_lookup, which drops the 'lookup_' prefix for the batch variant, but it remains understandable.
Three tools is slightly lean but well-matched to a focused GLEIF data-access service: one per lookup mode (name, LEI, batch). Each tool earns its place without redundancy, though the surface is minimal.
Core GLEIF access is covered: name search, single-LEI resolution, and batch lookup, all returning status, addresses and parents. Minor gaps exist (e.g. no reverse/parent-tree traversal or pagination/filter options), but agents can work around these by chaining lookups.