Skip to main content
Glama

DAAS - Data As a Service

Mehrschichtige Datenplattform für Finanz-, Wirtschafts- und Statistikdaten – eine einzelne SQLite-Datei (daas.db) hinter einem konsolidierten MCP-Server, wobei der Datenabruf an das fd-open-data-mcp-Upstream delegiert wird.

Was ist das? Eine lokale Datenplattform, die Python-Datenbibliotheken (akshare, yfinance, edgar, edinet-tools, dartlab, world_bank_data, ckanapi) in einen abfragbaren, indikatorberechnenden, dashboard-fähigen Speicher verwandelt, der von einer einzigen SQLite-Datei unterstützt wird. Sie steuern es über Claude Code Skills (dünne Hüllen, die Workflow-Manifeste aufrufen) oder über den konsolidierten fd-daas-mcp-MCP-Server – beide Pfade lesen/schreiben dieselbe Datenbank.

Upstream: Der fd-open-data-mcp-Datenabrufer ist ein Schwester-Repository unter ~/finddata/fd-open-data-mcp (wird automatisch von install.sh geklont).

Dokumentationsseite: Die vollständige, rollenbasierte Dokumentation befindet sich unter docs-site/ (MkDocs Material, EN+ZH zweisprachig). Lesen Sie sie lokal mit uv run mkdocs serve (durchsucht unter /DAAS/) oder bauen Sie sie strikt mit uv run mkdocs build --strict. Siehe docs-site/README.md für Build/Serve/Deploy.


Architektur

Strikte Abwärtsabhängigkeit – eine Schicht greift nie nach oben.

L3  user MCP compositions  (composite manifests, served in-proc on fd-daas-mcp)
L2  workflow manifests      (daas.db `workflows` table + engine, run via workflow_run)
L1  fd-daas-mcp            (consolidated infra: daas/cron/alerts/dashboard/composite/research/pdf/gateway/workflow)
L0  fd-open-data-mcp       (sole data-fetch upstream; concept-based semantic fetcher + entity master)
  • L0 – fd-open-data-mcp (Schwester-Repository): die einzige Datenabruf-Oberfläche. Ein konzeptbasierter semantischer Abrufer mit Ranking/Failover/Caching; enthält den Entitäts-Master (entities, entity_datasource_links). Wird über HTTP unter :8300 bereitgestellt (stdio-Fallback). Ersetzt die 11 früheren pro-Quelle-Datenabruf-MCPs.

  • L1 – fd-daas-mcp (dieses Repository): der konsolidierte stdio-Server, einziger Eintrag in der Repository-Wurzel .mcp.json. Stellt 161 Tools in 9 Gruppen (daas · cron · alerts · dashboard · composite · research · pdf · gateway · workflow) hinter einem Server und einer fd-daas-mcp-Click-CLI bereit. Die dünne Konsolidierungsschicht ist fd-daas-mcp/daas/fd_daas_mcp/ (server.py/registry.py/cli.py/selfcheck.py); der Tool-Code jeder Gruppe liegt im Paket unter fd-daas-mcp/<group>-mcp/.

  • L2 – Workflow-Manifeste: Manifeste liegen in der Tabelle workflows in daas.db (registriert über workflow_register, ausgeführt über workflow_run). build_workflow_from_goal zerlegt ein natürlichsprachliches Ziel per LLM in ein Manifest.

  • L3 – Benutzer-MCP-Komposition: Ein zusammengesetztes Manifest ({name, upstreams, tools, workflows, prompt}) kuratiert eine benannte MCP-Oberfläche, die im Prozess auf dem konsolidierten Server bereitgestellt wird. CRUD über composite_*_manifest.

Die Fetch-Skills (fd-daas-based-data-fetch, fd-daas-fetch-data, fd-daas-research) sind dünne Hüllen: Parametererfassung → workflow_run(name, params) → Checkpoint-Behandlung. Sie rufen keine Python-Datenbibliotheken mehr direkt auf – der Abruf geht über L1→L0 nach unten.

Für die vollständige Architektur, Konventionen und das daas.db-Schema siehe CLAUDE.md und construction/mcp.md.


Installation & Schnellstart

Voraussetzungen: Python 3.10+ und uv. dartlab-Abrufe benötigen 3.12 – führen Sie sie mit uv run --python 3.12 --with dartlab ... aus.

Ein-Klick-Installation (klont DAAS + Upstreams, richtet venvs ein, initialisiert daas.db, lokalisiert .mcp.json):

curl -fsSL https://raw.githubusercontent.com/FindDataTechnology/fd-daas-mcp/master/install.sh | sh

Env-Overrides: DAAS_DEST (Standard ~/code/DAAS), DAAS_BRANCH, FINDDATA_HOME (Standard ~/finddata). Manuelle Schritte unten.

# 1. Provision the root venv (data libs are declared deps)
uv sync

# 2. Provision the database - creates daas.db (full schema + dep-free starter
#    catalog of sources). DAAS_DATABASE_URL is OPTIONAL: unset, it defaults to
#    ./daas.db (writable cwd) or ~/.fd-daas-mcp/daas.db. Set it only to relocate.
fd-daas-mcp/.venv/bin/fd-daas-mcp init       # one-shot provision + seed
fd-daas-mcp/.venv/bin/fd-daas-mcp doctor      # read-only health check (path, schema, row counts)

# 3. Configure credentials - create a repo-root .env for the source keys you need
#    (listed in Environment Variables below). Scripts auto-load .env; no manual export.

# 4. Compute an existing indicator (upserts into observations)
uv run python .claude/skills/fd-daas-based-data-fetch/scripts/run_indicator.py SPY_ma5

# 5. Query daas.db directly (db lives at the resolved DAAS_DATABASE_URL, default ./daas.db)
sqlite3 daas.db "SELECT name, datasource, op FROM indicator_rules LIMIT 10"
sqlite3 daas.db "SELECT source, COUNT(*) FROM observations GROUP BY source"

# 6. Launch / health-check the consolidated server
fd-daas-mcp/bin/fd-daas-mcp-server                       # stdio server (what .mcp.json launches)
fd-daas-mcp/.venv/bin/python -m daas.fd_daas_mcp.selfcheck   # registry + tool health check (target: failed=0)

# 7. Run a workflow manifest (L2 — the fetch path goes L1→L0)
fd-daas-mcp/.venv/bin/python -c "
from daas_mcp_workflow_tools import workflow_run   # or via the MCP tool
print(workflow_run('fetch-and-persist', params_json='{\"entity\":\"SPY\",\"indicator\":\"ma5\"}'))
"

Die obigen Schnellstart-Befehle wurden gegen dieses Repository verifiziert: SPY_ma5 ist eine echte indicator_rules-Zeile, und die fd-daas-mcp-Registry meldet 161 Tools in 9 Quellen (failed=0, skipped_optional=1 für die optionale pdf-Gruppe).


Projektstruktur

daas/
├── .claude/skills/          # Claude Code skills (fd-daas-based-data-fetch is the core fetch shell)
├── fd-daas-mcp/             # Consolidated MCP server — sole .mcp.json entry (161 tools, 9 groups)
│   ├── alerts-mcp/          #   alert rule engine + 7 notification channels
│   ├── composite-mcp/       #   user MCP composition (curate tools + embed workflows + prompt)
│   ├── cron-mcp/            #   task + schedule registry (DB-backed)
│   ├── daas-mcp/            #   datasource/function/indicator/entity catalog + compute + rules
│   ├── dashboard-mcp/       #   standalone-HTML dashboard registry + query
│   ├── gateway-mcp/         #   L0 upstream registry + call routing (former leader gateway half)
│   ├── workflow-mcp/        #   manifest-based multi-step data workflows (former leader workflow half)
│   ├── pdf-mcp/             #   local PDF/text semantic search (sqlite-vec) [optional]
│   ├── research-mcp/        #   persisted research bundle (collections + indicators + dashboard + report)
│   ├── bin/fd-daas-mcp-server      # launcher
│   └── daas/fd_daas_mcp/   # server.py / registry.py / cli.py / selfcheck.py
├── daas.db                  # Shared SQLite database (ships as a demo dataset: registry + observations + scraw_*)
├── dashboards/              # Standalone HTML dashboards (+ index.html, daas.md)
├── construction/            # Architecture docs (mcp.md — layered L0/L1/L2/L3)
└── .env                     # DAAS_DATABASE_URL, proxy, source auth keys, LLM config, ...

daas.db Datenmodell

Eine SQLite-Datei am Pfad in DAAS_DATABASE_URL (relative sqlite:///-Pfade werden relativ zur Repository-Wurzel aufgelöst; PRAGMA foreign_keys=ON für FK-Kaskade, PRAGMA journal_mode=WAL + busy_timeout=10000 zur Vermeidung von „database is locked"). Tabellen gruppieren sich nach Rolle:

Rolle

Tabellen

Inhalt

Registry / Katalog

sources, daas_functions, daas_function_columns, entities, entity_datasource_links, indicator_rules

Datenquellen-/Funktions-/Spaltenkatalog; Aktien/Länder + ihre Quellenkennungen; Indikatorbindungen (Tabelle + Spalten + Operation + Parameter)

Berechnete Reihen

observations

Indikatorausgabe – ein (source, function_name, indicator, date)-Punkt pro Zeile; per run_indicator.py upsertet. Dashboards & Alerts lesen dies.

Abgerufene Quelldaten

scraw_<slug>

Rohzeilen, die von einem Abruf gezogen werden (automatisch von upsert.py erstellt). observations werden daraus berechnet.

Sammlungen + Regeln

entity_collections*, indicator_collections*, rules, process_results

Benannte Gruppen von Entitäten/Indikatoren + Add-in/Remove-out-Protokoll; der einheitliche rules-Speicher (json/script/position/llm) treibt Mitgliedschaft + LLM-Extraktion

MCP-Betrieb

dashboards, alert_rules, alert_events, schedules, tasks, gateway_upstreams, workflows, workflow_runs, workflow_run_steps, composites, researches

Dashboard-Registry, Alert-Engine, Cron-Zustand, Gateway-/Workflow-/Composite-/Research-Zustand

Direkt aus der Repository-Wurzel abfragen: sqlite3 daas.db "SELECT …".


Fähigkeiten (.claude/skills/)

Fähigkeiten sind einfaches Markdown (SKILL.md) + Python-Skripte. Die Fetch-Skills sind dünne Hüllen, die Parameter sammeln und workflow_run aufrufen – sie rufen keine Python-Datenbibliotheken mehr direkt auf (Abruf geht L1→L0).

Fähigkeit

Zweck

fd-daas-based-data-fetch (Kern-Fetch-Shell)

Eine Entität + einen Indikator gegen daas.db auflösen, dann workflow_run(name, params) zum Abruf über fd-open-data-mcp und Persistieren in scraw_* / observations.

fd-daas-fetch-data

Entität → Abdeckung → Indikator-Workflow (sqlite3 + die Kernskripte).

fd-daas-research

Orchestriere analysieren → [Sammlung] → Indikatoren → Dashboard → als research-Bundle + Markdown-Bericht persistieren.

fd-daas-brainstorm

Ein Forschungsziel per Dialog klären → daas-doc/research/<plan>.md (kein daas.db-Zustand).

fd-daas-indicators-creator

Eine abgerufene Reihe in eine scraw_<slug>-Tabelle persistieren (manuelle Aktualisierung – kein Cron).

fd-daas-dashboard-creator

Ein eigenständiges ECharts-HTML-Dashboard erstellen + registrieren.

fd-daas-dashboard

Vorhandene Dashboards finden / öffnen / inspizieren (schreibgeschützt).

fd-daas-entities-collection-creator / fd-daas-entities-collection

Eine regelbasierte Entitätssammlung definieren / tägliche Sammlungsoperationen durchführen.

fd-daas-indicators-collection-creator

Eine Indikatorsammlung kuratieren + CSV/Markdown mit aufgelösten Scores exportieren.

fd-daas-rules-creator

Eine einheitliche Regel (json/script/position/llm) erstellen, an eine Sammlung anhängen, Trockenlauf, Synchronisierung.

fd-daas-pdf

Ein PDF/Text in einen lokalen Vektorstore (sqlite-vec) aufnehmen und semantisch suchen. Erfordert das [pdf]-Extra.

fd-daas-scrapling-official

Anti-Bot-geschützte Seiten (Cloudflare/JS-Rendering) über Scrapling scrapen.

fd-daas-skill-creator / fd-daas-skill-review

DAAS-Fähigkeiten erstellen/optimieren und überprüfen/testen.

fd-coding-mcp-creator

Eine Benutzer-MCP-Komposition (L3) scaffolden: Interview → Manifest → Registrierung → Selbstprüfung.

fd-coding-skill-creator, fd-coding-daas-*, openspec-*

Infrastruktur: Fähigkeiten erstellen/optimieren, Reset-/Scraw-/Datenquellen-Builder, OpenSpec-Änderungslebenszyklus.


MCP-Tool-Gruppen (fd-daas-mcp)

Der konsolidierte Server stellt 161 Tools in 9 Gruppen bereit (failed=0, skipped_optional=1 für die optionale pdf-Gruppe). Der Katalog ist auf Gruppenebene (Details pro Tool über die eigene Introspection des Servers / selfcheck).

Gruppe

Präfix

Tools

Zweck

daas

daas_*

87

Katalog für Datenquellen/Funktionen/Spalten/Entitäten/Indikatoren, Indikatorenberechnung, LLM-Extraktion, Sammlungen, Entitätsabdeckung, einheitliche Regeln.

dashboard

dashboard_*

11

Standalone-HTML-Dashboard-Registry (CRUD), Tabellenabfrage, Statistiken, Index-Neugenerierung.

alerts

alerts_*

10

Alert-Regel-Engine für Beobachtungsreihen + 7 Benachrichtigungskanäle (Telegram/Discord/Slack/Twitter/DingTalk/Feishu/WeCom).

cron

cron_*

13

DB-gestützte Aufgaben- und Zeitplan-Registry; Ad-hoc-run_now; Ausführungsverlauf.

composite

composite_*

16

Benutzer-MCP-Komposition (L3): Tools aus Upstreams kuratieren + Workflows einbetten + Prompt.

research

research_*

9

Persistiertes Research-Bündel, das Sammlungen/Indikatoren/Dashboard/Pipeline verbindet + Markdown-Bericht.

gateway

gateway_*

7

L0-Upstream-Registry-CRUD + Aufruf-Routing zu fd-open-data-mcp (ehemalige leader-Gateway-Hälfte).

workflow

workflow_*

8

Manifestbasierte mehrstufige Datenabrufe: registrieren/ausführen/fortsetzen/prüfen (ehemalige leader-Workflow-Hälfte).

pdf

pdf_*

Lokale semantische Suche in PDF/Text (sqlite-vec + sentence-transformers). Optional — abhängig vom sqlite_vec-Import.

Die alte leader-Gruppe ist aufgelöst: Ihre Gateway-Routing-Hälfte wurde zu gateway_*, ihre Workflow-Manifest-Hälfte wurde zu workflow_*. Harness-Registry-/Snapshot-/Provenienz-Funktionen wurden entfernt.

Start: fd-daas-mcp/bin/fd-daas-mcp-server (stdio). Sowohl der Server als auch die fd-daas-mcp-CLI nutzen registry.build(), sodass die beiden Oberflächen nicht auseinanderdriften können.


Umgebungsvariablen

Eine einzelne .env im Repository-Stammverzeichnis enthält die gesamte Konfiguration; Skripte und der MCP-Server laden sie automatisch. (Als optional markierte Schlüssel werden nur für die Funktionen benötigt, die sie aktivieren.)

Schlüssel

Zweck

Erforderlich?

DAAS_DATABASE_URL

sqlite:///-URL zu daas.db (relativ zum Repository-Stammverzeichnis aufgelöst oder absolut). Optional: Wenn nicht gesetzt, Standardwert ./daas.db (beschreibbares Arbeitsverzeichnis) oder ~/.fd-daas-mcp/daas.db. Führen Sie fd-daas-mcp init aus, um die Datenbank bereitzustellen.

optional

HTTP_PROXY

Ausgehender Proxy für Datenbibliotheken.

optional

EDGAR_IDENTITY

SEC-EDGAR-Identitätszeichenfolge ("Name email@domain").

für edgar

EDINET_API_KEY

Schlüssel für den Abruf japanischer EDINET-Dokumente.

für edinet

CKAN_PORTAL_URL

Basis-URL des CKAN-Portals.

für ckan

LLM_BASE_URL, LLM_API_KEY, LLM_MODEL

Gemeinsamer LLM-Endpunkt für Extraktion / Workflow-Planer.

für LLM-Funktionen

LEADER_MODELS, LEADER_MODEL_HIGH/BALANCE/FAST

Gestaffelte Modell-Overrides für den Workflow-Planer (build_workflow_from_goal). Namen beibehalten; nur die beschreibende Bezeichnung ist „workflow planner“.

optional

ALERTS_FEISHU_WEBHOOK_URL

Feishu-Webhook für den Alert-Kanal.

für Feishu-Alerts

DASHBOARD_PORT

Port für die Dashboard-Anwendung.

optional


Für KI-Agenten

Wenn Sie ein KI-Agent (z. B. Claude Code) sind, der in diesem Repository arbeitet:

  • Rufen Sie Daten über den Workflow-Pfad ab. Verwenden Sie fd-daas-based-data-fetch: Lösen Sie die Entität + den Indikator über sqlite3 gegen daas.db auf, dann workflow_run(name, params) — das Manifest leitet den Abruf über gateway_callfd-open-data-mcp (L0) weiter und speichert in scraw_<slug> / observations. Für mehrstufige Abrufe erzeugt build_workflow_from_goal ein Manifest.

  • Workflow: auflösen → abrufen (über L0) → speichern. Entität+Indikator in daas.db auflösen; über das Gateway abrufen; in scraw_<slug> (Rohdaten) oder observations (berechneter Indikator) speichern.

  • Verwenden Sie den MCP-Server für alles andere — Durchsuchen des Katalogs, Erstellen von Indikatoren/Sammlungen/Regeln, Cron-Planung, Alerts, Erstellen/Finden von Dashboards, semantische PDF-Suche, Composite-Erstellung, Research-Bündel. Dies sind die fd-daas-mcp-Tools (161 in 9 Gruppen).

  • Fragen Sie daas.db mit sqlite3 vom Repository-Stammverzeichnis aus ab (sqlite3 daas.db "…"). Verwenden Sie PRAGMA foreign_keys=ON für die FK-Kaskade.

  • Maßgebliche Architektur- und Schema-Referenz: CLAUDE.md (es enthält einen Abschnitt ## daas.db, der jede Tabelle auflistet) und construction/mcp.md (die Referenz für die Schichten L0/L1/L2/L3).


Lizenz

Apache 2.0.

-
license - not tested
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

  • Real SEC, 13F, insider, congress & macro data your AI agent can cite. Hosted MCP, 24 tools.

  • MCP server connecting AI agents to non-custodial staking data across 130+ networks.

  • Hosted MCP server for personal tools: budgets, savings goals, spaced repetition, tips, countdowns.

View all MCP Connectors

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/FindDataTechnology/fd-daas-mcp'

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