SuperAPI AI 工具集

mercury-multiorg-mcp

mercury-multiorg-mcp 是一个非官方、只读的 MCP 服务器,用于在同一个 AI 会话中访问多个 Mercury 银行组织。由于 Mercury API 令牌只能在单个组织内创建,该服务器为每个组织保存一个只读令牌,并通过显式的实体键路由每次工具调用。它支持查询余额、交易、对账单、卡片、发票、资金管理以及 1099 预申报检查等。服务器仅使用 GET 端点,无法移动资金或修改任何内容;仅通过 stdio 通信,不开放网络监听;令牌仅从环境变量读取,且错误和日志中最多只显示令牌最后四个字符。该工具适用于需要跨多个 Mercury 组织进行只读财务数据查询的本地 AI 客户端,如 Claude Code、Claude Desktop、Codex CLI、Cursor、VS Code、Gemini CLI 等。

访问官网

工具介绍

mercury-multiorg-mcp 是一个非官方、只读的 MCP(Model Context Protocol)服务器,旨在让一个 AI 会话同时访问多个 Mercury 银行组织。Mercury 的 API 令牌只能在单个组织内创建,因此该服务器为每个组织持有一个只读令牌,并通过显式的实体键(entity key)路由每次工具调用。

用途

该服务器主要用于跨多个 Mercury 组织进行只读的财务数据查询,包括余额、交易、对账单、卡片、发票、资金管理(treasury)以及 1099 预申报检查。它不提供任何写入或资金移动功能。

主要能力

  • 只读:仅实现 GET 端点,没有代码路径可以移动资金、编辑收款人或更改任何内容。
  • 仅 stdio:服务器从不打开网络监听器,不提供 HTTP 或 SSE 传输。
  • 显式实体:调用 list_entities 可发现实体键。每个访问 Mercury 的工具都需要显式实体,并在成功结果中标识该实体。list_entities 和 server_info 不需要实体参数。没有默认实体。
  • 令牌保留在环境中:注册表为每个组织指定一个环境变量(必须以 MERCURY_TOKEN_ 开头),服务器只读取该环境变量。错误和日志中最多只包含令牌的最后四个字符。
  • 仅限 Mercury 主机:--api-base / MERCURY_API_BASE 必须是 https://api.mercury.com、https://api-sandbox.mercury.com 或回环模拟地址,除非在命令行传递 --allow-custom-api-base。
  • 字节限制:每个请求拒绝压缩(Accept-Encoding: identity)。JSON/PDF 读取在读取前拒绝非 identity 编码。PDF 限制为 10 MiB,JSON 限制为 32 MiB,在流式传输时对实际接收的字节强制执行。
  • 完整或报错:遍历在请求的限制或 API 结束时停止。缺失/错误的页面对象会失败;可选终端 nextPage 可以缺失或为 null。完全重复的 ID 会被丢弃并计数;内容冲突会失败。需要超过 200 页的遍历会失败。
  • 窗口化数据源完整遍历:Mercury 未记录事件或资金管理交易的排序键,因此客户端窗口(list_events 的 since、list_treasury_transactions 的 start/end)会遍历整个有界数据源(90 天的事件;资金管理账本最多 200 页),在此处过滤并按最新优先排序,然后应用 limit。
  • 二进制文档保留在内存中:PDF 以嵌入的 application/pdf blob(base64)返回,从不写入磁盘。
  • 路径 ID 验证:每个成为请求路径一部分的 ID 必须是单个安全段。
  • 启动错误:缺失或格式错误的注册表、不可读文件、错误的 --env-file 或不允许的 API 主机会向 stderr 打印一行并以状态 2 退出。
  • 从不提交任何文件:reportable_totals 是预申报交叉检查。Mercury 没有 1099 申报端点;申报在每个组织的仪表板中进行。

使用方式

从 PyPI 安装并运行固定版本(无需克隆):

uvx <package>@<version>

或

pip install 'mercury-multiorg-mcp==0.1.6'

这会将 mercury-multiorg-mcp 和 mercury-multiorg-mcp-keepalive 放入 PATH。需要 Python 3.11+ 和 uv(用于 uvx)。

从源代码或固定提交运行:

uvx --from git+https://github.com/dkaleganov/mercury-multiorg-mcp@<FULL_COMMIT_SHA> mercury-multiorg-mcp

配置步骤:

  1. 在每个 Mercury 组织中:组织切换器 → All Settings → Tokens → 创建 Read Only 令牌(无需 IP 允许列表)。
  2. 将 entities.example.yaml 复制到仓库外的私有位置,并列出您的组织(key、display_name、token_env;环境变量名必须以 MERCURY_TOKEN_ 开头)。
  3. 在启动服务器的环境中,为每个组织导出一个环境变量,名称与注册表中一致(.env.example 显示了名称)。配置仅从进程环境变量读取;除非传递 --env-file <path>,否则不读取 .env 文件。
  4. 可选:MERCURY_API_BASE=https://api-sandbox.mercury.com 与沙盒创建的令牌一起使用。
  5. 可选:--allow-documents(或 MERCURY_ALLOW_DOCUMENTS=1)以注册两个 PDF 工具。除非会话确实需要未编辑的文档,否则请关闭。

启动问题(缺失或格式错误的注册表、无效 YAML、不可读文件、错误的 API 基础)会向 stderr 打印一行并以状态 2 退出。Stdout 保留给 MCP 协议。

Mercury 在 45 天不活动后删除 API 令牌,并单独降级 45 天未使用的权限。请按计划运行 mercury-multiorg-mcp-keepalive,以免不活动时钟过期;有关 cron 和 launchd 片段,请参阅 docs/keepalive.md。

适用场景

该服务器适用于支持本地 stdio 服务器和协商协议版本的 MCP 客户端,例如 Claude Code、Claude Desktop、Codex CLI、Cursor、Windsurf 旧版 Cascade、VS Code、Gemini CLI 等。客户端主机必须能够读取私有注册表和环境文件。

限制

  • 非官方,与 Mercury 无关联或认可。
  • 只读,无法进行任何写入操作。
  • 仅 stdio,不提供 HTTP 或 SSE。
  • 需要显式实体,没有默认实体。
  • 令牌必须通过环境变量提供,且环境变量名必须以 MERCURY_TOKEN_ 开头。
  • 仅限 Mercury 主机,除非显式允许自定义 API 基础。
  • 有字节限制和分页限制。
  • 不提供 1099 申报功能,仅提供预申报交叉检查。
  • 需要 Python 3.11+ 和 uv(用于 uvx)。
  • 文档中未提供具体收费、价格或效果信息。