惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Jina AI
Jina AI
Apple Machine Learning Research
Apple Machine Learning Research
宝玉的分享
宝玉的分享
M
MIT News - Artificial intelligence
S
SegmentFault 最新的问题
博客园 - 叶小钗
量子位
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - Franky
博客园 - 司徒正美
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
人人都是产品经理
人人都是产品经理
Hugging Face - Blog
Hugging Face - Blog
V
Visual Studio Blog
阮一峰的网络日志
阮一峰的网络日志
博客园 - 【当耐特】
Google DeepMind News
Google DeepMind News
L
LangChain Blog
Stack Overflow Blog
Stack Overflow Blog
博客园_首页
U
Unit 42
月光博客
月光博客
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
Live UK director-change detection on Companies House: 4 r...
OpenRegistry · 2026-05-11 · via DEV Community

Most KYB pipelines I've seen treat the UK registry like a monthly snapshot. Aggregators such as OpenCorporates ingest the Companies House bulk feed once a day (or weekly, for some non-UK jurisdictions), build their own index, and resell. That's fine for company name search and stable fields. It breaks when a director leaves or a corporate restructuring triggers a PSC change, because the buyer of that snapshot is looking at last week's truth.

Here are four director changes that happened on Companies House over the past 30 days, with the actual filing-to-detection lag, queried live through an MCP server I run at openregistry.sophymarine.com/mcp.

Case 1: BP plc, director resignation, 5 days ago

On 6 May 2026, Thierry Dominique Gerard Garnier stepped down from the board of BP plc (Companies House number 00445790). The TM01 termination form was filed the next day, 7 May. Querying list_filings against the MCP server today (11 May) shows it as the most recent entry:

{
  "filing_date": "2026-05-07",
  "category": "officers",
  "description": "termination-director",
  "officer_name": "Thierry Dominique Gerard Garnier",
  "termination_date": "2026-05-06"
}

Enter fullscreen mode Exit fullscreen mode

File-to-detect lag: zero. The data is the registry's response, returned in 80 ms. No nightly ingest. No snapshot cache.

Case 2: Unilever plc, three directors out on the same day

On 23 April 2026, three directors left the board of Unilever plc (00102498) on the same day: Karen Ann Richardson, Simon Peter Henry, and Melody Boone Meyer. Three separate TM01s were filed on 27 April, 4 days after the actual termination. Companies House had them by 27 April. Anyone querying live had access to all three within minutes of CH receiving the forms.

If you were holding a 30-day OpenCorporates snapshot from say 20 April, you would have shown those three as active directors of a FTSE 100 company for ~14 days after they had left. For a KYC desk approving counterparty risk on Unilever, that's a window where every report cites stale governance.

Case 3: Wise plc, capital change + new director appointment

Wise plc (13211214) had two events in March 2026:

  • 2 March: Mr Scott Anthony Hill appointed director (AP01)
  • 25 March: capital alteration / share redemption (SH02)

Filings dates were 12 March and 7 May respectively, so the appointment was visible within 10 days, and the capital change within 6 weeks. The gap between action date and filing date is the legal filing window, not the registry's delay. CH publishes within hours of receiving the form.

Case 4: Stripe Payments UK Ltd, corporate director change

Stripe Payments UK Ltd (08480771) had a corporate director change involving Stripe, Inc. on 3 January 2026, filed on 14 January. A natural-person appointment followed on 10 February (Ms Helen Claire McGrath), filed on 17 February. Both events were visible through live registry queries within a week, while many ingestion-based services were still serving December data.

How to run this yourself

The MCP server gives you 27 jurisdictions. For UK Companies House specifically, the relevant tool is list_filings with jurisdiction: "GB" and a company_id. The response carries everything Companies House returns: the TM01, AP01, SH01, SH02, CS01 form types, the officer or PSC names, the action date versus the filing date, and a document_id you can pass to fetch_document to retrieve the actual PDF.

Here's the discovery flow for Claude Desktop:

{
  "mcpServers": {
    "openregistry": {
      "url": "https://openregistry.sophymarine.com/mcp"
    }
  }
}

Enter fullscreen mode Exit fullscreen mode

Paste that into Claude Desktop's developer config, restart, and prompt: "What's the most recent director change at Unilever plc?" The agent calls search_companies, then list_filings, then summarizes. Free anonymous tier; no API key.

For non-Claude clients (Cursor, Cline, Goose, Zed, Gemini CLI), point them at the same URL. The transport is MCP Streamable HTTP with OAuth 2.1 discovery at the standard /.well-known/oauth-authorization-server.

Where this sits in the KYB stack

If you currently run a Companies House data pipeline through a static-snapshot vendor, here are the trade-offs of swapping in a live-query model:

  • Freshness: every query goes to CH directly. Files appear when CH publishes, not on the vendor's ingest schedule.
  • Cost: the free tier is 30 requests per minute. Pro is $9/month at 180 rpm; Max is $29/month at 900 rpm. Enterprise is custom.
  • Coverage: 27 jurisdictions today including UK, Germany, France, Italy, Spain, Poland, Cyprus, Liechtenstein, Cayman, Korea OpenDART, plus 17 others. The UK jurisdiction reference and the docs index describe what each registry exposes.
  • Document access: fetch_document returns the upstream PDF or iXBRL bytes. The statutory record is the answer, not a parsed approximation.

A more detailed look at the UK API specifically, including post-ECCTA changes and what the API now returns versus what it withdrew, is in this earlier post on Companies House post-ECCTA reality.

For teams evaluating an OpenCorporates alternative that runs live against the source registries, the side-by-side comparison is at openregistry.sophymarine.com/vs/opencorporates. Same data sources, different freshness model.

What this doesn't replace

Live registry queries cover the registry. They don't cover sanctions lists, court records, beneficial-owner registries that require AML-gated access (the EU CJEU rulings on these are real), adverse-media screening, or proprietary subscription feeds. If your stack needs all of that bundled with one contract, you're still looking at Sayari, Kharon, or Castellum.AI.

For teams just looking for an OpenCorporates alternative that returns the registry's own response on every call, with the underlying document bytes available, the live MCP path covers it, and you can run it free.

If you've used live registry queries on other jurisdictions and seen edge cases where the public API doesn't cover something a commercial product does, I'd be interested. Comments below.