Skip to main content
Glama

EDGAR MCP — SEC companyfacts, frames, Form 4, 13F

Servidor MCP que se conecta a SEC EDGAR con User-Agent. Sin clave de API. Los datos financieros no son de FMP: se leen a través de companyfacts / frames; el mapeo de etiquetas XBRL está en xbrl_map.py.

Tool

Tool

Para qué sirve

search_company

Ticker / CIK / nombre

get_company

SIC, bolsa, fin del año fiscal

get_financials

Ingresos, balance y flujo de caja mapeados

get_concept

Serie bruta de una sola etiqueta us-gaap/ifrs/dei

get_frame

Mismo concepto + periodo, todos los filers (sección)

list_filings

10-K, 10-Q, 8-K, 4, 13F-HR...

get_form4

Operaciones de insider (ticker del emisor o CIK de la persona)

get_13f

Cartera 13F-HR de la institución (no el ticker de la acción)

search_filings

Texto completo (efts.sec.gov)

Related MCP server: edgarmcp

Instalación

cd edgar-mcp
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
copy .env.example .env

En .env, EDGAR_USER_AGENT debe ser un nombre real + correo electrónico. SEC bloquea con 403 los agentes genéricos de python-requests.

EDGAR_USER_AGENT=Your Name your.email@example.com
MCP_TRANSPORT=stdio

Cursor (stdio)

%USERPROFILE%\.cursor\mcp.json:

{
  "mcpServers": {
    "edgar": {
      "command": "python",
      "args": ["server.py"],
      "cwd": "C:\\Users\\yunus\\Documents\\dev\\edgar-mcp",
      "env": {
        "MCP_TRANSPORT": "stdio",
        "EDGAR_USER_AGENT": "Your Name your.email@example.com"
      }
    }
  }
}

Railway → Claude (Streamable HTTP)

Si PORT está definido, el transporte por defecto es http y el endpoint es https://<railway-host>/mcp. No pongas MCP_TRANSPORT=stdio — el proceso no escucha, Railway aparece como "online" pero Claude no puede conectarse.

Variables

Clave

Valor

EDGAR_USER_AGENT

Nombre Apellido you@email.com (real, para que SEC no dé 403)

MCP_TRANSPORT

http (o no lo añadas)

MCP_AUTH_TOKEN

No lo pongas para Claude.ai. El formulario del conector no envía cabeceras; el token produce 401 + "Authentication failed".

Comprobación: https://<host>/health → {"ok": true, ...}

Claude (claude.ai / Desktop Connectors)

  1. Personalizar → Conectores → Añadir conector personalizado

  2. URL: https://<host>/mcp (no /sse al final)

  3. Deja los campos OAuth vacíos y apaga Individual sign-in

  4. Añade, y ábrelo en el chat con + → Connectors

Si Claude Code puede enviar cabeceras, usa MCP_AUTH_REQUIRED=true y Authorization: Bearer <token>.

Para el antiguo /sse, MCP_TRANSPORT=sse (no lo prefieras para el conector de Claude).

Pruebas

python -m unittest tests.test_xbrl_map tests.test_form_parsers tests.test_http_auth tests.test_client_utils

Recursos

Los valores del 13F se expresan en miles de USD según la convención de SEC. El 13F lo presentan la institución, no la acción.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Hosted MCP server that gives AI agents real-time access to SEC EDGAR filings search, 10-K/8-K reading, XBRL financial facts, and insider-trade (Form 4) alerts.
    13 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for SEC EDGAR that provides real-time access to filings, financial statements, and full-text search across all EDGAR documents.
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    A free, key-less MCP server for SEC EDGAR that provides company filings, XBRL financial facts, and full-text search directly from the SEC.
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    An MCP server that wraps SEC EDGAR APIs to provide company financial data, screening metrics, and disclosure signals for investment diligence, with every figure traced to its source filing.
    8
    MIT