protogrid

Search / es.mapasocietario/borme

Mapa Societario — Spanish Company Registry (BORME)

R2· OAuth, once

Spanish company registry (BORME): companies, directors, how they connect. Needs a free work account.

v1.2.0 · active · repository · website · descriptor JSON · versions

An agent can connect after a one-time OAuth consent by a human.Remote endpoint behind OAuth 2. Tokens stay with the agent; the registry only exposes the authorization metadata.
Quality76good
Trust95of 100
Uptime, 30 days96%
Latency p50240 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "borme": {
      "type": "http",
      "url": "https://mcp.mapasocietario.es/mcp"
    }
  }
}
claude mcp add --transport http borme https://mcp.mapasocietario.es/mcp
[mcp_servers.borme]
url = "https://mcp.mapasocietario.es/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "borme": {
      "type": "remote",
      "url": "https://mcp.mapasocietario.es/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "borme": {
      "type": "http",
      "url": "https://mcp.mapasocietario.es/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=borme&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbWNwLm1hcGFzb2NpZXRhcmlvLmVzL21jcCJ9"
}
{
  "servers": {
    "borme": {
      "type": "http",
      "url": "https://mcp.mapasocietario.es/mcp"
    }
  }
}
{
  "mcpServers": {
    "borme": {
      "httpUrl": "https://mcp.mapasocietario.es/mcp"
    }
  }
}
extensions:
  "borme":
    enabled: true
    name: "borme"
    type: streamable_http
    uri: "https://mcp.mapasocietario.es/mcp"
    timeout: 300

Quality 76 / 100good

protocoln/a · weight 25
  • n/a
    protocol.modern, protocol.stateless, protocol.transport, protocol.list_ttlno remote answered a protocol handshake (not probed yet, unreachable, or local-only)
authorization100 · weight 15
  • pass
    auth.prmProtected Resource Metadata (RFC 9728) published
  • pass
    auth.as_metadataauthorization server metadata reachable
  • pass
    auth.cimdClient ID Metadata Documents supported
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene64 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • warn
    tools.description_length3 tools have descriptions over 1,024 characters, which crowds the context
  • pass
    tools.schemasevery tool has an object input schema
  • fail
    tools.annotationsno tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: search_companies (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); get_company (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); search_officers (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
  • pass
    tools.token_costabout 1,307 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stabilityn/a · weight 15
  • n/a
    stability.changes, stability.rug_pulltool history not recorded yet
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

4 tools, about 1,307 tokens to load them all · checked 2026-10-20 13:49 UTC

Tool changes

No tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 95 / 100

provenance85
liveness99
freshness100
hygiene100

+repository +dns-namespace +website +reachable +uptime-96% +updated-13d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://mcp.mapasocietario.es/mcp streamable-httpoauth2 AS: https://clerk.mapasocietario.esyes96%240 ms–2026-10-20

Tools (4)

get_companyGet the BORME registry profile of one Spanish company: status, incorporation, current and former officers, sole shareholder (BORME records only sole-shareholder ownership), and — where available — NIF, share capital and registered address. NIF is never in BORME, and capital/address are missing for entities last amended before 2009; such values may be filled by web search and are flagged `*_external: true` (verify before relying on them). Officers are capped at the 25 most relevant (board/management before apoderados) with `*_officers_total` counts and an `officers_truncated` flag — large companies register hundreds of apoderados. Includes a mapasocietario.es link to cite. Resolves to exactly one entity by its current OR former name (company renames are handled) and returns not-found rather than a near-miss — if unsure of the exact name, call search_companies first. `name` is always the company's CURRENT name; if you queried an old name (or the result's name looks unrelated to your query), check `former_names` — it lists every prior registered name (registry-recorded 'Cambio de denominación social') before assuming this is the wrong company.
get_company_networkShow companies directly connected to one Spanish company: via a shared board/management officer (shared_officer — apoderados and representatives are excluded as low-signal), via being owned by it (owns), or via owning it (owned_by). Answers 'is there a relationship between company X and company Y?'. shared_officer edges carry `status`: 'active' means the shared officer still holds the seat at the connected company, 'ceased' means the registry has inscribed their cessation there, and 'superseded' means no cessation was inscribed but a successor took the post. A 'ceased' or 'superseded' edge is a HISTORICAL link, do not report it as a current one. A top-level `dissolved: true` means the SUBJECT company is dissolved, so under the registry-faithful rule it has no officer currently in office and every shared_officer link is historical from its side, whatever each edge's own status says about the connected company. Active edges are listed first, so a truncated list keeps the live relationships. Resolves to one entity by current or former name (renames handled). Each connection links to mapasocietario.es.
search_companiesSearch Spanish companies by name in the BORME registry. Returns ranked matches (fuzzy — tolerant of typos) with status and a mapasocietario.es/empresa link to cite. A hit's `name` is always its CURRENT registered name; when the entity has been renamed, `former_names` lists its prior name(s) — a hit whose `name` differs from your query is not necessarily a wrong match, check `former_names` first. Use this first to resolve a company before get_company.
search_officersFind a person (administrator/director/apoderado) in the BORME registry and list the companies they are linked to. Answers 'is officer Z present in other companies?'. Returns ONE row per company, with `roles` listing every post held there. `status` (per row and per role) is 'active' when the appointment is still in force, 'ceased' once the registry has inscribed the cessation, and 'superseded' when the registry inscribed NO cessation but a successor was appointed to the post — common for auditors. 'ceased' and 'superseded' are BOTH closed seats: never describe either as a current directorship. 'unknown' means the registry gave no usable status, so do not assert the seat is either held or closed. Each role also carries `date` where the registry recorded one: the APPOINTMENT date for an active role, the CESSATION date for a ceased one, and for a 'superseded' role the successor's appointment date (NOT this person's exit — the registry inscribed none) — read it against that role’s status, never as a single “since”. When the officer held the seat before that (a revoke-and-reappoint, common in Spanish registries), the role also carries `first_appointed` — cite THAT for “since when”, not `date` — and `history`, every published act newest-first. Companies where the person is still in office come first, so a truncated list keeps the live ones. `companies_total`/`companies_active` count COMPANIES and `seats_total` counts appointment rows — cite the company figures when asked how many companies someone sits on. `counts_are_lower_bound: true` means more companies exist than could be read. Each row links to mapasocietario.es/empresa.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "es.mapasocietario/borme",
  "icons": [
    {
      "src": "https://mapasocietario.es/favicon.svg",
      "sizes": [
        "any"
      ],
      "mimeType": "image/svg+xml"
    }
  ],
  "title": "Mapa Societario — Spanish Company Registry (BORME)",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://mcp.mapasocietario.es/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "1.2.0",
  "repository": {
    "id": "1284233934",
    "url": "https://github.com/anbrme/borme-mcp",
    "source": "github"
  },
  "websiteUrl": "https://mapasocietario.es",
  "description": "Spanish company registry (BORME): companies, directors, how they connect. Needs a free work account."
}