Commonwealth Corporate Registry MCP
Commonwealth corporate registry intelligence for AI agents, delivered via the Model Context Protocol. This MCP server queries Australian ABN, Canadian Corporation, New Zealand Companies Office, UK Companies House, OpenCorporates, GLEIF LEI, and Wikipedia simultaneously — returning cross-jurisdiction entity data, concordance scores, and identity verification grades in a single structured response.
Maintenance Pulse
90/100Cost Estimate
How many results do you need?
Pricing
Pay Per Event model. You only pay for what you use.
| Event | Description | Price |
|---|---|---|
| tool-call | Per MCP tool invocation | $0.10 |
Example: 100 events = $10.00 · 1,000 events = $100.00
Connect to your AI agent
Add this MCP server to Claude Desktop, Cursor, Windsurf, or any MCP-compatible client.
https://ryanclinton--commonwealth-corporate-registry-mcp.apify.actor/mcp{
"mcpServers": {
"commonwealth-corporate-registry-mcp": {
"url": "https://ryanclinton--commonwealth-corporate-registry-mcp.apify.actor/mcp"
}
}
}Documentation
Commonwealth corporate registry intelligence for AI agents, delivered via the Model Context Protocol. This MCP server queries Australian ABN, Canadian Corporation, New Zealand Companies Office, UK Companies House, OpenCorporates, GLEIF LEI, and Wikipedia simultaneously — returning cross-jurisdiction entity data, concordance scores, and identity verification grades in a single structured response.
Built for KYB analysts, compliance teams, and AI agents that need authoritative company registration data across Australia, Canada, New Zealand, and the UK without manually searching four separate government portals. Seven Apify actors run in parallel behind 8 MCP tools, with a 5-minute in-memory cache that prevents duplicate registry calls within the same session.
What data can you access?
| Data Point | Source | Example |
|---|---|---|
| 📋 ABN, entity name, GST status | Australia ABN Lookup | ABN 83 914 571 673 — Active |
| 🏢 Corporation number, incorporation date | Canada Corporation Search | 1234567-8 — Active Federal |
| 🔢 NZBN, company type, director details | NZ Companies Office | 9429041248743 — Registered |
| 🏛️ Company number, filing status, PSC data | UK Companies House | 09248896 — Active |
| 🌐 140+ jurisdiction coverage, OpenCorp ID | OpenCorporates | gb/09248896 — Active |
| 🔑 20-character LEI code, registration status | GLEIF LEI | 2138005O9XJIJN4JPN90 — Active |
| 📖 Encyclopedic history and operations | Wikipedia | BHP Group — 6M+ article index |
| 📊 Concordance score 0–1 across registries | Cross-reference engine | 0.87 — High match confidence |
| 🎓 Identity verification grade A–F | Scoring engine | Grade A — LEI verified |
| 🗺️ Jurisdiction presence score 0–1 | Presence scoring | 0.80 — 4 jurisdictions |
⬇️ MCP Tools
| Tool | Price | Description |
|---|---|---|
map_commonwealth_entities | $0.05 | Map corporate entities across Commonwealth registries with jurisdiction breakdown, network graph, and per-entity presence scores. |
search_australian_business | $0.05 | Search the Australian ABN registry for entity name, ABN, entity type, GST registration, and status. |
search_canadian_corporation | $0.05 | Search the Canadian federal corporation registry for corporation name, number, directors, and incorporation status. |
search_nz_company | $0.05 | Search NZ Companies Office for company name, NZBN, company type, directors, and registration status. |
search_uk_company | $0.05 | Search UK Companies House for company number, filing status, officers, and persons with significant control. |
cross_reference_registries | $0.05 | Cross-reference entity across all Commonwealth registries and LEI with concordance scoring and match confidence 0–1. |
verify_global_identity | $0.05 | Verify corporate identity with name variation detection, LEI verification, Wikipedia corroboration, and A–F confidence grading. |
generate_registry_report | $0.05 | Comprehensive multi-jurisdiction registry report: findings ranked by severity, LEI coverage analysis, status concordance, and actionable recommendations. |
Why use Commonwealth Corporate Registry MCP?
Verifying a company across Australia, Canada, New Zealand, and the UK means opening four government portals, running four separate searches, and manually reconciling the results. For a compliance analyst, that is 30–60 minutes of work per entity — before any analysis begins. For an AI agent, it means four sequential tool calls returning raw, unstructured data that requires further interpretation.
This MCP server orchestrates all seven registry data sources in parallel, builds a unified entity graph, and returns scored, structured intelligence from a single tool call.
- AI-native — MCP protocol support for Claude Desktop, Cursor, Windsurf, Cline, and any MCP-compatible agent framework
- Parallel execution — all registry actors run concurrently;
Promise.alldispatch means no sequential bottleneck - Session caching — 5-minute in-memory cache keyed by
source:queryprevents redundant registry calls in multi-tool workflows - Scored output — concordance scores, presence scores, and A–F identity grades are computed server-side, not raw registry dumps
- Spending controls — per-event charging with configurable spending limits via Apify's platform; the server halts cleanly when budget is reached
- Scheduling and webhooks — run on a schedule or trigger via webhook for continuous monitoring workflows
Features
- 7-actor parallel dispatch — sends queries to Australia ABN, Canada Corporation, NZ Companies, UK Companies House, OpenCorporates, GLEIF LEI, and Wikipedia simultaneously using
Promise.all - Unified registry graph —
buildRegistryNetworkconstructs a typed node/edge graph with four node types (company,registration,lei_entity,article) and seven edge types tracking jurisdiction relationships - Concordance scoring —
crossReferenceRegistriescalculates a 0–1 concordance score based on registration status agreement across jurisdictions:(activeCount / totalStatuses) * 0.3 + jurisdictionCount * 0.2 + LEI bonus 0.3 - Match confidence formula — overall
matchConfidenceis bounded at 1.0:min(1, jurisdictions * 0.2 + leiCoverage * 0.3 + concordanceScore * 0.3) - Presence scoring —
scoreMultiJurisdictionPresenceevaluates each entity:min(1, jurisdictionCount * 0.2 + hasLEI * 0.2), returning up to 40 entities sorted by score - Identity confidence grading —
verifyGlobalIdentitybuilds confidence from four components: registration score (max 0.4 at 4+ registrations), LEI score (0.25), Wikipedia corroboration (0.15), name consistency (0.05–0.20); maps to grades A (≥0.8), B (≥0.6), C (≥0.4), D (≥0.2), F (<0.2) - Name variation detection — collects
entityName,corporationName,companyName,legalNamefrom all registry records and LEI, normalizes to lowercase for comparison, surfaces up to 10 variations per entity - Report severity ranking —
generateRegistryReportproduces findings categorized ascritical,high,medium, orlow, sorted by severity with actionable remediation steps - LEI coverage analysis — calculates LEI coverage rate across all entities; flags
criticalwhen rate < 20%,highwhen < 50% - Status discordance detection — identifies entities where registration statuses differ across jurisdictions (e.g., Active in UK but Dissolved in Australia), flags as
critical - OpenCorporates breadth — includes 140+ jurisdictions beyond the core four Commonwealth registries via OpenCorporates, extending coverage to offshore and non-Commonwealth registrations
- Dual transport support — serves both SSE (
/sse+/messages) and Streamable HTTP (/mcp) MCP transports; SSE sessions are stored persessionIdfor stateful connections - Result pagination — all tools cap results at 40 entities and 500 dataset items per actor to maintain response time and cost predictability
Use cases for Commonwealth corporate registry intelligence
KYB entity verification for financial services
Compliance teams onboarding new business clients need to verify entity existence, registration status, and legal name across the jurisdictions the client claims to operate in. verify_global_identity returns a single A–F grade derived from registry registrations, LEI status, and name consistency — giving onboarding teams a clear accept/review/reject signal without manual portal searches.
Cross-border corporate structure mapping
M&A advisors and investment analysts need to understand how a target company is structured across Commonwealth jurisdictions before due diligence begins. map_commonwealth_entities returns a jurisdiction breakdown showing where registrations exist, how many entities are linked, and their presence scores — revealing subsidiary structures, dormant shells, and holding company arrangements.
AML and compliance registry checks
AML compliance programs require periodic entity re-verification against current registry status. cross_reference_registries surfaces status discordance — where a company shows Active in one jurisdiction but Struck Off or Dissolved in another — which is a flag for further investigation in AML and PEP screening workflows.
M&A due diligence registry research
Deal teams generating Information Memoranda or conducting vendor due diligence need comprehensive registry summaries. generate_registry_report produces structured findings ranked by severity: LEI coverage gaps, status discordance, name variations, and multi-jurisdiction presence — structured output that feeds directly into due diligence reports.
AI agent corporate research workflows
AI agents conducting company research need structured registry data without browser automation. Each MCP tool returns clean JSON that agents can reason over, cite in research summaries, or pass to downstream tools — replacing ad-hoc web scraping with deterministic, scored registry intelligence.
Supplier and counterparty due diligence
Procurement and vendor management teams verifying supplier legitimacy before contract execution can use verify_global_identity to confirm the supplier exists in official registries, holds a valid LEI (important for financial transactions), and has consistent registration details across jurisdictions.
How to connect this MCP server
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"commonwealth-corporate-registry": {
"url": "https://commonwealth-corporate-registry-mcp.apify.actor/mcp",
"headers": {
"Authorization": "Bearer YOUR_APIFY_TOKEN"
}
}
}
}
Cursor / Windsurf / Cline
Add the MCP server URL in your editor's MCP settings panel:
https://commonwealth-corporate-registry-mcp.apify.actor/mcp
With the Authorization: Bearer YOUR_APIFY_TOKEN header configured in your client.
SSE transport (legacy clients)
https://commonwealth-corporate-registry-mcp.apify.actor/sse
Programmatic HTTP (cURL)
# Call verify_global_identity
curl -X POST "https://commonwealth-corporate-registry-mcp.apify.actor/mcp" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "verify_global_identity",
"arguments": {
"query": "BHP Group",
"sources": ["australia", "uk", "lei", "wiki"]
}
},
"id": 1
}'
Python (via MCP client or direct HTTP)
import httpx
import json
response = httpx.post(
"https://commonwealth-corporate-registry-mcp.apify.actor/mcp",
headers={
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_APIFY_TOKEN",
},
json={
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "cross_reference_registries",
"arguments": {
"query": "Rio Tinto",
"sources": ["australia", "uk", "canada", "lei"]
}
},
"id": 1
}
)
result = response.json()
content = json.loads(result["result"]["content"][0]["text"])
print(f"Entities found: {content['totalEntities']}")
print(f"Multi-jurisdiction: {content['multiJurisdictionCount']}")
print(f"Avg concordance: {content['avgConcordance']}")
for match in content["matches"][:5]:
print(f" {match['entity']}: {match['jurisdictions']} — confidence {match['matchConfidence']}")
JavaScript / TypeScript
const response = await fetch("https://commonwealth-corporate-registry-mcp.apify.actor/mcp", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_APIFY_TOKEN",
},
body: JSON.stringify({
jsonrpc: "2.0",
method: "tools/call",
params: {
name: "generate_registry_report",
arguments: {
query: "Macquarie Group",
sources: ["australia", "uk", "canada", "newZealand", "lei", "wiki"]
}
},
id: 1
})
});
const data = await response.json();
const report = JSON.parse(data.result.content[0].text);
console.log(`Coverage: ${report.overallCoverage}`);
console.log(`Entities analyzed: ${report.entitiesAnalyzed}`);
console.log(`LEI coverage rate: ${(report.leiCoverageRate * 100).toFixed(1)}%`);
for (const finding of report.findings) {
console.log(`[${finding.importance.toUpperCase()}] ${finding.category}: ${finding.finding}`);
}
⬆️ Output examples
verify_global_identity response
{
"verifications": [
{
"entity": "BHP Group Limited",
"registrationsFound": 4,
"jurisdictions": ["australia", "uk", "newZealand", "canada"],
"nameVariations": [
"BHP Group Limited",
"BHP GROUP LIMITED",
"BHP Billiton Limited"
],
"identityConfidence": 0.85,
"leiVerified": true,
"wikipediaCorroborated": true,
"verificationGrade": "A"
}
],
"totalVerified": 3,
"avgConfidence": 0.72,
"gradeDistribution": { "A": 1, "B": 1, "C": 1 }
}
cross_reference_registries response
{
"matches": [
{
"entity": "Pinnacle Resources International",
"jurisdictions": ["australia", "uk", "lei"],
"registrationIds": {
"australia": "51 004 458 390",
"uk": "08342156",
"lei": "213800WSGIIZCXF1P572"
},
"matchConfidence": 0.82,
"leiCoverage": true,
"concordanceScore": 0.875
}
],
"totalEntities": 12,
"multiJurisdictionCount": 4,
"avgConcordance": 0.7341,
"leiCoverageRate": 0.4167
}
generate_registry_report response
{
"findings": [
{
"category": "Multi-Jurisdiction Presence",
"finding": "Entities found across 4 jurisdictions: australia, uk, canada, newZealand",
"importance": "high",
"evidence": "18 registration records across 4 jurisdictions",
"action": "Review cross-jurisdiction compliance and regulatory obligations"
},
{
"category": "Status Discordance",
"finding": "1 entity/entities with inconsistent registration statuses across jurisdictions",
"importance": "critical",
"evidence": "Crestview Holdings Pty Ltd: active, dissolved",
"action": "Investigate status discrepancies - may indicate dissolved or suspended registrations"
},
{
"category": "LEI Coverage Gap",
"finding": "33.3% of entities have LEI identifiers",
"importance": "high",
"evidence": "2 of 6 entities have LEI codes",
"action": "Obtain LEI codes for entities involved in financial transactions or regulatory reporting"
}
],
"overallCoverage": "partial",
"entitiesAnalyzed": 6,
"jurisdictionsCovered": 4,
"leiCoverageRate": 0.3333,
"recommendations": [
"Improve LEI coverage for financial transaction and regulatory compliance",
"Resolve registration status inconsistencies across jurisdictions",
"Expand registry searches to additional Commonwealth jurisdictions"
]
}
Output fields
verify_global_identity
| Field | Type | Description |
|---|---|---|
verifications[].entity | string | Normalized entity name, max 60 characters |
verifications[].registrationsFound | number | Count of registry records found across all sources |
verifications[].jurisdictions | string[] | List of jurisdictions where registrations were found |
verifications[].nameVariations | string[] | Up to 10 name variants collected across registry records and LEI |
verifications[].identityConfidence | number | Composite confidence score 0–1 (reg score + LEI 0.25 + wiki 0.15 + name consistency 0.05–0.20) |
verifications[].leiVerified | boolean | Whether a GLEIF LEI record was found for this entity |
verifications[].wikipediaCorroborated | boolean | Whether a Wikipedia article was matched to this entity |
verifications[].verificationGrade | string | A (≥0.8), B (≥0.6), C (≥0.4), D (≥0.2), F (<0.2) |
totalVerified | number | Total entities assessed |
avgConfidence | number | Mean identity confidence across all entities |
gradeDistribution | object | Count of entities per grade: { "A": 2, "B": 1, ... } |
cross_reference_registries
| Field | Type | Description |
|---|---|---|
matches[].entity | string | Entity name, max 60 characters |
matches[].jurisdictions | string[] | Jurisdictions where the entity has registrations |
matches[].registrationIds | object | Registration IDs keyed by jurisdiction: { "australia": "ABN", "uk": "compNum", "lei": "LEI code" } |
matches[].matchConfidence | number | Overall confidence 0–1: min(1, jurisdictions*0.2 + leiCoverage*0.3 + concordance*0.3) |
matches[].leiCoverage | boolean | Whether a GLEIF LEI was found for this entity |
matches[].concordanceScore | number | Status concordance 0–1: proportion of registrations showing active/registered/current status |
totalEntities | number | Total matched entities |
multiJurisdictionCount | number | Entities appearing in 2+ jurisdictions |
avgConcordance | number | Mean concordance score across all matches |
leiCoverageRate | number | Proportion of entities with LEI coverage |
generate_registry_report
| Field | Type | Description |
|---|---|---|
findings[].category | string | Finding category: Multi-Jurisdiction Presence, LEI Coverage Gap, Status Discordance, Name Variations, Public Profile, No Results |
findings[].finding | string | Human-readable finding description |
findings[].importance | string | Severity: critical, high, medium, or low |
findings[].evidence | string | Supporting evidence from registry data |
findings[].action | string | Recommended remediation or follow-up action |
overallCoverage | string | comprehensive (3+ jurisdictions and ≥30% LEI), partial (1+ jurisdiction), or limited |
entitiesAnalyzed | number | Number of company nodes analyzed |
jurisdictionsCovered | number | Count of distinct jurisdictions with registrations |
leiCoverageRate | number | Proportion of entities with GLEIF LEI identifiers |
recommendations | string[] | Actionable recommendations ordered by priority |
Country search tools (search_australian_business, search_uk_company, etc.)
| Field | Type | Description |
|---|---|---|
results[].entity | string | Entity or company name |
results[].registrationId | string | ABN, corporation number, NZBN, or UK company number |
results[].status | string | Registration status from source registry |
results[].jurisdiction | string | Source jurisdiction: australia, canada, newZealand, or uk |
results[].details | object | Full raw record from the source registry actor |
totalFound | number | Number of results returned |
jurisdiction | string | Jurisdiction searched |
How much does it cost to query Commonwealth corporate registries?
Every tool call is priced at $0.05 per call. Compute costs are included. The Apify Free plan includes $5 of monthly credits — enough for 100 tool calls with no credit card required.
| Scenario | Tool calls | Cost per call | Total cost |
|---|---|---|---|
| Single entity verify | 1 | $0.05 | $0.05 |
| 10-entity KYB batch | 10 | $0.05 | $0.50 |
| 50-entity compliance review | 50 | $0.05 | $2.50 |
| 200-entity portfolio check | 200 | $0.05 | $10.00 |
| 1,000-entity bulk verification | 1,000 | $0.05 | $50.00 |
You can set a maximum spending limit per run in Apify's platform settings. The server returns a clean error message when the budget is reached rather than failing silently.
For context, KYB platform subscriptions (Kyckr, Creditsafe, Bureau van Dijk) typically cost $500–2,000/month. With this MCP server, most compliance teams running 200–500 checks per month spend $10–25 with no subscription commitment.
How Commonwealth Corporate Registry MCP works
Phase 1: Query dispatch and caching
When a tool is called with a query and sources array, the resolveData function dispatches parallel Apify actor calls using Promise.all. Each source has a cache key formatted as source:query (e.g., au:BHP Group). If a matching entry exists in the in-memory CACHE Map and is less than 5 minutes old (TTL = 5 * 60_000 ms), the cached result is returned immediately without a network call. This is important for multi-tool workflows where the same entity is queried by cross_reference_registries followed immediately by generate_registry_report.
Each actor call uses the apify-client SDK, setting waitSecs: 180 and memory: 256 MB. Results are fetched from the actor's default dataset with a limit of 500 items per source. Failed actor calls return an empty array rather than throwing, so a single unavailable source does not abort the entire query.
Phase 2: Registry network construction
The 7 data arrays are passed to buildRegistryNetwork, which constructs a typed graph of RegistryNode and RegistryEdge objects. Company nodes are created for each unique entity name or registration ID, using a normalized key (name.toLowerCase().replace(/[^a-z0-9]/g, '_')). Registration nodes are created per jurisdiction with jurisdiction-tagged edge types: registered_in_au, registered_in_ca, registered_in_nz, registered_in_uk. LEI records create lei_entity nodes linked by identified_by edges with weight 0.95. Wikipedia articles are linked to company nodes via fuzzy prefix matching (15-character prefix inclusion check) with described_in edges at weight 0.6. OpenCorporates records use listed_on edges at weight 0.7 to reflect that OpenCorporates aggregates rather than primary registration.
Phase 3: Analysis and scoring
Depending on which tool was called, one of four analysis functions runs over the network:
mapCommonwealthEntities— counts edges per node, builds jurisdiction breakdown, returns top-40 entities by connection countcrossReferenceRegistries— for each company node, collects linked registration nodes, extracts jurisdiction list and registration IDs, computes concordance from status agreement, calculatesmatchConfidenceformulaverifyGlobalIdentity— computes the four-component confidence score, normalizes name variants across all registry records, assigns A–F gradegenerateRegistryReport— runs five sequential finding detectors (multi-jurisdiction, LEI coverage, status discordance, name variations, Wikipedia), sorts by severity, producesoverallCoverageassessment and recommendations array
Phase 4: MCP transport and response
The MCP server supports two transport protocols. The Streamable HTTP transport at /mcp creates a new StreamableHTTPServerTransport per request with crypto.randomUUID() session IDs — appropriate for stateless API calls. The SSE transport at /sse maintains persistent sessions in the transports Map, with cleanup on connection close. Both transports use the same McpServer instance constructed fresh per request by getServer(). Results are serialized as JSON.stringify(..., null, 2) and returned as text content blocks.
Tips for best results
-
Start with
verify_global_identityfor new entities. The A–F grade gives an immediate signal on whether a company has verifiable, consistent presence across registries. Grade C or below warrants deeper investigation before onboarding. -
Use
sourcesto control cost and speed. The default source list covers 6 registries. For quick checks where you only need UK Companies House data, pass["uk"]to call just that actor. Each source included adds one underlying actor call. -
Chain
cross_reference_registriesaftermap_commonwealth_entitiesin the same session. The 5-minute cache means the second call reuses actor results from the first, costing only the MCP tool fee without additional actor compute. -
Use
generate_registry_reportfor structured due diligence outputs. The findings array is pre-sorted by severity (criticalfirst) and includesactionfields — suitable for direct insertion into due diligence report templates or compliance case management systems. -
Search by registration number for exact matches. Passing an ABN, UK company number, or NZBN directly returns a precise match and avoids name-ambiguity results. For example,
"09248896"returns a single UK Companies House record rather than all companies with a similar name. -
LEI verification is the strongest identity signal. An entity with a valid GLEIF LEI and matching legal name has been independently verified by a Local Operating Unit (LOU) accredited by GLEIF. If
leiVerified: trueappears inverify_global_identity, that entity meets the identity standard required for financial transactions under many regulatory frameworks. -
Flag
Status Discordancefindings immediately. A company showing Active in one jurisdiction and Dissolved or Struck Off in another is a material finding in KYB, AML, and credit underwriting contexts. Thegenerate_registry_reporttool surfaces this as acriticalfinding with specific entity names and status values in the evidence field.
Combine with other MCP servers
| MCP Server | How to combine |
|---|---|
| counterparty-due-diligence-mcp | Run registry verification first, then pass entities to counterparty due diligence for sanctions, PEP, and adverse media screening |
| adversarial-corporate-opacity-mcp | Follow registry mapping with shell company detection and opacity scoring on identified multi-jurisdiction structures |
| corporate-deep-research-mcp | Supplement registry status data with financial health, governance, and competitive intelligence |
| opencorporates-search | Use directly for deep dives into a single OpenCorporates jurisdiction beyond the MCP's bundled query |
| gleif-lei-lookup | Access full GLEIF LEI data including corporate parent/child hierarchy and renewal history |
| uk-companies-house | Access detailed UK filings, accounts, and full officer history beyond registry status |
| sanctions-network-analysis | Cross-reference verified registry entities against OFAC, UN, EU, and UK sanctions lists |
Limitations
- No provincial/state registries — Canadian coverage is federal only (Corporations Canada). Provincial registries (Ontario, BC, Alberta) require separate searches. UK coverage is Companies House England and Wales; Scottish and Northern Irish entities may have partial data.
- No historical filing access — the server returns current registration status and basic details. Historical annual returns, accounts, and document filings require direct Companies House or ASIC API access.
- No beneficial ownership depth — UK Companies House PSC data is included in raw results but the server does not trace multi-tier beneficial ownership chains. For full UBO mapping, use alongside a dedicated beneficial ownership tool.
- OpenCorporates coverage varies — quality and completeness varies significantly by jurisdiction. Some smaller Commonwealth jurisdictions have limited OpenCorporates data despite nominal coverage.
- Wikipedia matching is fuzzy — article linking uses a 15-character prefix inclusion check. For companies with common name fragments, false positive article links may appear. Check
wikipediaCorroboratedas a corroboration signal, not a primary verification. - Cache is per-instance — the 5-minute in-memory cache applies within a single server instance. Cold starts (new Apify standby instance) begin with an empty cache.
- 180-second actor timeout — each underlying registry actor has a 180-second timeout. Slow registry sources (OpenCorporates, GLEIF under high load) may time out and return empty arrays. The server continues with available data rather than failing.
- Up to 50 records per source — the network builder processes at most 50 records per registry and 500 per actor dataset fetch. Very common names may have more matches than are analyzed.
- No real-time status polling — data reflects registry state at query time. Apify platform scheduling is available for periodic re-verification workflows.
Integrations
- Zapier — trigger registry verification when a new vendor record is created in your CRM or procurement system
- Make — build automated KYB workflows: new client intake form → registry check → compliance system update
- Google Sheets — export registry report findings to a compliance tracking spreadsheet for review queues
- Apify API — integrate registry verification into custom KYB platforms or compliance portals via REST API
- Webhooks — notify compliance systems when registry checks complete or when spending limits are approached
- LangChain / LlamaIndex — embed registry verification as a tool in RAG pipelines for document-grounded compliance analysis
❓ FAQ
How many Commonwealth countries does this MCP server cover? Direct registry access covers Australia (ABN Lookup), Canada (Corporations Canada federal registry), New Zealand (Companies Office), and the United Kingdom (Companies House). OpenCorporates extends this to 140+ jurisdictions globally. GLEIF LEI provides entity identification across all financial market jurisdictions worldwide.
How current is the registry data returned? Data is fetched live at query time from each registry via the underlying Apify actors. Results reflect the current published state of each registry at the moment of the call — there is no pre-cached or stale batch data in the system.
How does the A–F verification grade work? The grade is a composite of four components: registration score (capped at 0.4 for 4+ registry records), LEI presence (0.25), Wikipedia corroboration (0.15), and name consistency (0.05–0.20 depending on number of name variations found). Scores ≥0.8 = A, ≥0.6 = B, ≥0.4 = C, ≥0.2 = D, below 0.2 = F.
Can I search by company registration number instead of name? Yes. All four country-specific tools and the cross-registry tools accept registration numbers: ABN for Australia, corporation number for Canada, NZBN for New Zealand, and company registration number for UK. Searching by number returns exact matches and avoids ambiguous name results.
What does a concordance score of 0.0 mean? A concordance score of 0.0 means none of the registration records found show an active, registered, or current status. All statuses are dissolved, struck off, inactive, or unknown. This is a material finding that warrants investigation before proceeding with onboarding or transactions.
Is it legal to use Commonwealth corporate registry data this way? All data sources are publicly available government registries. ABN Lookup, Companies House, NZ Companies Office, and Corporations Canada publish their data for public access. OpenCorporates and GLEIF are licensed data aggregators. See Apify's guide on web scraping legality.
How is this different from subscribing to a KYB platform like Kyckr or Bureau van Dijk? KYB platforms charge $500–2,000/month for subscription access. This MCP server uses pay-per-call pricing at $0.05 per tool call — suitable for teams with variable verification volumes or AI agent workflows where cost scales with actual usage. It does not include credit scores, adverse media, or complex UBO mapping that enterprise KYB platforms provide.
Can this MCP server run on a schedule for continuous monitoring?
Yes. The actor runs on the Apify platform, which supports cron-based scheduling. Configure a schedule to re-verify entities periodically and use webhooks to notify your compliance system when new critical findings appear in generate_registry_report.
What happens if one registry source is unavailable during a query?
The runActor function catches errors from individual actor calls and returns an empty array rather than throwing. The query continues with results from the remaining available sources. The response will reflect data from whichever sources completed successfully, which you can infer from missing jurisdiction entries in the output.
Can I use this with an AI framework like LangChain or an AI coding assistant?
Yes. The server implements MCP protocol version 1.0 and works with any MCP-compatible client: Claude Desktop, Cursor, Windsurf, Cline, and frameworks supporting the MCP SDK. The /mcp Streamable HTTP endpoint is the recommended connection method for programmatic clients.
Does coverage include Australian state-level business names? The Australia actor queries the ABN Lookup registry, which covers all Australian Business Numbers issued by the ATO regardless of state. Business names registered at the state level (e.g., NSW Fair Trading) are not included — ABN Lookup covers the federal ABN registry only.
How do I get an Apify token to use this server? Create a free account at apify.com. Your API token is in Settings > Integrations. The free plan includes $5/month in credits — enough for 100 tool calls.
Help us improve
If you encounter issues, help us debug faster by enabling run sharing:
- Go to Account Settings > Privacy
- Enable Share runs with public Actor creators
This lets us see your run details when something goes wrong. Your data is only visible to the actor developer, not publicly.
Support
Found a bug or need a feature? Open an issue in the Issues tab on this actor's page. For enterprise integrations or custom KYB workflows, reach out through the Apify platform.
How it works
Configure
Set your parameters in the Apify Console or pass them via API.
Run
Click Start, trigger via API, webhook, or set up a schedule.
Get results
Download as JSON, CSV, or Excel. Integrate with 1,000+ apps.
Use cases
Sales Teams
Build targeted lead lists with verified contact data.
Marketing
Research competitors and identify outreach opportunities.
Data Teams
Automate data collection pipelines with scheduled runs.
Developers
Integrate via REST API or use as an MCP tool in AI workflows.
Related actors
Bulk Email Verifier
Verify email deliverability at scale. MX record validation, SMTP mailbox checks, disposable and role-based detection, catch-all flagging, and confidence scoring. No external API costs.
GitHub Repository Search
Search GitHub repositories by keyword, language, topic, stars, forks. Sort by stars, forks, or recently updated. Returns metadata, topics, license, owner info, URLs. Free API, optional token for higher limits.
Website Content to Markdown
Convert any website to clean Markdown for RAG pipelines, LLM training, and AI apps. Crawls pages, strips boilerplate, preserves headings, tables, and code blocks. GFM support.
Website Tech Stack Detector
Detect 100+ web technologies on any website. Identifies CMS, frameworks, analytics, marketing tools, chat widgets, CDNs, payment systems, hosting, and more. Batch-analyze multiple sites with version detection and confidence scoring.
Ready to try Commonwealth Corporate Registry MCP?
Start for free on Apify. No credit card required.
Open on Apify Store