Skip to main content
Glama

DAAS - データ・アズ・ア・サービス

金融・経済・統計データのための階層型データプラットフォーム — 統合MCPサーバーの背後にある単一のSQLiteファイル(daas.db)で、データ取得はfd-open-data-mcpアップストリームに委譲されます。

これは何か? Pythonデータライブラリ(akshare、yfinance、edgar、edinet-tools、dartlab、world_bank_data、ckanapi)を、単一のSQLiteファイルに支えられた、検索可能・指標計算可能・ダッシュボード対応のストアに変えるローカルデータプラットフォームです。Claude Codeスキル(ワークフローマニフェストを呼び出す薄いシェル)または統合fd-daas-mcp MCPサーバーを介して操作します。どちらの経路も同じデータベースを読み書きします。

アップストリーム: fd-open-data-mcpデータフェッチャーは、~/finddata/fd-open-data-mcpにある兄弟リポジトリです(install.shによって自動的にクローンされます)。

ドキュメントサイト: 完全なロールベースのドキュメントはdocs-site/にあります(MkDocs Material、EN+ZHのバイリンガル)。ローカルではuv run mkdocs serveで閲覧できます(/DAAS/でブラウズ)。またはuv run mkdocs build --strictで厳密にビルドできます。ビルド/サーブ/デプロイについてはdocs-site/README.mdを参照してください。


アーキテクチャ

厳密な下方向依存 — レイヤーが上に遡ることはありません。

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(兄弟リポジトリ): 唯一のデータ取得サーフェス。ランキング/フェイルオーバー/キャッシュを備えたコンセプトベースのセマンティックフェッチャーで、エンティティマスター(entities、entity_datasource_links)を保持します。HTTPで:8300に提供(stdioフォールバック)。従来の11個のソース別データ取得MCPを置き換えます。

  • L1 — fd-daas-mcp(このリポジトリ): 統合stdioサーバーであり、リポジトリルートの.mcp.jsonにある唯一のエントリです。1つのサーバーと1つのfd-daas-mcp Click CLIの背後で、9グループにわたる161ツール(daas · cron · alerts · dashboard · composite · research · pdf · gateway · workflow)を公開します。薄い統合レイヤーはfd-daas-mcp/daas/fd_daas_mcp/(server.py/registry.py/cli.py/selfcheck.py)で、各グループのツールコードはパッケージ内のfd-daas-mcp/<group>-mcp/にあります。

  • L2 — ワークフローマニフェスト: マニフェストはdaas.dbのworkflowsテーブルに格納されます(workflow_registerで登録、workflow_runで実行)。build_workflow_from_goalは自然言語のゴールをLLM経由でマニフェストに分解します。

  • L3 — ユーザーMCPコンポジション: コンポジットマニフェスト({name, upstreams, tools, workflows, prompt})は、統合サーバー上でプロセス内提供される名前付きMCPサーフェスをキュレーションします。CRUDはcomposite_*_manifest経由です。

フェッチスキル(fd-daas-based-data-fetch、fd-daas-fetch-data、fd-daas-research)は薄いシェルです: パラメータ収集 → workflow_run(name, params) → チェックポイント処理。これらはPythonデータライブラリを直接呼び出しません — フェッチはL1→L0を通って下がります。

完全なアーキテクチャ、規約、daas.dbスキーマリファレンスについては、CLAUDE.mdとconstruction/mcp.mdを参照してください。


Related MCP server: coin-mcp

インストールとクイックスタート

要件: Python 3.10+ と uv。dartlabのフェッチには3.12が必要です — uv run --python 3.12 --with dartlab ...で実行してください。

ワンクリックインストール(DAAS + アップストリームをクローンし、venvをプロビジョニングし、daas.dbを初期化し、.mcp.jsonをローカライズします):

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

環境変数の上書き: DAAS_DEST(デフォルト~/code/DAAS)、DAAS_BRANCH、FINDDATA_HOME(デフォルト~/finddata)。手動の手順は以下。

# 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\"}'))
"

上記のクイックスタートコマンドはこのリポジトリに対して検証済みです: SPY_ma5は実際のindicator_rules行であり、fd-daas-mcpレジストリは9ソースにわたる161ツールを報告します(オプションのpdfグループはfailed=0, skipped_optional=1)。


プロジェクト構造

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 データモデル

DAAS_DATABASE_URLのパスにある単一のSQLiteファイル(相対sqlite:///パスはリポジトリルートに対して解決されます。FKカスケード用にPRAGMA foreign_keys=ON、「database is locked」を回避するためにPRAGMA journal_mode=WAL + busy_timeout=10000)。テーブルはロールごとにグループ化されます:

ロール

テーブル

保持内容

レジストリ / カタログ

sources, daas_functions, daas_function_columns, entities, entity_datasource_links, indicator_rules

データソース/関数/列カタログ; 銘柄/国とそのソース識別子; インジケーターバインディング(テーブル + 列 + 操作 + パラメータ)

計算済みシリーズ

observations

インジケーター出力 — 1行に1つの(source, function_name, indicator, date)ポイント。run_indicator.pyによってアップサートされます。ダッシュボードとアラートはこれを読み取ります。

取得済みソースデータ

scraw_<slug>

フェッチによって取得された生の行(upsert.pyによって自動生成)。observationsはこれらから計算されます。

コレクション + ルール

entity_collections*, indicator_collections*, rules, process_results

エンティティ/インジケーターの名前付きグループ + 追加/削除の監査ログ; 統合rulesストア(json/script/position/llm)がメンバーシップ + LLM抽出を駆動します

MCP運用

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

ダッシュボードレジストリ、アラートエンジン、cron状態、ゲートウェイ/ワークフロー/コンポジット/リサーチ状態

リポジトリルートから直接クエリできます: sqlite3 daas.db "SELECT …"。


スキル(.claude/skills/)

スキルはプレーンなMarkdown(SKILL.md)+ Pythonスクリプトです。フェッチスキルはパラメータを収集してworkflow_runを呼び出す薄いシェルです — これらはPythonデータライブラリを直接呼び出しません(フェッチはL1→L0を通ります)。

スキル

目的

fd-daas-based-data-fetch (コアフェッチシェル)

daas.dbに対してエンティティ + インジケーターを解決し、workflow_run(name, params)でfd-open-data-mcp経由のフェッチを実行してscraw_* / observationsに永続化します。

fd-daas-fetch-data

エンティティ → カバレッジ → インジケーターのワークフロー(sqlite3 + コアスクリプト)。

fd-daas-research

分析 → [コレクション] → インジケーター → ダッシュボードをオーケストレーションし、researchバンドル + Markdownレポートとして永続化します。

fd-daas-brainstorm

対話を通じてリサーチゴールを明確化 → daas-doc/research/<plan>.md(daas.dbの状態は変更しません)。

fd-daas-indicators-creator

取得したシリーズをscraw_<slug>テーブルに永続化します(手動更新 — cronなし)。

fd-daas-dashboard-creator

スタンドアロンのECharts HTMLダッシュボードを構築して登録します。

fd-daas-dashboard

既存のダッシュボードを検索 / 開く / 検査します(読み取り専用)。

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

ルールベースのエンティティコレクションの定義 / 日常的なコレクション操作。

fd-daas-indicators-collection-creator

インジケーターコレクションをキュレーションし、解決済みスコア付きのCSV/Markdownをエクスポートします。

fd-daas-rules-creator

統合ルール(json/script/position/llm)を作成し、コレクションにアタッチし、ドライランして同期します。

fd-daas-pdf

PDF/テキストをローカルベクターストア(sqlite-vec)に取り込み、セマンティック検索します。[pdf]エクストラが必要です。

fd-daas-scrapling-official

Scraplingを介してアンチボット保護されたページ(Cloudflare/JSレンダリング)をスクレイピングします。

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

daasスキルの作成/最適化とレビュー/テスト。

fd-coding-mcp-creator

ユーザーMCPコンポジション(L3)をスキャフォールドします: インタビュー → マニフェスト → 登録 → セルフチェック。

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

インフラ: スキルの作成/最適化、reset/scraw/datasourceビルダー、OpenSpec変更ライフサイクル。


MCPツールグループ(fd-daas-mcp)

統合サーバーは9グループにわたる161ツールを公開します(オプションのpdfグループはfailed=0, skipped_optional=1)。カタログはグループレベルです(ツールごとの詳細はサーバー自身のイントロスペクション / selfcheck経由)。

{ "mcpServers": { "fd-daas": { "command": "fd-daas-mcp-server" } } }

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Economic data MCP server that connects FRED, BLS, BEA, IMF, World Bank, and ECB to any MCP-compatible client, with built-in methodology rules to guide LLMs in selecting appropriate economic indicators.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    A comprehensive cryptocurrency market-data MCP server with 49 tools across six data sources, enabling LLMs to answer market questions via natural language.
    49
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Unified MCP server for querying CSV, Postgres, and REST API data sources via embedded DuckDB, enabling cross-source SQL joins with no external query service.
    7
    14 npm
    MIT