Documentation
Connect and use EUCompanyCheck
How to add EUCompanyCheck to Claude, ChatGPT, Claude Code, Cursor, VS Code and other MCP apps by signing in, and what each tool returns.
Connect
Add EUCompanyCheck to your assistant
EUCompanyCheck is a remote MCP server at https://eucompanycheck.co.uk/mcp. Every app connects the same way: you add the URL, the app opens a EUCompanyCheck page, and you sign in with your email and approve. There are no keys or passwords to copy. Create a free account first, or simply sign in when your app asks.
Claude (claude.ai and Claude Desktop)
- Open Settings → Connectors and choose Add custom connector.
- Name it EUCompanyCheck and enter the server URL below. Leave the advanced settings empty.
- Choose Connect. A EUCompanyCheck page opens: sign in with your email, then Approve.
- In a chat, make sure EUCompanyCheck is switched on in the tools menu, then ask about a company.
https://eucompanycheck.co.uk/mcp
On Team and Enterprise plans an owner may need to add the connector for the organisation first.
ChatGPT
- Open Settings → Apps & Connectors. If you do not see an option to create one, turn on Developer mode under Advanced settings.
- Choose Create, name it EUCompanyCheck, enter the server URL below and choose OAuth as the authentication.
- Sign in with your EUCompanyCheck email when asked and Approve.
- Start a chat, add EUCompanyCheck from the tools menu and ask about a company.
https://eucompanycheck.co.uk/mcp
Claude Code
- Add the server:
claude mcp add --transport http eucompanycheck https://eucompanycheck.co.uk/mcp
- In Claude Code, run
/mcp, choose eucompanycheck and then Authenticate. - Your browser opens a EUCompanyCheck page: sign in with your email and Approve.
Cursor
Add this to ~/.cursor/mcp.json (all projects) or .cursor/mcp.json in a project. Then open Settings → MCP, choose Connect next to EUCompanyCheck, sign in with your email in the browser window and Approve.
{
"mcpServers": {
"eucompanycheck": {
"url": "https://eucompanycheck.co.uk/mcp"
}
}
}
VS Code (GitHub Copilot agent mode)
Add this to .vscode/mcp.json in your workspace (or run MCP: Add Server from the command palette and choose HTTP). When VS Code starts the server it asks you to sign in: allow it, sign in with your email in the browser and Approve.
{
"servers": {
"eucompanycheck": {
"type": "http",
"url": "https://eucompanycheck.co.uk/mcp"
}
}
}
Windsurf
Add this to ~/.codeium/windsurf/mcp_config.json and refresh the MCP servers in Cascade. Windsurf opens a EUCompanyCheck sign-in page the first time it connects: sign in with your email and Approve.
{
"mcpServers": {
"eucompanycheck": {
"serverUrl": "https://eucompanycheck.co.uk/mcp"
}
}
}
Other MCP apps
Any app that supports remote MCP servers with sign-in can connect: give it the server URL and sign in with your email when it opens the EUCompanyCheck page.
https://eucompanycheck.co.uk/mcp
For apps that only run local (stdio) servers, the open-source mcp-remote bridge connects them to a remote server and handles the sign-in in your browser:
npx -y mcp-remote https://eucompanycheck.co.uk/mcp
Reference
The seven tools
Your assistant chooses the tools itself; this reference is for when you want to know exactly what it can ask for. Every tool answers live from the official register. Field names are in English; values and the register's own record (registry_record) are in the register's language.
company_search — Search companies
Search a national company register by company name (or by registration number where the register supports it). Returns matching companies with their registration_number, name, status, incorporation date and address, plus the register's own record for each match. Use the registration_number from the results with every other tool. Where a register offers no search (for example Sweden), use the company's registration number with company_profile.
| Parameter | Type | Required | Description |
|---|---|---|---|
country | string | Yes | ISO country code of the register: GB United Kingdom, FR France, DE Germany, ES Spain, IE Ireland, IT Italy, NO Norway, EE Estonia, LU Luxembourg, PL Poland, AT Austria, BE Belgium, BG Bulgaria, CY Cyprus, CZ Czechia, FI Finland, GR Greece, HR Croatia, LV Latvia, PT Portugal, RO Romania, SE Sweden, SK Slovakia. |
name | string | Yes | Company name or part of it. Some registers also accept a registration number here. |
page | integer | No | Results page, starting at 1. Default 1. |
page_size | integer | No | Results per page (1-50). Default 10. |
Example arguments
{
"country": "GB",
"name": "Tesco"
}
Returns: results: each with registration_number, name, status, incorporated_on, registered_address and the register's own record (registry_record); plus next_page when more matches exist.
company_profile — Company profile
Get a company's current register entry: name, registration number, status, legal form, incorporation date, registered address and the register's own record, live from the official registry. Get registration_number from company_search first; never guess it.
| Parameter | Type | Required | Description |
|---|---|---|---|
country | string | Yes | ISO country code of the register: GB United Kingdom, FR France, DE Germany, ES Spain, IE Ireland, IT Italy, NO Norway, EE Estonia, LU Luxembourg, PL Poland, AT Austria, BE Belgium, BG Bulgaria, CY Cyprus, CZ Czechia, FI Finland, GR Greece, HR Croatia, LV Latvia, PT Portugal, RO Romania, SE Sweden, SK Slovakia. |
registration_number | string | Yes | The company's registration number exactly as company_search returned it (for example GB 00445790, FR 652014051, NO 923609016, PL 0000635012). |
Example arguments
{
"country": "GB",
"registration_number": "00445790"
}
Returns: The company's register entry: registration_number, name, status, incorporated_on, registered_address, and other fields the register publishes, and registry_record.
company_directors — Directors and officers
List a company's directors and officers (board members, managers, secretaries, partners, liquidators) with role, appointment and resignation dates, live from the official registry. Roles are given in the register's own language.
| Parameter | Type | Required | Description |
|---|---|---|---|
country | string | Yes | ISO country code of the register: GB United Kingdom, FR France, DE Germany, ES Spain, IE Ireland, IT Italy, NO Norway, EE Estonia, LU Luxembourg, PL Poland, AT Austria, BE Belgium, BG Bulgaria, CY Cyprus, CZ Czechia, FI Finland, GR Greece, HR Croatia, LV Latvia, PT Portugal, RO Romania, SE Sweden, SK Slovakia. |
current_only | boolean | No | true to leave out people who have resigned. Default false. |
registration_number | string | Yes | The company's registration number exactly as company_search returned it (for example GB 00445790, FR 652014051, NO 923609016, PL 0000635012). |
Example arguments
{
"country": "FR",
"current_only": true,
"registration_number": "652014051"
}
Returns: directors: each with name, role, appointed_on, resigned_on and is_current where the register gives them, plus a note on what the register includes.
company_financials — Financial statements
List a company's financial statements (annual accounts) by period, newest first, live from the official registry. Where the register publishes figures they are included. Where the accounts are filed as documents, latest_document gives a download link to the latest accounts (valid for 7 days).
| Parameter | Type | Required | Description |
|---|---|---|---|
country | string | Yes | ISO country code of the register: GB United Kingdom, FR France, DE Germany, ES Spain, IE Ireland, IT Italy, NO Norway, EE Estonia, LU Luxembourg, PL Poland, AT Austria, BE Belgium, BG Bulgaria, CY Cyprus, CZ Czechia, FI Finland, GR Greece, HR Croatia, LV Latvia, PT Portugal, RO Romania, SE Sweden, SK Slovakia. |
fiscal_year | integer | No | Only periods ending in this calendar year. |
period_ending | string | No | Only the period ending on this date (YYYY-MM-DD). |
registration_number | string | Yes | The company's registration number exactly as company_search returned it (for example GB 00445790, FR 652014051, NO 923609016, PL 0000635012). |
Example arguments
{
"country": "GB",
"fiscal_year": 2025,
"registration_number": "00445790"
}
Returns: statements: each period with period_start, period_end, filed_on, a title and filed figures where published; plus latest_document (a download link to the latest accounts) where the accounts are filed as documents.
Identifiers
Company identifiers
Every tool except company_search needs the company's identifier exactly as company_search returned it.
Documents
Filed documents
Where a register keeps a company's accounts or its shareholder list as a filed document, company_financials and company_shareholders include latest_document: the latest one, with a download_url that works for 7 days.
Limits
Plans and request counting
| Plan | Requests a month | At a time | Countries | Tools |
|---|---|---|---|---|
| Free | 100 | 1 | United Kingdom | Company search and company profile |
| Standard | 2,000 | 1 | United Kingdom, France, Spain, Ireland, Italy, Norway, Poland; company search only in Germany, Estonia | All 5 tools in the countries listed first |
| Pro | 10,000 | 5 | All 23 countries | All 5 tools |
- Each tool call is one request. Connecting and listing tools are free.
- Refused calls (plan, invalid input) and calls the register fails to answer are not counted. Answers that find nothing are counted.
- Allowances reset on the first day of each calendar month (UTC). Your usage is on your account page.
- Free and Standard run one request at a time, Pro up to five. A request made while that many are still running is refused and not counted.
- Some registers can take a minute or two to answer large requests.
Errors
What the messages mean
| Message says | What it means | What to do |
|---|---|---|
| Your … plan does not include … | Your plan does not include that country or tool. Not counted. | Upgrade, or ask about a country your plan covers. |
| Your … plan runs … at a time, and … still running | Your plan's limit on requests at a time is reached. Not counted. | Wait for a running request to finish, then ask again. The Pro plan runs up to 5 at a time. |
| You have used all … requests | The monthly allowance is used up. Not counted. | Wait for the reset on the 1st, or upgrade. The Pro plan has the largest allowance. |
| Not available for …: the register does not publish … | That register does not publish this kind of information. Not counted. | Check the coverage table for what the country offers. |
| No company with … was found | The register has nothing under that identifier. Counted. | Search by name with company_search and use the number it returns. |
| …is not a valid … / Unknown argument | The input does not fit the register's format. Not counted. | Your assistant usually corrects this itself. |
| The register is slow to answer / did not give a complete answer | The register did not answer in time. Not counted. | Ask again in a minute. |
Tips
Getting good answers
- Name the country: “the Polish company Allegro” finds it faster than “Allegro”.
- Use the exact registered name or the company number when you have it.
- Ask your assistant to quote the register and the date, and to give you the download link for documents you want to keep.
- Roles, legal forms and statuses come in the register's own language; ask your assistant to translate them.
- For Germany, the register court and register number identify a company; ask for the company by name and city if the name is common.
Questions? Write to EUCompanyCheck support.
Get started
Ready to connect?
Create a free account, then follow the guide for your app above.