Skip to main content

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.

Metadata

Release files for fd-daas-mcp 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fd-daas-mcp 0.1.1
File Size Uploaded Provenance Actions
fd_daas_mcp-0.1.1.tar.gz 325.6 kB Without provenance Details for fd_daas_mcp-0.1.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for fd-daas-mcp 0.1.1
File Interpreter ABI Platform Actions
fd_daas_mcp-0.1.1-py3-none-any.whl Python 3 none any Details for fd_daas_mcp-0.1.1-py3-none-any.whl

Total release size: 686.7 kB

Release files / fd_daas_mcp-0.1.1.tar.gz

Download URL fd_daas_mcp-0.1.1.tar.gz
Size 325.6 kB
Tags Source
SHA-256 checksum
How to use checksums
0f390a5a570b5f6cfa652e27c73eb59e8c822d1c034e6ad34e4784bbe6dc41ef
BLAKE2b-256 checksum
How to use checksums
989eb187e58a4556769c50ff963215b4ec90559a67843a4e1ad883fc7a17db52
Upload date
Uploaded using Trusted Publishing?
What is 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}

Release files / fd_daas_mcp-0.1.1-py3-none-any.whl

Download URL fd_daas_mcp-0.1.1-py3-none-any.whl
Size 361.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c5b679b47c7445fa96e6c6992364d24d7ffcb4a4dc4104d2a41a64d509c2ddb2
BLAKE2b-256 checksum
How to use checksums
fef2b86df6c654a81c0e8b7e15cf970e0758e5909afdfa5e61a78d3c4a37ab34
Upload date
Uploaded using Trusted Publishing?
What is 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}

Security for fd-daas-mcp 0.1.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page