UK director search
Companies House publishes a separate index of officers in addition to
its index of companies. Searching a person by name returns every UK
registration the officer is or has been attached to: directorships,
secretaries, current and resigned. Most KYB tools do not surface this
cleanly. OpenRegistry's search_officers and
get_officer_appointments tools expose it directly, on the
same free tier as the rest of the UK surface.
The two questions, two tools
"Who runs this company?" is a different question to "what other companies does this person run?" Companies House answers both, but through different endpoints and different identifiers.
| Question | Tool | Returns |
|---|---|---|
| Who runs this company? | get_officers(GB, <company_id>) |
Every officer of one company. Active and resigned. Each carries an officer_id you can feed into the next call. |
| What other companies does this person run? | get_officer_appointments(GB, <officer_id>) |
Every UK appointment that officer has ever held: company id, role, start, end, status. Includes resigned and dissolved companies. |
| Who is this person, by name? | search_officers(GB, <name>) |
Officers matching a name string. Returns officer_ids you can feed into the appointments call. |
Why officer-id resolution matters
Two different "John Smith"s on Companies House are two different officer ids. So are the same person's old and new entries if they ever had a title or address change indexed differently. The officer id is the only stable handle.
Searching "Tom Blomfield" on the CH officer search returns three separate officer ids: founder of Monzo, an unrelated company secretary in Birmingham, and a third who shares the name. Picking the right id before pulling appointments is the part most aggregators get wrong.
Worked example
// 1. Find the officer ids by name search_officers({ jurisdiction: "GB", query: "Anne Boden" }) // → multiple officer_ids; pick the one whose company history matches Starling // 2. Pull the full appointment history get_officer_appointments({ jurisdiction: "GB", officer_id: "<Anne Boden's officer id>" }) // → list of every UK appointment: company, role, appointed_on, resigned_on, is_active
The agent now has every company on which the named director has ever sat. From there it can run any of the other UK tools (profile, PSC, filings, charges) on each of the related companies in turn.
Where this is useful
- KYB cross-checks. Onboarding a counterparty whose director also sits on a struck-off shell two boroughs over is a signal. The cross-company sweep is one tool call.
- AML investigations. Repeat directors across a cluster of dissolved companies is a classic pattern; the appointments tool surfaces it.
- Journalism and OSINT. Tracking the corporate footprint of a public figure: every UK directorship, including resigned ones.
- Adverse-event response. A director arrested or sanctioned this morning. Pull the full appointments list, then run the rest of the dossier on each company.
list_jurisdictions tells you which surface each
registry currently supports.
What CH does not publish
Director residential addresses are suppressed from the public register under the Companies (Disclosure of Address) Regulations 2009. CH returns a service address, not a home address. We forward the same.
Directors of overseas (FC-prefix) registered branches generally do not file local appointment data, since branch reporting falls under the home jurisdiction. Querying their UK CH record returns the branch registration only.
Try it
Connect Claude Desktop to https://openregistry.sophymarine.com/mcp and ask: "List
every UK company that Tom Blomfield has ever been a director of." The
agent runs the three calls above and returns the answer.