Token导航 LogoToken导航

MCP Server · 数据服务

CSMAR Data MCP

面向Agent工作流的精简MCP服务器,提供CSMAR元数据发现、查询可行性探测以及本地物化功能。

stdio官方级别未说明来源级核验工具 7
Python数据分析API集成

快速开始

作者 / 组织
JinYuKiKK0
提供方
JinYuKiKK0
运行时
Python

工具数量

7

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

8

仓库热度

收录来源

1 个

MCP World

选型结论

CSMAR Data MCP 属于数据服务类 MCP Server,公开资料标注 7 个工具,通过stdio 本地进程接入,客户端适配情况以官方文档为准,有可以直接复制的安装命令;接入前先确认权限范围。

分类

数据服务

传输方式

stdio

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

安装命令

uv run csmar-mcp --account YOUR_ACCOUNT --password YOUR_PASSWORD

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Python,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 7 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

CSMAR MCP

面向 Agent 工作流的精简 MCP 服务器:提供 CSMAR 元数据发现、查询可行性探测,以及本地物化。

对外接口

工具

  1. csmar_list_databases

确定性枚举已购买的数据库。命中元数据缓存时零 API 调用。

  1. csmar_list_tables

确定性枚举指定数据库下的表。命中元数据缓存时零 API 调用;若持旧缓存撞上 not_purchased 会自动失效并重取一次。

  1. csmar_get_table_schema

返回纯表结构与字段元数据,不返回样本行。命中元数据缓存时零 API 调用。

  1. csmar_bulk_schema

一次性获取多个 table_code 的表结构(上限 20 个)。cache-first:已缓存的条目零 API 调用,只有真正的 miss 会并发(上限 4)打 CSMAR。首选,避免重复调用 csmar_get_table_schema。

  1. csmar_probe_query

对查询进行预检,返回 validation_id、query_fingerprint、行数、少量样本、无效列,以及物化可行性。

  1. csmar_materialize_query

按 validation_id 将先前预检过的查询物化为本地文件。

  1. csmar_refresh_cache ⚠️ 危险工具

显式失效元数据缓存(databases / tables / schema / all,可选指定 key)。仅在用户明确要求刷新时调用 —— 例如用户怀疑表结构变更或新购了数据库。调用后后续元数据查询会直接打受限流的 CSMAR API,绝不可在常规探索中预调用。

设计原则

  • 每个工具职责单一。
  • JSON 输出精简:只返回下一步所需字段。
  • 面向修复的错误:code、message、hint,以及可选的 retry_after_seconds、suggested_args_patch。
  • 日期区间只做格式与顺序校验,随后原样透传给 SDK。
  • 查询的预检与物化通过 validation_id 串联。
  • 运行时状态持久化在 SQLite 中,路径默认为 /csmar_mcp_cache/state.sqlite3,跨工作目录的会话天然共享同一份缓存。

工具示例

csmar_list_databases

{}

csmar_list_tables

{
  "database_name": "股票市场交易"
}

csmar_get_table_schema

{
  "table_code": "FS_Combas"
}

csmar_bulk_schema

{
  "table_codes": ["BANK_Index", "BANK_Loan", "BANK_CreditRisks"]
}

csmar_refresh_cache

{
  "namespace": "schema",
  "key": "BANK_Loan"
}

csmar_probe_query

{
  "table_code": "FS_Combas",
  "columns": ["Stkcd", "Accper", "Typrep"],
  "condition": "Stkcd='000001'",
  "start_date": "2010-01-01",
  "end_date": "2024-12-31",
  "sample_rows": 2
}

csmar_materialize_query

{
  "validation_id": "validation_1234567890",
  "output_dir": "D:/tmp/csmar"
}

运行时默认值

  • lang = "0"
  • belong = "0"
  • poll_interval_seconds = 3
  • poll_timeout_seconds = 900
  • cache_ttl_minutes = 4320(即 3 天,对业务查询缓存 probes / validations / downloads 生效)
  • metadata_ttl_days = 30(元数据缓存 databases / tables / schema 的默认 TTL,可用 CSMAR_MCP_METADATA_TTL_DAYS 覆盖)
  • rate_limit_cooldown_minutes = 30(上游限流冷却窗口,与业务缓存 TTL 解耦)
  • state_dir = /csmar_mcp_cache/(随包而非工作目录,天然跨会话共享;可用 CSMAR_MCP_STATE_DIR 环境变量显式覆盖)

缓存与限流策略

CSMAR 后端每日 API 配额非常严苛,MCP 的核心策略是把绝大多数调用挡在本地缓存层,远程调用只用于真正必须拉数的 probe_query / materialize_query 以及首次的元数据拉取。

缓存分层

命名空间用途默认 TTL说明
databases / tables / schema元数据30 天表结构长期不变;cache hit 完全不打 CSMAR
probes / validations / downloads业务查询结果3 天覆盖同一查询在短期内的重复访问
rate_limit_cooldowns上游限流冷却30 分钟(固定)与业务 TTL 解耦,避免误锁 3 天

跨目录共享

缓存 SQLite 文件固定在 csmar_mcp 包目录下的 csmar_mcp_cache/state.sqlite3,不跟随 cwd。在任何目录启动 MCP 会话都共享同一份缓存 —— 这是把限流风险降到最低的关键前提。

持旧缓存自愈

若 Agent 拿着过期的 databases 缓存去请求某个未购库,list_tables / get_table_schema 会捕获 not_purchased / database_not_found / table_not_found,自动失效 databases 缓存并重取一次上游,单点配额消耗换来整条链路的一致性。

Agent 最佳实践

  • 批量需要多个表结构时优先用 csmar_bulk_schema,合并为一次 tool call。
  • 不要在无明确理由的情况下调用 csmar_refresh_cache,它会强制穿透到 CSMAR API。

环境要求

  • Python >= 3.12
  • uv

快速开始

uv sync
uv run csmar-mcp --account YOUR_ACCOUNT --password YOUR_PASSWORD

MCP 配置

{
  "mcpServers": {
    "csmar": {
      "command": "uv",
      "args": [
        "--directory",
        "D:\\Developments\\PythonProject\\CSMAR-Data-MCP",
        "run",
        "csmar-mcp",
        "--account",
        "YOUR_ACCOUNT",
        "--password",
        "YOUR_PASSWORD"
      ]
    }
  }
}

开发:lint 与钩子

  • 安装开发依赖:uv sync --group dev
  • 本地 lint:uv run python scripts/check.py(默认只检查;--fix 模式跑 ruff 自动修复 + 格式化)
  • 启用本地 git 钩子(一次性,基于 pre-commit framework):
  uv run pre-commit install                       # 装 pre-commit 钩子:commit 前跑 --fix
  uv run pre-commit install --hook-type pre-push  # 装 pre-push 钩子:push 前跑 check-only

配置见仓内 .pre-commit-config.yaml。pre-commit framework 原生做 stash-and-restore,partial stage 安全。

  • CI:.github/workflows/lint.yml 在 push 与 pull_request 上跑同一套 scripts/check.py
  • 扫描范围:csmar_mcp 与 tests,遗留 SDK csmarapi/ 排除在外

说明

  • 服务器在鉴权过期时会自动重新登录并重试一次。
  • 预检与物化流程尽量复用缓存,以缓解上游限流。
  • 工具调用会审计到本地 SQLite,包含请求参数、结果摘要与上游错误元数据。
  • 无效的 database_name 或 table_code 会返回面向修复的错误与可执行的修复建议。
  • 工具响应不返回完整数据集。

工具与能力

工具数量

7

资源数量

0

提示词数量

0

能力标签

元数据查询Python本地部署数据物化Agent工作流数据库管理查询预检

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

用自然语言查库

不用手写 SQL,直接问数据,让模型组织查询语句。

数据巡检

定期拉指标、做对比,把异常项整理成一段说明。

打通业务数据

把数据库、数仓和接口接进同一个上下文,减少导出再上传。

选择建议

值得选的地方

  • 只提供 7 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 Python,换机器要重新装一遍。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在数据服务场景里让模型直接调用外部能力的人。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
CSMAR Data MCP

MCP World · 本页

7stdio有1 个2026-05-17
Memory 9d25f64e

MCP World

9未说明未标注1 个2026-05-17
Prisma MCP Server

MCP World

0stdio有3 个2026-05-17
Astr Bot

MCP World

0stdio有1 个2026-05-17
Getzep MCP

MCP World

9stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

CSMAR Data MCP 怎么安装?

公开资料给出的安装命令是 uv run csmar-mcp --account YOUR_ACCOUNT --password YOUR_PASSWORD,运行环境为 Python。装完后按客户端要求写进 MCP 配置,重启客户端生效。

CSMAR Data MCP 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Python;保存后完全退出客户端再打开,配置才会生效。

CSMAR Data MCP 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

CSMAR Data MCP 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

CSMAR Data MCP 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP