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。
安装与快速开始
要求: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 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 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.
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-daas-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server