I was doing compliance work for a client — verifying that a list of Spanish suppliers were actually active companies with no recent insolvencies. The standard approach is to go to BORME (Spain's official business registry), search each company manually, and copy the relevant fields into a spreadsheet. For 40 companies that's an afternoon.
It occurred to me that Claude could do most of this if it had access to the actual registry data. So I built an MCP server for it.
The BORME API returns real-time data — company status, directors, capital, corporate acts history. Once it's connected via MCP, you can just ask: "Check these 40 company names against the Spanish registry and flag any that are dissolved or in insolvency proceedings." Claude handles the lookup and summarization.
I ended up building 7 servers total:
- Spain BORME (2.8M companies, updated daily from the official BOE feed)
- France SIRENE (25M companies via api.gouv.fr)
- UK Companies House (official CH API)
- Spain BDNS (500K+ government grants and subsidies)
- Spain AEMPS (pharmaceutical registry — useful for verifying authorized medicines)
- LATAM (Brazil CNPJ lookups, tax ID validation for MX/AR/PE)
- SEC EDGAR (US public company filings)
All of them use the official government APIs directly, so the data is as fresh as the source. No intermediary databases that might be weeks behind.
They're live on Smithery under the fzth-ia-it namespace if you want to try them. Free tier covers most use cases — higher volume plans available if you're running it in production.
A few things I learned building these:
Government APIs are surprisingly inconsistent. The French SIRENE API is excellent — well-documented, reliable, good rate limits. BORME required more work to parse because the official format is designed for lawyers, not developers. Companies House is solid but goes down for maintenance on Tuesday mornings UK time.
The MCP transport layer (Streamable HTTP) was simpler to implement than I expected. The main complexity was handling pagination and rate limits gracefully so Claude doesn't get stuck waiting on slow responses.
Happy to answer questions about any of the specific data sources or the MCP implementation.
Top comments (0)