fd-open-data-mcp
Officialfd-open-data-mcp
Ein Open-Data-Ontologie-MCP: eine semantische Konzeptschicht über Finanz-/Wirtschaftsdaten aus mehreren Datenquellen. Sie fragen Daten in Konzepten + Entitäten ab (z. B. „price.close für Moutai", „GDP für China"); das System löst das Konzept in physische Spalten über Datenquellen hinweg auf, stuft Kandidatenquellen nach Qualität + Zugänglichkeit ein, ruft von der besten ab (mit Failover), cacht nach Konzept und aktualisiert mit einer Frequenz pro Konzept.
Es konsumiert die fd-*-Datenquellen-Registries von finddata und fd-entities-indicators schreibgeschützt und fügt die vereinheitlichenden Schichten darüber hinzu: Konzeptbindungen, quellenspezifische Entitätskennungen, Quellen-Rankings, einen Read-through-Wertcache und (obendrein) eine Entitätsgraph- + Vektor-Suchschicht für relationale und semantische Abfragen.
Englisch | 中文
Ein Open-Data-Ontologie-MCP: eine semantische Konzeptschicht über Finanz-/Wirtschaftsdaten aus mehreren Datenquellen. Sie fragen Daten in Konzepten + Entitäten ab (z. B. „price.close für Moutai", „GDP für China"); das System löst das Konzept in physische Spalten über Datenquellen hinweg auf, stuft Kandidatenquellen nach Qualität + Zugänglichkeit ein, ruft von der besten ab (mit Failover), cacht nach Konzept und aktualisiert mit einer Frequenz pro Konzept.
Installation mit einem Klick
Ein einziger in sich geschlossener Block, der den gesamten finddata-Open-Data-Stack bootstrapt (Hub + jedes Datenquellen-Paket + Ontologie-DB). Kann bedenkenlos erneut ausgeführt werden; stoppt beim ersten Fehler.
# 1) Install the full stack from PyPI.
# fd-open-data-protocol is pulled in transitively; fd-polygon and
# fd-cn-report auto-register via entry-points. Drop "[data]" for a lighter
# install (MCP server + CLI only, without the akshare/yfinance/playwright SDKs).
pip install "fd-open-data-mcp[data]" fd-polygon fd-cn-report
# 2) Initialize the ontology DB and wire every layer: catalogs -> concepts ->
# column bindings -> per-source entity ids -> refresh schedules -> manifests.
fd-open-data-mcp migrate \
&& fd-open-data-mcp import-catalog \
&& fd-open-data-mcp consume-concepts \
&& fd-open-data-mcp propose-bindings \
&& fd-open-data-mcp seed-entities \
&& fd-open-data-mcp generate-schedules \
&& fd-open-data-mcp register-discovered
# 3) Start the MCP server (stdio transport, for any MCP client).
fd-open-data-mcp serveLive-Datenabrufe benötigen Quellenschlüssel in der Umgebung (niemals eingecheckt): POLYGON_API_KEY, EDGAR_IDENTITY sowie die LLM_*- / ES_*-Reihe für fd-cn-report. Siehe den Konfigurationsabschnitt jedes Pakets.
Related MCP server: Sugra API MCP
Architektur
CONSUMED (read-only) ADDED by fd-open-data-mcp
fd-akshare / yfinance / edgar / concept_bindings (column -> concept)
wbgapi / cn-report / cn-gov / entity_source_identifiers (per-source id)
datacommons / polygon registries source_rankings (quality × access × freshness)
fd-entities-indicators semantic_observations (read-through cache)
indicator_defs (concepts) fetch_log / schedules / executions / policies
countries/cities/symbols/sw_industries entities / relationships (graph)
│
TRANSFORMERS: import_catalog, consume_concepts, propose_bindings,
seed_entity_identifiers, generate_refresh_schedules, ingest_entities
│
RUNTIME: read() -> cache hit? : dispatch (ranked, failover) -> cache -> log
SEARCH : semantic_search (concepts) + graph_search (entity relationships) + ai_searchAcht Fähigkeitsbereiche (siehe openspec/changes/add-fd-open-data-mcp/specs/): open-data-catalog, semantic-layer, entity-identity, source-ranking, concept-fetch, scheduled-refresh, entity-graph, vector-search.
Installation
cd fd-open-data-mcp
uv sync # base install
# For full data source support (akshare, yfinance, edgar, world bank, etc.)
uv sync --extra dataDer DB-Pfad lautet standardmäßig fd_open_data_mcp/metadata/daas.db; überschreiben Sie ihn mit FD_OPEN_DATA_MCP_DATABASE_URL. FINDDATA_ROOT (Standard: das übergeordnete finddata/-Verzeichnis) lokalisiert die fd-*-Anbieter.
SEC EDGAR erfordert
EDGAR_IDENTITY="your_email@example.com"in der Umgebung vor Verwendung (die SEC schreibt einen User-Agent für den anonymen Zugriff vor).
Schnellstart
# 1. create the ontology tables
fd-open-data-mcp migrate
# 2. import the catalogs (akshare, yfinance, cn-gov, cn-report, edgar, ...)
fd-open-data-mcp import-catalog
# or one provider: fd-open-data-mcp import-catalog akshare
# 3. consume indicator_defs as concepts + propose column->concept bindings
fd-open-data-mcp consume-concepts
fd-open-data-mcp propose-bindings
# 4. seed per-source entity identifiers (akshare/yfinance for stocks, worldbank for countries)
fd-open-data-mcp seed-entities
# 5. generate per-concept refresh schedules from indicator_defs.frequency
fd-open-data-mcp generate-schedules
# 6. read data by concept + entity (read-through cache + ranked dispatch + failover)
fd-open-data-mcp read --concept-id 234 --entity-type stock --entity-id 1 --date 2024-07-26MCP-Server
fd-open-data-mcp serve # FastMCP, stdio transportDie MCP-Tooloberfläche ist in acht Fähigkeitsbereiche gegliedert (die maßgebliche Liste finden Sie in Ihrem MCP-Client):
Bereich | Repräsentative Tools |
Katalog / Import |
|
Entitätsidentität |
|
Semantische Ebene |
|
Entitätsgraph |
|
Vektorsuche |
|
Abruf |
|
Geplante Aktualisierung |
|
Crawl-Richtlinien |
|
cn-report-Regeln |
|
ai_search ist der End-to-End-Einstiegspunkt: semantische Suche → Graph-Traversierung → Wertabfrage, in einem einzigen Aufruf.
Datenquellen
Quellen sind in fd_open_data_mcp/fetch/runner.py::run_upstream() verdrahtet, einer hartcodierten Quelle→Runner-Kette. Die folgende Tabelle spiegelt den tatsächlichen Zustand jedes Adapters wider, keinen Wunschstatus.
Produktion (netzwerkbasiert)
Quelle | Adapter | Abdeckung |
|
| A-Aktien, Fonds, Finanzberichte (eastmoney/tencent/sina-Failover) |
|
| Yahoo Finance globale Aktien |
|
| SEC-EDGAR-Einreichungen (benötigt |
|
| Japanische EDINET-Offenlegungen |
|
| Koreanische DART-Unternehmenseinreichungen |
|
| Weltbank WDI |
|
| Chinesische NBS-BIP-Makroreihen |
|
| Chinesischer Eisen- und Stahlverband |
|
| CKAN-Katalog-Ingest |
|
| Chinesische NBS-Statistiken |
|
| Extraktion chinesischer Finanzberichte (delegiert an |
| external | US-Aktien-OHLCV + Unternehmensreferenz (benötigt |
| external | Google Data Commons (benötigt |
Externe Datenquellen-Pakete (polygon, datacommons) werden beim Abruf lazy-importiert, sodass fd-open-data-mcp nicht von deren SDKs abhängt, sofern nicht tatsächlich ein Abruf erfolgt.
Stub / Platzhalter
Diese Adapter existieren und sind aufrufbar, geben aber Platzhalterdaten zurück — sie sind Gerüste für zukünftige Scraping-Arbeiten, keine nutzbaren Datenquellen:
amac-fund, shfe-metal-futures, agriculture (DCE), cme-agricultural-futures,
chemicals, electronics, nonferrous, flowers-kifc, fin_platforms,
sac-securities.
Hinweis: Die
fd-open-data-mcp list-sources-CLI markiert jeden Adapter mit „✅ Full support". Dieses Label ist keine Integrationsgarantie — es prüft nur, ob eine Adapterdatei existiert. Behandeln Sie die obige Stub-Liste als maßgeblich.
Nur-Lese-Registries
Quelle | Status |
| Nur-Lese-Registry (manifestbasiert; 11 CN-Ministerien) |
| Nur-Lese-Katalog (CKAN + chinesische NBS) |
Crawl-Kontrollzentrum (Panel + Reconciler)
Richtlinien beschreiben, was gecrawlt werden soll: Konzepte × Entitätsumfang × Datumsbereich × Häufigkeit × Modus. Eine CrawlPolicy wird über das Panel erstellt, vom Reconciler in einen CrawlPlan kompiliert und von scraw-fd-open-data-mcp in semantic_observations ausgeführt.
# Serve the control panel (default http://0.0.0.0:8000)
FD_OPEN_DATA_MCP_DATABASE_URL=<db url> fd-open-data-mcp panel
# Run the reconciler once (due policies -> launch; closes stale runs)
python -m fd_open_data_mcp.refresh.reconcilerUmgebungsvariablen:
PANEL_TOKEN— wenn gesetzt, erfordert/panel/*ihn (HeaderX-Panel-Token,?token=oder Cookie).POLICY_MAX_FETCHES(Standard50000) — Schutzschranke für die Plangröße; eine fällige Richtlinie, deren Abrufschätzung diesen Wert überschreitet, wird abgelehnt (als fehlgeschlagener Lauf protokolliert), es sei denn, die Richtlinie hatforcegesetzt.RECONCILER_LAUNCHER—scrapyd(Standard) oderk8s(K8sJobLauncher).SCRAPYD_URL/SCRAW_PLAN_DIR(scrapyd-Launcher),SCRAW_K8S_NAMESPACE/SCRAW_K8S_IMAGE/SCRAW_K8S_DATABASE_URL/SCRAW_K8S_REDIS_URL(k8s-Launcher).FD_PROXY_FORWARDER— für die lokale Entwicklung nicht gesetzt (der Injektions-Shim gibt einen direkten Sentinel zurück → direkter Egress; der eigenständigefd-proxy-service-Forwarder übernimmt die Proxy-Auswahl bei Cluster-Crawls). Die Legacy-VariablenFD_PROXY_POOL/FD_EGRESS_MODEwerden nicht mehr gelesen.
Richtlinienbeispiel (über Panel oder MCP policy_create):
name: fund-nav-daily
entity_type: fund
concepts: nav.unit, nav.accumulated
mode: per_date # or "series" (one bulk fetch per entity)
date_policy: since_last # start = observation watermarks
frequency: daily
source: akshare
cron: 45 6 * * * UTCZwei Hinweise zur Kadenz: Der Modus series füllt die Historie in einem Sammelabruf pro Entität auf (expliziter Bereich), während since_last per_date der inkrementelle Dauerbetrieb ist (nur neue Daten seit dem Watermark jedes Konzepts; Entitäten ohne Watermark werden nicht aufgefüllt — führen Sie zuerst ein Auffüllen mit explizitem Bereich aus). Siehe openspec/changes/add-fund-crawl-control-center/docs/phase7-validation.md für den validierten Piloten (76k NAV-Beobachtungen auf der Live-DB).
CLI
fd-open-data-mcp migrate # create ontology tables
fd-open-data-mcp import-catalog [src] # import fd-* catalogs
fd-open-data-mcp consume-concepts # indicator_defs -> concepts
fd-open-data-mcp propose-bindings # column -> concept bindings
fd-open-data-mcp seed-entities # per-source entity identifiers
fd-open-data-mcp generate-schedules # per-concept refresh schedules
fd-open-data-mcp plan-crawl ... # compile a CrawlPlan
fd-open-data-mcp read --concept-id N --entity-type stock --entity-id 1 --date YYYY-MM-DD
fd-open-data-mcp rank-sources --concept-id N
fd-open-data-mcp register-datasource <path>
fd-open-data-mcp register-discovered # auto-discover entry-point manifests
fd-open-data-mcp list-sources # adapter inventory (see caveat above)
fd-open-data-mcp serve # MCP server (stdio)
fd-open-data-mcp panel # crawl control panelProxy-Pool-Operationen (Cluster): seed-proxy-health, probe-cycle, proxy-health.
Tests
uv run --with pytest pytest -qLLM-Konfiguration (für PDF-Berichtsextraktion)
fd-cn-report verwendet ein LLM, um Finanzkennzahlen aus Jahresberichts-PDFs zu extrahieren. Es läuft in derselben Umgebung wie fd-open-data-mcp und wird über die LLM_*-Umgebungsvariablen in .env / .env.local konfiguriert:
LLM_BASE_URL=https://api.plan/v1 # Ark endpoint
LLM_API_KEY=<your-ark-key> # Ark API key
LLM_MODEL=deepseek-v4-flash # default modelDer Standardanbieter ist DeepSeek on Ark. Jede OpenAI-kompatible LLM_BASE_URL (OpenAI, Azure OpenAI, OpenRouter, lokales Ollama) funktioniert ebenfalls — richten Sie LLM_BASE_URL / LLM_API_KEY / LLM_MODEL darauf aus. LLM_API_KEY hat Vorrang vor OPENAI_API_KEY, wenn beide gesetzt sind.
Designhinweise / Einschränkungen
Vorschlagen-und-bestätigen: Spalte->Konzept-Bindungen tragen
confidence+provenance; Bindungen unterhalb der Schwelle werden vom Versand zurückgehalten (Überprüfungswarteschlange). Ein echter Abruf befördert eine Bindung zusample-confirmed.Ranking erfolgt pro
(Quelle × Konzept)und stimmt sich anhand vonfetch_logselbst ab (begrenzt, sodass ein Fehler eine Quelle nicht entfernen kann).Konfliktrichtlinie: ein zwischengespeicherter Wert pro
(Konzept, Entität, Datum)mit angehängtemsource_used; Werte werden nie über Quellen hinweg zusammengeführt.Vektorsuche verwendet JSONB + numpy (pgvector auf dem Ziel-Postgres nicht verfügbar); Konzept- + Entitäts-Einbettungen bilden die Grundlage für
semantic_search*undai_search.Echte-Quellen-Failover: Funktionen deklarieren
real_sources(z. B.stock_zh_a_hist→[eastmoney, tencent, sina]); wenneastmoneygesperrt ist, weicht der Dispatcher auftencent/sinaaus. Circuit-Breaker-Schlüssel gelten pro echter Quelle, nicht pro Bibliothek._build_params/_extract_valueim Abruf-Runner sind Best-Effort-Ansätze; ein Produktions-Runner verfeinert funktionsspezifische Eigenheiten bei Datumsformat / Nutzlaststruktur.
Siehe openspec/changes/add-fd-open-data-mcp/ für die vollständige Spezifikation und openspec/changes/add-source-proxy-health/ für das Proxy-/Circuit-Breaker-Design.
Mitwirken
So fügen Sie eine neue Datenquelle hinzu:
Erstellen Sie ein Manifest gemäß
fd-open-data-protocol(YAML/JSON oder einCATALOG-Dict).Machen Sie es über den Einstiegspunkt
fd_open_data_mcp.datasourcesin derpyproject.tomlIhres Pakets verfügbar, oder führen Siefd-open-data-mcp register-datasource <path>aus.Wenn die Abruflogik nicht als eingebauter Runner ausgedrückt werden kann, liefern Sie ein
run_<source>(command, params)in einem Adapter (oder einem externen Paket) und verzweigen Sie inrun_upstream()darauf.fd-open-data-mcp register-discoverednimmt es dann auf;propose-bindingsbindet seine Spalten an Konzepte.
Lizenz
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceProvides access to a comprehensive financial intelligence platform featuring real-time market data, quantitative models, and alternative data sources. It enables users to perform advanced financial analysis including options analytics, portfolio modeling, and SEC filing research.

Sugra API MCPofficial
AlicenseAqualityAmaintenanceGateway connector between LLM agents and world data, providing access to financial market prices, macroeconomic indicators, and news through a bundled endpoint catalog.682MIT- FlicenseNot gradedqualityDmaintenanceUnified financial data access for US, A-share, HK stocks, and FX rates with automatic fallback across multiple data sources.1
- AlicenseAqualityBmaintenanceProvides financial agents access to the Financial Industry Business Ontology (FIBO) for querying financial concepts, terms, and relationships through natural language.223MIT
Related MCP Connectors
Macro indicators from World Bank, FRED, IMF, and OECD via unified query surface.
The financial MCP for AI agents - 90+ financial tables, SEC filings, signals, alt-data.
Live financial data MCP: FX, crypto, stocks, news, URL reader. x402 on Base: $0.001/call.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/FindDataTechnology/fd-open-data-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server