Skip to main content
Glama
DigiBugCat

FMP MCP Server

by DigiBugCat

cassandra-market-research

Servidor MCP de datos del mercado financiero. Unifica FMP, ThetaData (opciones), Polygon.io (Fed + volumen en corto), FRED y Treasury Fiscal Data bajo una única interfaz FastMCP.

Cubre acciones, presentaciones ante la SEC, series macroeconómicas, cadenas de opciones, ganancias y datos fiscales.

Arquitectura

MCP client → market-research.cassandrasedge.com (CF Tunnel)
  → FastMCP backend (port 3003)
    ├─ McpKeyAuthProvider → /keys/validate (auth service)
    ├─ FMP client           → api.financialmodelingprep.com
    ├─ Polygon client       → api.polygon.io
    ├─ FRED/Treasury client → Treasury Fiscal Data + FRED
    └─ ThetaData client     → theta-terminal sidecar
                                ↓
                          ThetaTerminal.jar (Java)
                                ↓
                          ThetaData REST API

El sidecar ThetaTerminal se ejecuta como un despliegue de k8s independiente porque es un proceso Java con estado que inicia sesión en ThetaData y actúa como proxy para las llamadas REST; las credenciales residen en el Secret de k8s theta-terminal.

Estructura del repositorio

cassandra-market-research/
├── backend/
│   ├── src/cassandra_fmp/
│   │   ├── main.py
│   │   ├── mcp_server.py
│   │   ├── config.py
│   │   ├── clients/
│   │   │   ├── polygon.py
│   │   │   ├── thetadata.py
│   │   │   └── treasury.py
│   │   └── tools/                  # Tool modules (register pattern)
│   ├── tests/
│   └── Dockerfile
├── theta-terminal/                 # ThetaTerminal sidecar image
│   ├── Dockerfile                  # Downloads ThetaTerminal.jar at build time
│   └── entrypoint.sh
├── .woodpecker.yaml
└── CLAUDE.md

Autenticación

Utiliza el patrón de sidecar FastMCP compartido:

  • McpKeyAuthProvider valida los tokens Bearer mcp_... a través del servicio de autenticación /keys/validate

  • Las claves de API ascendentes (FMP, Polygon, FRED) son variables de entorno a nivel de despliegue, no credenciales por usuario

  • Las credenciales de ThetaData residen en el Secret de k8s theta-terminal, consumidas por ThetaTerminal.jar, nunca por este backend

  • Política ACL integrada en la imagen de Docker a través del argumento de compilación AUTH_YAML_CONTENT

Variables de entorno

Variable

Requerido

Descripción

FMP_API_KEY

Clave de API de Financial Modeling Prep

POLYGON_API_KEY

No

Clave de API de Polygon.io (datos de la Fed + volumen en corto)

FRED_API_KEY

No

Clave de API de FRED para series macroeconómicas

THETA_TERMINAL_URL

Sí (para opciones)

Endpoint REST de ThetaTerminal (ej. http://theta-terminal.production.svc.cluster.local:25510)

AUTH_URL / AUTH_SECRET

Configuración del servicio de autenticación

Desarrollo

cd backend
uv sync
FMP_API_KEY=<key> THETA_TERMINAL_URL=http://127.0.0.1:25510 uv run cassandra-fmp

Despliegue

Se despliega automáticamente al hacer push a main mediante Woodpecker CI. BuildKit construye dos imágenes y las envía al registro local:

  • market-research:latest desde backend/

  • theta-terminal:latest desde theta-terminal/

ArgoCD luego sincroniza cassandra-k8s/apps/market-research/ y cassandra-k8s/apps/theta-terminal/.

Parte de la pila Cassandra.

Install Server
A
security – no known vulnerabilities
F
license - not found
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DigiBugCat/fmp-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server