Skip to main content
Glama
Gonzih

mcp-opencorporates

by Gonzih

mcp-opencorporates

MCP server for OpenCorporates — the world's largest open database of companies. Search companies, officers, and filing history across 140+ jurisdictions worldwide.

Install

npx -y @gonzih/mcp-opencorporates

Related MCP server: mcp-open-corporates

Claude Desktop config

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "opencorporates": {
      "command": "npx",
      "args": ["-y", "@gonzih/mcp-opencorporates"],
      "env": {
        "OPENCORPORATES_API_KEY": "your_api_key_here"
      }
    }
  }
}

The OPENCORPORATES_API_KEY is optional — without it, the free tier is used (rate-limited). Get an API key at opencorporates.com.

Tools

search_companies

Search companies by name across all jurisdictions or within a specific one.

Parameter

Type

Required

Description

q

string

yes

Company name or search query

jurisdiction_code

string

no

Filter by jurisdiction (e.g. us_de, gb, de)

page

number

no

Page number for pagination

get_company

Get full details for a company by jurisdiction code and registration number.

Parameter

Type

Required

Description

jurisdiction_code

string

yes

Jurisdiction code (e.g. us_de, gb)

company_number

string

yes

Company registration number

search_officers

Search for officers (directors, shareholders, agents) across all companies.

Parameter

Type

Required

Description

q

string

yes

Officer name or search query

jurisdiction_code

string

no

Filter by jurisdiction

page

number

no

Page number for pagination

get_company_officers

Get all officers for a specific company.

Parameter

Type

Required

Description

jurisdiction_code

string

yes

Jurisdiction code

company_number

string

yes

Company registration number

page

number

no

Page number for pagination

get_company_filings

Get the filing history for a company.

Parameter

Type

Required

Description

jurisdiction_code

string

yes

Jurisdiction code

company_number

string

yes

Company registration number

page

number

no

Page number for pagination

Jurisdiction codes

Common codes:

Code

Jurisdiction

us_de

Delaware, USA

us_ca

California, USA

us_ny

New York, USA

gb

United Kingdom

de

Germany

fr

France

au

Australia

ca_on

Ontario, Canada

Full list: opencorporates.com/jurisdictions

API key setup

The free tier works without an API key but is rate-limited. For higher limits:

  1. Sign up at opencorporates.com

  2. Set OPENCORPORATES_API_KEY env var in your Claude Desktop config

API reference

Full API documentation: api.opencorporates.com/documentation/API-Reference

License

MIT

Available Tools

5 tools
get_companyA

Get full details for a specific company by jurisdiction code and company number. Returns name, status, incorporation date, registered address, officers, and filings.

ParametersJSON Schema
NameRequiredDescriptionDefault
jurisdiction_codeYesJurisdiction code (e.g. 'us_de', 'gb', 'de')
company_numberYesCompany registration number

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that the tool returns company details (name, status, etc.) which implies a read operation. However, it does not explicitly state read-only, authentication needs, or potential limitations. The listed return fields add moderate transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with action and resource, followed by return fields. No extraneous information. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 2 well-defined parameters (100% schema coverage), no output schema, and no annotations, the description provides essential information: purpose, required identifiers, and typical return fields. It could mention error handling or potential missing data, but the information is sufficient for a simple tool with clear siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already documents both parameters well. The tool description echoes the parameter purpose ('by jurisdiction code and company number') but doesn't add new syntax or meaning beyond the schema. The description compensates slightly by linking parameters to the returned data.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and specifies the resource as 'full details for a specific company' with precise identifiers (jurisdiction code and company number). It lists key return fields, distinguishing itself from sibling tools like get_company_filings and get_company_officers which are more focused.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description instructs when to use the tool (by providing jurisdiction_code and company_number). It implicitly differentiates from sibling search tools and sub-detail tools, but doesn't explicitly state alternatives or when not to use it. Overall context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_company_filingsA

Get the filing history for a specific company. Returns filings with dates, types, and descriptions.

ParametersJSON Schema
NameRequiredDescriptionDefault
jurisdiction_codeYesJurisdiction code (e.g. 'us_de', 'gb', 'de')
company_numberYesCompany registration number
pageNoPage number for pagination (default 1)

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavior. It states return content but omits details like read-only nature (likely safe), pagination via the 'page' parameter, or error conditions. This is adequate but lacks depth for a tool with no annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short, front-loaded sentences with no fluff. Every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description explains return format but omits pagination behavior and error handling. For a simple list tool, it's minimally viable but could include details on the page parameter's effect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the existing parameter descriptions are sufficient. The tool description adds no extra meaning beyond what's in the input schema, meeting the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and resource 'filing history for a specific company', and explicitly mentions returned fields (dates, types, descriptions). This distinguishes it from siblings like get_company (single company info) and get_company_officers (officers list).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for obtaining filing history of a specific company, but no explicit when-not or alternative tools are mentioned. An agent must infer from tool names alone; no guidance on when to prefer this over search_companies or get_company is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_company_officersA

Get all officers for a specific company. Returns current and historical officers with positions and dates.

ParametersJSON Schema
NameRequiredDescriptionDefault
jurisdiction_codeYesJurisdiction code (e.g. 'us_de', 'gb', 'de')
company_numberYesCompany registration number
pageNoPage number for pagination (default 1)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It states that it returns current and historical officers with positions and dates, indicating a read operation. However, it does not mention pagination behavior, rate limits, or prerequisites beyond the required parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that efficiently conveys the tool's purpose and return content, with no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple input (3 parameters) and no output schema, the description covers the main return content (current and historical officers with positions and dates). It lacks details on pagination handling, which is relevant given the 'page' parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds no parameter-specific details beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool gets all officers for a specific company. This distinguishes it from siblings like 'search_officers' (which searches across companies) and 'get_company' (which gets company details).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context: for a specific company using jurisdiction and company number. However, it does not explicitly exclude cases or compare with alternatives like 'search_officers' or 'get_company_filings'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_companiesB

Search companies by name in the OpenCorporates database. Returns matching companies with name, number, jurisdiction, status, incorporation date, and registered address.

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesCompany name or search query
jurisdiction_codeNoJurisdiction code to filter results (e.g. 'us_de' for Delaware, 'gb' for UK, 'de' for Germany)
pageNoPage number for pagination (default 1)

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must fully convey behavioral traits. It only mentions that matching companies are returned, omitting details on pagination, data freshness, rate limits, or side effects. The list of return fields adds some value but insufficient transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded, with two sentences that efficiently convey the primary action and return fields. No fluff or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of an output schema, the description adequately lists return fields. However, it misses details on pagination behavior (the 'page' parameter is present but not explained) and does not address error handling or empty results. It is minimally adequate but not thorough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All three parameters are described in the input schema (100% coverage). The description adds marginal context by linking the search action to the 'q' parameter, but does not provide additional semantics beyond what the schema already offers. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches for companies by name and lists the fields returned. However, it does not explicitly differentiate itself from sibling tools like get_company or search_officers, leaving the agent to infer distinctions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or exclusions. The description only states the search action and filter options without context for decision-making.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_officersB

Search for officers (directors, shareholders, agents) across all companies in OpenCorporates.

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesOfficer name or search query
jurisdiction_codeNoJurisdiction code to filter results (e.g. 'us_de', 'gb')
pageNoPage number for pagination (default 1)

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but only states the purpose. It does not disclose behavioral traits such as authentication requirements, rate limits, result format, or error handling. The description is too brief for a search tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, very concise and to the point. However, it could be slightly more detailed without losing conciseness, e.g., mentioning the return type. Still, it earns its place without waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description is incomplete. It does not explain what the search returns, how results are structured, or provide usage context beyond the basic purpose. The tool is simple, but more context is needed for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description adds no additional meaning beyond the schema. The baseline of 3 is appropriate as it does not enhance parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'search', the resource 'officers', and provides specific types (directors, shareholders, agents) and scope 'across all companies'. It distinguishes from siblings like get_company_officers which returns officers for a specific company.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for global officer search, but it does not explicitly state when to use it vs. alternatives like get_company_officers. No when-not-to-use or prerequisite guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updatesv0.1.1
    • First observedget_company
    • First observedget_company_filings
    • First observedget_company_officers
    • First observedsearch_companies
    • First observedsearch_officers

TDQS

A3.9/5.0

Scored across 5 tools

Disambiguation5/5

Each tool targets a distinct aspect: single company, filings, officers, company search, and officer search. No overlap in functionality.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern: get_company, get_company_filings, get_company_officers, search_companies, search_officers. Perfectly uniform.

Tool Count5/5

5 tools is well-scoped for a corporate data lookup server, covering both retrieval and search without being excessive.

Completeness5/5

The tool set covers the main operations for corporate data: retrieve a company, its filings and officers, and search across companies and officers. No obvious gaps for the domain.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables AI assistants to search and retrieve UK Companies House data including company profiles, officers, and filing history via the official API.
    4
    70
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    OpenCorporates MCP provides free, no-auth access to global company registry data with rate limiting, enabling AI agents to look up company information.
    9
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Exposes 29 official business-registry actors as MCP tools for KYC/AML, beneficial-owner (UBO), credit-risk and adverse-media workflows across 11 jurisdictions (EU, US, UAE). Sourced via Apify; pay-per-result.
    38
    6
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables querying UK company data including search, profiles, officers, filings, and persons with significant control via Companies House API.
    70
    MIT