george-kozlitin/borme-mcp
π βοΈ - Spain's official company registry (BORME) for agents: 9.5M typed company events since 2009 β incorporations, director changes, insolvencies, capital moves across 52 event kinds. Free hosted endpoint: https://mcp.bormeapi.com/mcp.
Quick Install
{
"mcpServers": {
"george-kozlitin-borme-mcp": {
"command": "npx",
"args": [
"-y",
"george-kozlitin-borme-mcp"
]
}
}
}Using an AI coding agent (Claude Code, Cursor, etc.)? Copy a ready-made prompt that tells it to fetch the setup instructions and install this server for you.
Documentation Overview
BORME MCP Server
MCP server for Spain's official company registry (BORME β BoletΓn Oficial del Registro Mercantil): 9.5M+ typed company events since 2009, updated every business day. Incorporations, director appointments, insolvencies, capital changes β 52 event kinds as English enums.
Hosted endpoint (no setup)
{
"mcpServers": {
"borme": {
"url": "https://mcp.bormeapi.com/mcp"
}
}
}
Free, read-only, capped at 50 rows per query. Backed by the full 17-year corpus.
Tools
| Tool | What it does |
|---|---|
search_events | Filter events by date range, province, act type, company name |
company_history | Full timeline of one company (fuzzy name match) |
daily_digest | One day's registry activity, aggregated |
registry_stats | Corpus coverage and volume stats |
list_act_types | The 52-enum vocabulary with Spanish originals |
company_by_nif | Resolve a NIF/CIF tax ID to a company (cross-referenced from GLEIF/BDNS/AEAT open sources, ~232k companies) |
recent_signals | Sample of derived risk signals: insolvencies, phoenix companies, mass officer exits, AEAT debtors (last 7 days) |
Example prompts
- "Which companies declared insolvency in Valencia last week?"
- "Show the corporate history of TelefΓ³nica Audiovisual Digital"
- "How many new companies were incorporated in Madrid in June?"
Self-hosting
server.py is the complete server (FastMCP + psycopg). It expects a Postgres
with the BORME schema and a read-only role:
BORME_DSN=postgresql://user:pass@host/borme \
BORME_MCP_TRANSPORT=streamable-http \
python server.py
Building the dataset yourself: see our engineering notes β You don't need to scrape BORME.
Related
- REST API with webhooks & watchlists: bormeapi.com
- Apify actor (pay-per-event feed): Spain Company Registry β BORME Events
License
MIT (server code). The underlying data originates from boe.es open data (public sector information, Ley 37/2007).