Skip to main content

Consolidated DAAS MCP server + CLI - hosts the alerts, cron, composite, daas, dashboard, leader, pdf, and research tool groups (~187 tools) behind one stdio FastMCP server and one Click CLI. Both consume fd_daas_mcp/registry.py so the server and CLI surfaces cannot drift.

Project description

fd-daas-mcp

PyPI version Python License: MIT Docs

A single MCP server + CLI for skill-driven data access across financial, economic, and statistical sources. Browse thousands of indicators, build entity & indicator collections, run research workflows, and share dashboards - all behind one stdio server with 181 tools across 8 groups (187 with the optional pdf extra).

fd-daas-mcp is the engine behind the DAAS skill-driven data-fetch workflow. Point any MCP client (Claude Code, etc.) at it and the tools show up as <group>_<tool> calls - e.g. daas_list_sources, alerts_create_alert_rule, research_create.

Install

pip install fd-daas-mcp

Optional extras (all lazy-loaded - a missing extra degrades to a per-feature error, never a startup crash):

pip install "fd-daas-mcp[pdf]"          # local PDF/text vector search (sqlite-vec)
pip install "fd-daas-mcp[crew]"         # CrewAI router for the leader group
pip install "fd-daas-mcp[akshare]"      # live A-share OHLCV/fundamentals
pip install "fd-daas-mcp[position]"     # CSS/xpath/json-path rule extraction
pip install "fd-daas-mcp[repl]"         # REPL history/autocomplete
pip install "fd-daas-mcp[dev]"          # pytest + mkdocs for contributors

60-second quickstart

# 1. Install
pip install fd-daas-mcp

# 2. Point your MCP client at it. For Claude Code, add to your .mcp.json:
// .mcp.json
{
  "mcpServers": {
    "fd-daas-mcp": {
      "command": "fd-daas-mcp-server",
      "args": []
    }
  }
}
# 3. Provision the database (creates daas.db + full schema + starter sources.
#    DAAS_DATABASE_URL is optional - defaults to ./daas.db or ~/.fd-daas-mcp/):
fd-daas-mcp init
fd-daas-mcp doctor      # read-only health check (path, schema, row counts)

# 4. Or use the CLI directly:
fd-daas-mcp --help                  # see every group + tool
fd-daas-mcp daas list_sources       # invoke a tool: <group> <tool> [key=value ...]
fd-daas-mcp                          # drop into the REPL (needs [repl] extra)

On server startup the schema auto-creates and you'll see the registration report:

registry: 181 tools across 8 sources (failed=0, skipped_optional=1)

(181 tools with the default install; 187 with the pdf extra installed. The pdf group is optional and skipped when sqlite-vec is absent.)

Tool groups

Group Surface prefix What it does
daas daas_* Datasource/function/column catalog, entities, indicators, collections, rules, pipelines
alerts alerts_* Rule-based alerting over indicator series (Feishu/Discord/Slack/Telegram/DingTalk/WeCom/Twitter)
cron cron_* Scheduled task execution + history
composite composite_* Compose + chain tools across upstream MCPs
dashboard dashboard_* Standalone-HTML dashboard registry + query
leader leader_* CrewAI DataCrew router, specialist agents, workflows, snapshots
pdf pdf_* Local PDF/text semantic vector search (optional - needs sqlite-vec)
research research_* Persisted research bundles + generated markdown reports

The CLI tree mirrors this: fd-daas-mcp <group> <tool>. Both server and CLI are generated from the same registry.build(), so they cannot drift.

Skills

The skills/ directory (in the repo, not the wheel) contains 15 Claude Code skills that turn the raw tools into guided workflows - data fetch, research orchestration, dashboard building, rule authoring, and more. To use them:

git clone https://github.com/FindDataOfficial/fd-daas-mcp.git
# Then point Claude Code at skills/ in the clone (or symlink into ~/.claude/skills/).

See CONTRIBUTING.md and the docs site for details.

Architecture

src/fd_daas_mcp/                 # the installable package
  server.py                      # FastMCP app - registers every tool as <group>_<tool>
  cli.py                         # Click CLI - auto-generated from registry.build()
  registry.py                    # AST-harvests tools from each mcp/<group>/ (per-group sys.modules isolation)
  selfcheck.py                   # offline invariants (run_invariants())
  models.py                      # vendored SQLAlchemy schema (Base + ORM for every domain)
  mcp/                           # tool-group source (shipped as package data)
    alerts/  cron/  composite/  daas/  dashboard/  leader/  pdf/  research/

The registry loads each group's server.py and harvests @app.tool-decorated functions (inline groups) or the *_tools.py modules they import (non-inline groups), with per-group sys.modules isolation so leaf modules like database.py don't collide across groups. The cron group is loaded with suppress=True to neutralize APScheduler's import-time thread while keeping its idempotent DDL.

Development

git clone https://github.com/FindDataOfficial/fd-daas-mcp.git
cd fd-daas-mcp
uv sync --extra dev               # editable install + dev deps (pytest, mkdocs, twine)
uv run pytest                     # offline test suite
uv run python -m fd_daas_mcp.selfcheck

See CONTRIBUTING.md for the full guide.

License

MIT - © FindDataOfficial.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fd_daas_mcp-0.1.1.tar.gz (325.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fd_daas_mcp-0.1.1-py3-none-any.whl (361.1 kB view details)

Uploaded Python 3

File details

Details for the file fd_daas_mcp-0.1.1.tar.gz.

File metadata

  • Download URL: fd_daas_mcp-0.1.1.tar.gz
  • Upload date:
  • Size: 325.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.24 {"installer":{"name":"uv","version":"0.11.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for fd_daas_mcp-0.1.1.tar.gz
Algorithm Hash digest
SHA256 0f390a5a570b5f6cfa652e27c73eb59e8c822d1c034e6ad34e4784bbe6dc41ef
MD5 be3ab889c2d2b3d250c58293f3e844ef
BLAKE2b-256 989eb187e58a4556769c50ff963215b4ec90559a67843a4e1ad883fc7a17db52

See more details on using hashes here.

File details

Details for the file fd_daas_mcp-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: fd_daas_mcp-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 361.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.24 {"installer":{"name":"uv","version":"0.11.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for fd_daas_mcp-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c5b679b47c7445fa96e6c6992364d24d7ffcb4a4dc4104d2a41a64d509c2ddb2
MD5 6b6ca07895299616a6530f8ffd3ec951
BLAKE2b-256 fef2b86df6c654a81c0e8b7e15cf970e0758e5909afdfa5e61a78d3c4a37ab34

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page