Skip to main content
Glama
QorpIQ

com.qorpiq/mca

Official
by QorpIQ

QorpIQ MCP server: Indian company and director data

A Model Context Protocol server that gives ChatGPT, Claude, Cursor and any MCP client read access to India's corporate registry (Ministry of Corporate Affairs, MCA) through QorpIQ.

  • Company or LLP by CIN, LLPIN or FCRN: status, incorporation date, ROC, state, capital, activity, board with DINs

  • Company name search to identifiers

  • Director by DIN: status, disqualification, every directorship

  • Is MCA down? Live portal status

  • Newly registered companies, a sample delayed by one week

  • Free. No account, no key. 100 tool calls a day per network address. Read-only. No personal contacts.

https://mcp.qorpiq.com/mcp

Streamable HTTP, no authentication. Add it as a connector in ChatGPT (Developer Mode), Claude (custom connector) or in any mcp.json:

{
  "mcpServers": {
    "qorpiq": { "url": "https://mcp.qorpiq.com/mcp" }
  }
}

Related MCP server: companies-house-mcp

Stdio (this package)

For clients that only speak stdio. It calls the same public JSON at mcp.qorpiq.com/v1/*.

{
  "mcpServers": {
    "qorpiq": {
      "command": "npx",
      "args": ["-y", "@qorpiq/mcp-server"]
    }
  }
}

Tools

Tool

Input

Returns

lookup_company

identifier (CIN, LLPIN, FCRN)

registry record + source_url

search_companies

query, limit (max 10)

candidates with CIN, status, state

lookup_director

din (8 digits)

DIN status, disqualification, companies

mca_status

none

MCA21 component states and uptime

recent_incorporations_sample

state?, limit (max 25)

one week-old day of incorporations

list_paid_checks

none

the paid KYB checks and how to get a key

Every answer includes a source_url on qorpiq.com you can cite, and a next line describing what the paid API adds.

Plain HTTP

The same data without MCP:

GET https://mcp.qorpiq.com/v1/company/{cin}
GET https://mcp.qorpiq.com/v1/search?q={name}&limit=5
GET https://mcp.qorpiq.com/v1/director/{din}
GET https://mcp.qorpiq.com/v1/recent?state=Maharashtra&limit=10
GET https://mcp.qorpiq.com/v1/status

What it will not return

Personal emails or mobile numbers, same-day incorporations, or any profile a data principal has had removed under India's DPDP Act. Those limits are by design. Paid verification checks (PAN, GST, charges, filing health, auditor, turnover, adjudication, due-diligence report) are on the REST API at developers.qorpiq.com.

Develop

npm install
npm run dev              # stdio against the production endpoints
QORPIQ_MCP_BASE_URL=http://localhost:8787 npm run dev

MIT licensed. Data terms: qorpiq.com/terms.

Available Tools

6 tools
list_paid_checksWhat else can QorpIQ verify (paid API)A
Read-onlyIdempotent
Inspect

Lists the paid KYB checks available with an API key: PAN match, DIN status, signatory, charges, control network, filing health, auditor, turnover, adjudication, due-diligence report. Use when the user needs something this free server does not return.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds one piece of behavioral context the annotations do not: the requirement of an API key, signalling this is a gated/commercial surface rather than a free lookup.

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?

Front-loaded with the action and the inventory, then a single sentence of usage guidance; no filler. The ten-item enumeration is slightly list-heavy but each item is a distinct check the agent may need to recognize on behalf of the user.

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?

For a zero-parameter, no-output-schema catalog tool, the description supplies the complete set of returnable items and the condition for calling it, which is enough to call it correctly. What is missing is only minor: no indication of format or whether results are static.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline is 4. The enumerated check names also help the agent map user intent onto this no-arg catalog call.

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?

States a specific verb and resource ('Lists the paid KYB checks') and enumerates exactly what the catalog contains, so the agent knows the return scope without opening a schema. It also implicitly distinguishes itself from the sibling lookup/mca/search tools by framing these as checks 'this free server does not return.'

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?

'Use when the user needs something this free server does not return' gives a clear triggering condition that routes the agent away from the free lookup siblings. It stops short of naming the specific alternative tools (e.g. lookup_company, mca_status), so the routing is by category rather than by explicit tool name.

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

lookup_companyLook up an Indian company or LLPA
Read-onlyIdempotent
Inspect

Registry record for one Indian company, LLP or foreign company by identifier: CIN (21 characters, e.g. U72900KA2015PTC080123), LLPIN (e.g. AAB-1234) or FCRN. Returns status, incorporation date, ROC, state, capital, activity and the board (names, DINs, designations). No personal contacts. Cite source_url.

ParametersJSON Schema
NameRequiredDescriptionDefault
identifierYesCIN, LLPIN or FCRN

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, non-destructive, closed-world behavior, so the description's job is to add what they don't. It does: it discloses exactly what the record contains (status, incorporation date, ROC, state, capital, activity, board with names/DINs/designations), expressly excludes personal contacts, and instructs citing source_url — valuable return-shape and provenance context given there is no output schema.

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 compact sentences, front-loaded with what the tool retrieves and keyed on identifier format, then the returned fields and the citation requirement. No filler; every clause carries information an agent would otherwise have to guess.

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

Completeness5/5

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

For a one-parameter, no-output-schema tool whose safety profile is already covered by annotations, the description supplies the missing pieces: valid identifier formats with examples, the full content of the returned record, the no-personal-contacts caveat, and the source_url citation requirement. Nothing essential is left unspecified.

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

Parameters4/5

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

With a single parameter and 100% schema description coverage, the baseline is 3, but the description goes beyond the schema's plain 'CIN, LLPIN or FCRN' by giving the CIN's 21-character length and a concrete example (U72900KA2015PTC080123) and an LLPIN example, which helps an agent construct a valid value.

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?

States a specific verb (look up / retrieve registry record) and resource (one Indian company, LLP or foreign company) plus the keying identifier. It is clearly distinguishable from siblings like search_companies (name search) and lookup_director (person lookup) without opening any schema.

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 phrase 'by identifier: CIN, LLPIN or FCRN' implicitly scopes usage to identifier-based lookup and thereby routes away from search_companies, and it specifies the valid id formats. It stops short of explicitly naming when NOT to use it (e.g. to find a company by name, use search_companies).

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

lookup_directorLook up a director by DINA
Read-onlyIdempotent
Inspect

Registry record for one director by 8-digit Director Identification Number: DIN status, disqualification, and every company they are or were on the board of. No personal contacts. Cite source_url.

ParametersJSON Schema
NameRequiredDescriptionDefault
dinYes8-digit DIN

TDQS

A4/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description still adds useful behavioral context: the explicit scope exclusion 'No personal contacts' and the workflow instruction 'Cite source_url', both of which are not in the structured fields.

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?

One dense sentence plus two short fragments, front-loaded with identity and keyed parameter, and the scope limitation is stated last without padding. Every clause carries information.

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?

With no output schema, the description usefully enumerates the returned fields (status, disqualification, board memberships) and the citation behavior, which is what an agent needs to interpret results. It stops short of describing result shape or what happens when a DIN is not found.

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% with a single parameter, so the schema already documents 'din' as an 8-digit DIN with min/max length 8. The description restates the 8-digit format but adds no syntax, validation, or sourcing detail beyond it, so baseline 3 applies.

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?

States a specific verb (look up) and resource (one director) keyed by an 8-digit DIN, and enumerates what the record contains: DIN status, disqualification, and board memberships. This clearly separates it from lookup_company and search_companies without needing the schema.

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 'one director by 8-digit DIN' framing implies a single-record, ID-keyed lookup as opposed to a search, so usage is inferable. However, it never explicitly says when to use this versus lookup_company or what to do if the DIN is unknown, so no exclusion or routing guidance is given.

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

mca_statusIs the MCA portal down?A
Read-onlyIdempotent
Inspect

Live availability of the Ministry of Corporate Affairs (MCA21 V3) company and director services, measured from QorpIQ's own traffic: state, uptime and last incident. Use for "is MCA down", "MCA site not working".

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is covered. The description adds a genuinely useful disclosure beyond that: the measurement is derived from QorpIQ's own traffic, which tells the agent this is an observational signal, not an official MCA status feed.

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?

Two sentences, front-loaded with the resource and scope before the trigger phrases. The two quoted example queries are near-duplicates of each other and slightly pad the length, but nothing is wasted overall.

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?

With no output schema, no parameters, and annotations covering the safety profile, the description is nearly sufficient: it names the returned signal (state, uptime, last incident) and its data source. It could say a bit more about freshness or confidence of the measurement, but for a zero-input status check this is close to complete.

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

Parameters4/5

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

The tool takes zero parameters, so per the rubric the baseline is 4. Nothing in the description needs to explain inputs, and none of its content is spent redundantly on them.

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?

Names a specific resource (live availability of MCA21 V3 company and director services) and enumerates what it reports: state, uptime, last incident. This is unmistakably distinct from the sibling lookup/search tools, which return company or director data rather than service health.

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?

Provides concrete trigger phrases ("is MCA down", "MCA site not working") that map directly to user intent, which gives clear context for invocation. It does not, however, name any alternative or exclusion, so it stops short of a full when/when-not statement.

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

recent_incorporations_sampleNewly incorporated companies (7-day delayed sample)A
Read-onlyIdempotent
Inspect

A sample of companies and LLPs incorporated in India on the most recent day QorpIQ publishes openly, which is one week behind the registry. Optional state filter. Names, identifiers, state and sector only. Same-day data is a paid feed.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoRows to return, default 10, max 25
stateNoIndian state name to filter by, e.g. Maharashtra

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, closed-world and non-destructive behavior, so the bar is lower. The description nonetheless adds material context beyond the annotations: the 7-day publication latency, the deliberately narrow field set, and the paid-tier boundary for same-day data. It does not mention rate limits or sample sizing beyond the schema's limit cap.

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?

Five short sentences, front-loaded with what the tool returns before the freshness caveat and the paid-feed boundary. Every sentence carries information, though the 'most recent day QorpIQ publishes openly, which is one week behind the registry' phrasing is slightly roundabout.

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?

With no output schema, the description usefully enumerates what comes back (names, identifiers, state, sector) and discloses the freshness constraint that determines whether the result is fit for purpose. For a simple two-parameter, zero-required read tool with full annotations, nothing essential is missing.

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 both parameters (limit, state) are already documented with defaults, ranges and an example. The description only notes that the state filter is optional and adds no new syntax, format, or semantic detail, so the baseline of 3 applies.

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?

Names a specific resource (companies and LLPs incorporated in India), a precise scope (single most recent published day), and the returned fields (names, identifiers, state, sector). The 7-day delay clause pins down exactly what 'recent' means, distinguishing it from registry-fresh siblings like search_companies or mca_status.

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?

Gives clear context for when this is the right tool: free, openly published, sample-level data, with an optional state filter. It also signals the boundary case ('Same-day data is a paid feed'), implicitly routing users to list_paid_checks, but it does not name that sibling or state an explicit when-not condition.

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

search_companiesSearch Indian companies by nameA
Read-onlyIdempotent
Inspect

Resolve a company or LLP name to identifiers. Returns up to 10 candidates with CIN/LLPIN, status and state. Follow with lookup_company for the full record.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax candidates, default 5
queryYesCompany or LLP name, or the start of one

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so safety is covered. The description adds real value beyond that by disclosing the result shape (CIN/LLPIN, status, state) and the 10-candidate cap, which the agent cannot infer from 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?

Three short sentences, each earning its place, with the core purpose front-loaded and the follow-up action placed last where it is most actionable.

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

Completeness5/5

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

No output schema exists, and the description compensates by summarizing the returned fields and the candidate cap. Combined with complete parameter docs and full annotations, an agent has everything needed to call this correctly.

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 both parameters (query and limit) are already documented in the schema, including the default of 5 and max of 10. The description's "up to 10 candidates" restates the cap but adds no new parameter semantics, so baseline 3 applies.

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?

States a specific verb+resource: "Resolve a company or LLP name to identifiers." It also implicitly distinguishes itself from the sibling lookup_company by positioning itself as the resolution step feeding into the full-record lookup.

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?

"Follow with lookup_company for the full record" gives clear workflow context and names the sibling alternative. However, it does not state any negative condition (e.g. when this is unnecessary or what to do if zero candidates are returned), so it falls short of full when/when-not guidance.

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. 6 tool updatesv0.1.2
    • First observedlist_paid_checks
    • First observedlookup_company
    • First observedlookup_director
    • First observedmca_status
    • First observedrecent_incorporations_sample
    • First observedsearch_companies

TDQS

A4.3/5.0

Scored across 6 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: lookup_company resolves by identifier, search_companies resolves by name, lookup_director resolves by DIN, mca_status reports service availability, recent_incorporations_sample lists recent additions, and list_paid_checks enumerates paid options. No overlapping boundaries exist, so an agent can easily select the right tool.

Naming Consistency4/5

Four tools follow a consistent verb_noun pattern (lookup_company, search_companies, lookup_director, list_paid_checks), while mca_status and recent_incorporations_sample are noun phrases. The set is entirely snake_case and readable, but the mixed pattern is a minor deviation from full consistency.

Tool Count5/5

With 6 tools, the server is well-scoped for a specialized MCA registry lookup service. Each tool earns its place with no redundancy, and the count falls comfortably within the ideal 3-15 range.

Completeness4/5

The surface covers core read-only registry lookups: company/LLP by identifier, name resolution, director by DIN, recent incorporations, and service status. Minor gaps exist (e.g., director search by name, broader company filtering by attributes), but paid checks are clearly delineated and agents can work around the missing free-tier operations.

Related MCP Connectors

Related MCP Servers

  • 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.
    170 npm
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Provides read-only MCP tools to look up Indian listed companies by symbol, name, sector, and aliases, retrieve verified official X handles, and access the defence/aerospace research universe.
    -