Skip to main content
Glama

DAAS - 数据即服务

面向金融、经济和统计数据的分层数据平台——一个 SQLite 文件(daas.db)位于整合后的 MCP 服务器之后,数据获取向下委托给 fd-open-data-mcp 上游。

这是什么? 一个本地数据平台,将 Python 数据库(akshareyfinanceedgaredinet-toolsdartlabworld_bank_datackanapi)转化为一个可查询、可计算指标、可构建仪表盘的存储,由一个 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(兄弟仓库):唯一的数据获取面。一个基于概念的语义获取器,具有排序/故障转移/缓存;持有实体主数据(entitiesentity_datasource_links)。通过 HTTP 在 :8300 提供服务(stdio 回退)。取代了原先 11 个按数据源划分的数据获取 MCP。

  • L1 — fd-daas-mcp(本仓库):整合后的 stdio 服务器,是仓库根目录 .mcp.json 中的唯一入口。在一个服务器和一个 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.dbworkflows 表中(通过 workflow_register 注册,通过 workflow_run 运行)。build_workflow_from_goal 通过 LLM 将自然语言目标分解为清单。

  • L3 — 用户 MCP 组合:组合清单({name, upstreams, tools, workflows, prompt})策划一个命名的 MCP 表面,在整合服务器上进程内提供服务。通过 composite_*_manifest 进行 CRUD。

获取技能(fd-daas-based-data-fetchfd-daas-fetch-datafd-daas-research)是薄壳:参数收集 → workflow_run(name, params) → 检查点处理。它们不再直接调用 Python 数据库——获取通过 L1→L0 向下进行。

有关完整架构、约定和 daas.db 模式参考,请参阅 CLAUDE.mdconstruction/mcp.md


安装与快速开始

要求:Python 3.10+ 和 uvdartlab 获取需要 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_BRANCHFINDDATA_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_ma5indicator_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”)。表按角色分组:

角色

内容

注册表 / 目录

sources, daas_functions, daas_function_columns, entities, entity_datasource_links, indicator_rules

数据源/函数/列目录;股票/国家及其来源标识符;指标绑定(表 + 列 + 操作 + 参数)

计算序列

observations

指标输出——每行一个 (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-*

基础设施:创建/优化技能,重置/scraw/数据源构建器,OpenSpec 变更生命周期。


MCP 工具组(fd-daas-mcp

整合服务器暴露 9 个组共 161 个工具(可选 pdf 组为 failed=0, skipped_optional=1)。目录是组级别的(每个工具的详细信息通过服务器自身的自省 / selfcheck 获取)。

前缀

工具

用途

daas

daas_*

87

数据源/函数/列/实体/指标目录、指标计算、LLM 提取、集合、实体覆盖、统一规则。

dashboard

dashboard_*

11

独立 HTML 仪表板注册表(CRUD)、表查询、统计、索引重建。

alerts

alerts_*

10

基于观测序列的告警规则引擎 + 7 个通知渠道(Telegram/Discord/Slack/Twitter/DingTalk/Feishu/WeCom)。

cron

cron_*

13

基于数据库的任务 + 调度注册表;临时 run_now;执行历史。

composite

composite_*

16

用户 MCP 组合(L3):从上游精选工具 + 嵌入工作流 + 提示词。

research

research_*

9

持久化研究包,将集合/指标/仪表板/管道与 markdown 报告绑定。

gateway

gateway_*

7

L0 上游注册表 CRUD + 到 fd-open-data-mcp 的调用路由(原 leader 网关半部分)。

workflow

workflow_*

8

基于清单的多步数据获取:注册/运行/恢复/检查(原 leader 工作流半部分)。

pdf

pdf_*

本地 PDF/文本语义搜索(sqlite-vec + sentence-transformers)。可选 —— 仅在 sqlite_vec 可导入时启用。

旧版 leader 组已解散:其网关路由半部分成为 gateway_*,其工作流清单半部分成为 workflow_*。Harness 注册表 / 快照 / 溯源能力已删除。

启动:fd-daas-mcp/bin/fd-daas-mcp-server(stdio)。服务器和 fd-daas-mcp CLI 都使用 registry.build(),因此这两个入口不会产生偏差。


环境变量

仓库根目录下的单个 .env 文件保存所有配置;脚本和 MCP 服务器会自动加载它。(标记为“可选”的键仅在其所启用的功能中需要。)

用途

是否必需?

DAAS_DATABASE_URL

sqlite:/// URL 指向 daas.db(相对路径基于仓库根目录解析,或使用绝对路径)。可选:未设置时,默认为 ./daas.db(可写的当前工作目录)或 ~/.fd-daas-mcp/daas.db。运行 fd-daas-mcp init 进行初始化。

可选

HTTP_PROXY

数据资源库的出站代理。

可选

EDGAR_IDENTITY

SEC EDGAR 标识字符串("Name email@domain")。

使用 EDGAR 时需要

EDINET_API_KEY

日本 EDINET 文档获取密钥。

使用 EDINET 时需要

CKAN_PORTAL_URL

CKAN 门户基础 URL。

使用 CKAN 时需要

LLM_BASE_URL, LLM_API_KEY, LLM_MODEL

用于提取 / 工作流规划器的共享 LLM 端点。

使用 LLM 功能时需要

LEADER_MODELS, LEADER_MODEL_HIGH/BALANCE/FAST

工作流规划器(build_workflow_from_goal)的分层模型覆盖。名称保留;仅描述性标签为“工作流规划器”。

可选

ALERTS_FEISHU_WEBHOOK_URL

用于告警渠道的 Feishu webhook。

使用 Feishu 告警时需要

DASHBOARD_PORT

仪表板应用的端口。

可选


面向 AI 代理

如果你是在此仓库中操作的 AI 代理(例如 Claude Code):

  • 通过工作流路径获取数据。 使用 fd-daas-based-data-fetch:通过 sqlite3daas.db 中解析实体 + 指标,然后执行 workflow_run(name, params) —— 清单会将获取请求经由 gateway_callfd-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.dbsqlite3 daas.db "…")。使用 PRAGMA foreign_keys=ON 来启用 FK 级联。

  • 权威架构 + schema 参考: CLAUDE.md(其中有一个 ## daas.db 章节列出了所有表)以及 construction/mcp.md(分层 L0/L1/L2/L3 参考)。


许可证

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