fd-daas-mcp
OfficialDAAS - 数据即服务
面向金融、经济和统计数据的分层数据平台——一个 SQLite 文件(daas.db)位于整合后的 MCP 服务器之后,数据获取向下委托给 fd-open-data-mcp 上游。
这是什么? 一个本地数据平台,将 Python 数据库(
akshare、yfinance、edgar、edinet-tools、dartlab、world_bank_data、ckanapi)转化为一个可查询、可计算指标、可构建仪表盘的存储,由一个 SQLite 文件支撑。你可以通过 Claude Code 技能(调用工作流清单的薄壳)或 整合后的fd-daas-mcpMCP 服务器 来驱动它——两条路径读写同一个数据库。
上游:
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中的唯一入口。在一个服务器和一个fd-daas-mcpClick 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 表面,在整合服务器上进程内提供服务。通过composite_*_manifest进行 CRUD。
获取技能(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 + 上游仓库,配置虚拟环境,初始化 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 数据模型
一个 SQLite 文件,位于 DAAS_DATABASE_URL 指定的路径(相对 sqlite:/// 路径相对于仓库根目录解析;PRAGMA foreign_keys=ON 用于外键级联,PRAGMA journal_mode=WAL + busy_timeout=10000 以避免“database is locked”)。表按角色分组:
角色 | 表 | 内容 |
注册表 / 目录 |
| 数据源/函数/列目录;股票/国家及其来源标识符;指标绑定(表 + 列 + 操作 + 参数) |
计算序列 |
| 指标输出——每行一个 |
获取的源数据 |
| 由一次获取拉取的原始行(由 |
集合 + 规则 |
| 命名的实体/指标组 + 添加/移除审计日志;统一的 |
MCP 运维 |
| 仪表盘注册表、警报引擎、cron 状态、网关/工作流/组合/研究状态 |
直接从仓库根目录查询:sqlite3 daas.db "SELECT …"。
技能(.claude/skills/)
技能是纯 Markdown(SKILL.md)+ Python 脚本。获取技能是薄壳,收集参数并调用 workflow_run——它们不再直接调用 Python 数据库(获取通过 L1→L0 进行)。
技能 | 用途 |
| 根据 |
| 实体 → 覆盖范围 → 指标工作流(sqlite3 + 核心脚本)。 |
| 编排分析 → [集合] → 指标 → 仪表盘 → 持久化为 |
| 通过对话澄清研究目标 → |
| 将获取的序列持久化到 |
| 构建独立的 ECharts HTML 仪表盘并注册它。 |
| 查找 / 打开 / 检查现有仪表盘(只读)。 |
| 定义基于规则的实体集合 / 日常集合操作。 |
| 策划指标集合 + 导出带有解析分数的 CSV/markdown。 |
| 编写统一规则(json/script/position/llm),附加到集合,试运行,同步。 |
| 将 PDF/文本摄取到本地向量存储(sqlite-vec)并进行语义搜索。需要 |
| 通过 Scrapling 抓取受反机器人保护的页面(Cloudflare/JS 渲染)。 |
| 创建/优化并审查/测试 daas 技能。 |
| 搭建用户 MCP 组合(L3)脚手架:访谈 → 清单 → 注册 → 自检。 |
| 基础设施:创建/优化技能,重置/scraw/数据源构建器,OpenSpec 变更生命周期。 |
MCP 工具组(fd-daas-mcp)
整合服务器暴露 9 个组共 161 个工具(可选 pdf 组为 failed=0, skipped_optional=1)。目录是组级别的(每个工具的详细信息通过服务器自身的自省 / selfcheck 获取)。
组 | 前缀 | 工具 | 用途 |
daas |
| 87 | 数据源/函数/列/实体/指标目录、指标计算、LLM 提取、集合、实体覆盖、统一规则。 |
dashboard |
| 11 | 独立 HTML 仪表板注册表(CRUD)、表查询、统计、索引重建。 |
alerts |
| 10 | 基于观测序列的告警规则引擎 + 7 个通知渠道(Telegram/Discord/Slack/Twitter/DingTalk/Feishu/WeCom)。 |
cron |
| 13 | 基于数据库的任务 + 调度注册表;临时 |
composite |
| 16 | 用户 MCP 组合(L3):从上游精选工具 + 嵌入工作流 + 提示词。 |
research |
| 9 | 持久化研究包,将集合/指标/仪表板/管道与 markdown 报告绑定。 |
gateway |
| 7 | L0 上游注册表 CRUD + 到 |
workflow |
| 8 | 基于清单的多步数据获取:注册/运行/恢复/检查(原 |
| — | 本地 PDF/文本语义搜索(sqlite-vec + sentence-transformers)。可选 —— 仅在 |
旧版
leader组已解散:其网关路由半部分成为gateway_*,其工作流清单半部分成为workflow_*。Harness 注册表 / 快照 / 溯源能力已删除。
启动:fd-daas-mcp/bin/fd-daas-mcp-server(stdio)。服务器和 fd-daas-mcp CLI 都使用 registry.build(),因此这两个入口不会产生偏差。
环境变量
仓库根目录下的单个 .env 文件保存所有配置;脚本和 MCP 服务器会自动加载它。(标记为“可选”的键仅在其所启用的功能中需要。)
键 | 用途 | 是否必需? |
|
| 可选 |
| 数据资源库的出站代理。 | 可选 |
| SEC EDGAR 标识字符串( | 使用 EDGAR 时需要 |
| 日本 EDINET 文档获取密钥。 | 使用 EDINET 时需要 |
| CKAN 门户基础 URL。 | 使用 CKAN 时需要 |
| 用于提取 / 工作流规划器的共享 LLM 端点。 | 使用 LLM 功能时需要 |
| 工作流规划器( | 可选 |
| 用于告警渠道的 Feishu webhook。 | 使用 Feishu 告警时需要 |
| 仪表板应用的端口。 | 可选 |
面向 AI 代理
如果你是在此仓库中操作的 AI 代理(例如 Claude Code):
通过工作流路径获取数据。 使用
fd-daas-based-data-fetch:通过sqlite3在daas.db中解析实体 + 指标,然后执行workflow_run(name, params)—— 清单会将获取请求经由gateway_call→fd-open-data-mcp(L0)向下路由,并持久化到scraw_<slug>/observations。对于多步获取,build_workflow_from_goal会生成清单。工作流: 解析 → 获取(通过 L0)→ 持久化。在
daas.db中解析实体+指标;通过网关获取;持久化到scraw_<slug>(原始)或observations(计算指标)。其他一切事项都使用 MCP 服务器 —— 目录浏览、创建指标/集合/规则、cron 调度、告警、构建/查找仪表板、PDF 语义搜索、composite 创作、研究包。这些就是
fd-daas-mcp工具(9 组共 161 个)。从仓库根目录使用
sqlite3查询daas.db(sqlite3 daas.db "…")。使用PRAGMA foreign_keys=ON来启用 FK 级联。权威架构 + schema 参考:
CLAUDE.md(其中有一个## daas.db章节列出了所有表)以及construction/mcp.md(分层 L0/L1/L2/L3 参考)。
许可证
Apache 2.0.
This server cannot be deployed
Maintenance
Related MCP Connectors
Hosted MCP: 3665 structured web-data tools across 472 platform groups.
Hosted MCP servers for US federal data: 19 servers, 147 tools, one endpoint.
75 MCP tools: SEC financials, FRED economics, IRS 990, FDA, FX, UK Companies House.
MCP server for querying and analyzing data from ad platforms, analytics tools, and spreadsheets
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEconomic 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
- AlicenseAqualityDmaintenanceA comprehensive cryptocurrency market-data MCP server with 49 tools across six data sources, enabling LLMs to answer market questions via natural language.49MIT
- FlicenseAqualityDmaintenanceMCP server that enables semantic search over macroeconomic data using the Lambda Capture API.110-
- AlicenseAqualityBmaintenanceUnified MCP server for querying CSV, Postgres, and REST API data sources via embedded DuckDB, enabling cross-source SQL joins with no external query service.714 npmMIT