mcp-legal-entity-resolver
Resolves a company domain to the registered legal entity behind it through a single Apify-backed MCP tool.
Provide a domain plus your SEC requester name/email to retrieve legal name, company number, jurisdiction, status, entity type, LEI, and VAT number.
Search UK Companies House, GLEIF, SEC EDGAR, French Sirene, and Norwegian Brreg, optionally narrowed with
jurisdiction_hint.Use exact matching by default for trustworthy results, or fuzzy matching as a research mode with confidence warnings and rejected candidates.
Skip domain lookup with
legal_name_hint, cross-check VAT via EU VIES, use caching or force fresh runs, and cap spending withmax_charge_usd.Requires
APIFY_TOKEN, consumes Apify credits, returns explicit tool errors, and does not score or rate companies.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-legal-entity-resolver What's the legal entity behind monzo.com?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Legal Entity Resolver MCP Server
MCP server for the Mamba Labs Legal Entity Resolver actor on Apify.
Give it a company domain and it returns the registered legal entity behind it: legal name, company number, jurisdiction, status, LEI and VAT number. One flat row per domain, 24 fields, ready for Clay or a CRM.
Install
npx -y @mambalabsdev/mcp-legal-entity-resolverClaude Desktop
{
"mcpServers": {
"mamba-legal-entity-resolver": {
"command": "npx",
"args": ["-y", "@mambalabsdev/mcp-legal-entity-resolver"],
"env": { "APIFY_TOKEN": "your-apify-token" }
}
}
}Get an Apify token at console.apify.com/account/integrations.
Related MCP server: Workplace Program Detector MCP Server
Tool
resolve_legal_entity
Company domain in, the registered legal entity behind it out.
Input | Type | Required | Notes |
| string | yes | Your own name or your company's name, sent to the SEC. |
| string | yes | Your own working email, sent to the SEC with your name. |
| string | yes | A single company domain, for example monzo.com. Protocol and path are stripped. |
| string | no | Skips the domain lookup and goes straight to the registers with this name. Use it when you already have the legal name and just want the register record. |
| string | no | ISO-2 country code. |
| enum | no |
|
| boolean | no | Runs any VAT number found on the company's own pages through the EU VIES service and returns the name VIES holds for it, as a cross-check against the register name. Default |
| enum | no |
|
| number | no | Optional spending cap for this call, in USD. The actor stops before any charge that would take the run past this amount and keeps every row already charged. |
A null is the product, not a gap
Register search endpoints are fuzzy and they always return something. Taking the top search result gives you a confidently wrong company number more often than not. This actor accepts a match only when the legal names are identical after normalization, which is why roughly 6 domains in 10 resolve instead of 10 in 10, and why the 6 are worth acting on.
Read match_method, match_confidence and rejected_candidates before acting on a match. fuzzy strictness is a research mode: it will hand you a confidently wrong company on most domains.
Three registers are queried: UK Companies House, GLEIF and SEC EDGAR.
Why the SEC fields are required. The SEC requires every automated request to EDGAR to identify the requester by name and email, as a User-Agent of the form Name email@domain.tld (SEC: Accessing EDGAR data). The actor sends your sec_requester_name and sec_requester_email and never a default or shared identity. A call without both fails before any request, naming the two fields.
Billing
You are charged per domain resolved, plus the platform's actor start event. Prices from the live pricing record, read 2026-10-05:
Event | Price per event (USD) | Fires when |
| $0.007 on the Free plan, down to $0.00595 on higher Apify plans | One domain looked up: the company's own pages fetched and read for a legal name, then up to three company registers queried for an exact match. Charged whether or not a register matches, because the work is the same either way and charging only for matches would push this Actor toward guessing. Not charged when the domain cannot be reached at all. |
| $0.00005 | Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). |
Cached results are 90 days for a resolved company and 7 days for a null. The actor's Apify page carries the current prices. Running this server consumes Apify credits.
What this server does and does not do
It is a thin client for the Apify actor. It passes your input through and returns the actor's output unchanged. Every behavior described above lives in the actor, not here.
This is not a company database and not a credit or risk product. It does not score companies, rate them, or tell you whether to trade with them. It answers one question: which registered legal entity sits behind this domain.
Errors are surfaced, never swallowed. An invalid input, an invalid token, an exhausted balance, a timeout, or a run that returns anything other than a dataset all come back as an explicit tool error rather than as an empty result.
How each call runs
Each call starts the actor run, polls it until it finishes, then reads the dataset. The run is allowed 1,800 seconds. If the run is still going when this call stops waiting, the call returns the run id and a console link instead of a timeout, so the result is never lost.
Source
The actor is on the Apify Store. This wrapper is MIT licensed.
Built by Mamba Labs
Available Tools
1 toolresolve_legal_entityResolve Legal EntityAIdempotent
Give it a company domain and it returns the registered legal entity behind it: legal name, company number, jurisdiction, status, entity type, LEI and VAT number, as one flat row with a full audit trail of what was rejected and why. Three registers are queried: UK Companies House, GLEIF and SEC EDGAR. Register search endpoints are fuzzy and always return something, so by default a record is accepted only when the normalized legal names are identical. That is why roughly 6 domains in 10 resolve rather than 10 in 10, and why a null here is a trustworthy answer rather than a gap. Read match_method, match_confidence and rejected_candidates before acting on a match. Setting match_strictness to fuzzy will hand you a confidently wrong company on most domains and should be treated as a research mode, not a default. This is not a company database and not a credit or risk product. Requires an APIFY_TOKEN and consumes Apify credits. Read only.
Inputs: domain (required), sec_requester_name (required), sec_requester_email (required), skipCache, +5 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 1 tool
There is only one tool, so there is nothing to confuse it with. Its purpose (domain → registered legal entity) is stated unambiguously, including what it does not do (not a company database, not a risk product).
A single tool named resolve_legal_entity follows a clear verb_noun snake_case pattern. There is no competing convention to clash with it.
The server is deliberately scoped to one operation, and that operation is substantive (multi-register lookup with audit trail). Still, a single tool is thin for a server surface and forces any multi-domain or reverse-lookup workflow to be handled outside it.
The core read path is well covered: resolution, confidence/method metadata, rejected candidates, and multiple registers. Gaps are minor — no batch resolution of many domains and no reverse lookup (name/company number → domain), which an agent would have to loop around.
Maintenance
Related MCP Connectors
CompanyLens is a remote MCP server giving AI agents instant access to official company registry data across 19 jurisdictions in Europe, the Americas, and Asia-Pacific. Eighteen read-only tools let you search companies and people, look up officers and beneficial owners, map corporate networks through shared directors, screen names against the UK disqualified directors register, find every company at a registered address, and pull filing history — all from a single connector. Visit our website: https://companylens.io
Remote MCP server to enrich company profiles with structured B2B data and confidence scores.
Apify MCP — run web-scraping Actors and fetch their dataset results.
Identity resolution MCP server for phone/email lookups across 31+ services. Global + India coverage.
Related MCP Servers
- AlicenseAqualityBmaintenanceMCP server for the Mamba Labs People Finder & Email Verifier actor on Apify. Give it a company domain, name or LinkedIn URL and it returns the people at that company who match your role, seniority and department filters, each as a structured contact record with an optional verified business email.1301 npmMIT
- AlicenseAqualityBmaintenanceMCP server that wraps the Apify Workplace Program Detector actor, taking a company domain and returning the employee programs it publishes, such as ERGs, DEI, wellbeing, parental leave, and volunteering.1338 npmMIT
- AlicenseAqualityBmaintenanceMCP server for the Mamba Labs Bluesky Brand Presence Mapper actor on Apify. Resolve a company domain to its Bluesky account with exact follower, following and post counts.1263 npmMIT
- AlicenseAqualityBmaintenanceMCP server for the Mamba Labs GitHub Organization Signal Scanner actor on Apify. Resolve a company domain to its GitHub organization with repo, language and activity signals.1285 npmMIT