MoneyBin MCP Server
使用说明(Markdown 要点)
-
项目简介
- MoneyBin 的 MCP 服务器实现,负责托管和管理资源(Resources)、注册和执行工具(Tools)、定义与渲染提示模板(Prompts),并通过 JSON-RPC 与 LLM 客户端进行通信。服务器端负责会话管理、能力声明与访问控制,支持多种传输协议(如 stdio、SSE、WebSocket/HTTP 模拟模式等),为本地化的 AI 助手提供安全、可扩展的上下文服务框架。
- 服务器核心通过 FastMCP 框架实现,提供了完整的工具、资源和提示模板的注册、执行与返回结构,并将 DuckDB 作为后端数据源来支撑查询和数据分析。
-
主要功能点
- MCP 核心能力
- 资源端点(Resources):提供只读数据端点,如 schema/tables、schema/{table}、accounts/summary、transactions/recent、w2/{year} 等,以 JSON 形式输出。
- 工具端点(Tools):实现对数据的查询、列出表、查询交易、获取账户余额、获取 W-2 汇总等,可通过 JSON 输出查询结果。
- 提示模板(Prompts):提供对话引导模板,如导入数据、分析开支、预算设定、月度回顾、异常检测、税务准备、账户概览等。
- 数据与权限
- DuckDB 为只读模式默认,写操作通过专用写工具(write_tools)并经过隐私与权限校验(如写入到 user/raw 模式的表)。
- 支持对传输与输出进行截断,避免返回超大输出,以及对输出数据进行安全控制。
- 服务器与客户端交互
- 使用 JSON-RPC 风格的请求/响应,客户端通过 MCP 接口调用工具、读取资源、获取 Prompts 等。
- 支持多种传输协议(stdio、SSE、streaming HTTP 等,按实现细节可变),以适配不同客户端的接入方式。
- 数据源与后端
- DuckDB 作为核心数据仓库,提供只读查询、以及在需要时的短时写连接来提交变更(例如导入和转换后再回到只读状态)。
- 与 MoneyBin 的数据任务(提取、加载、dbt 转换等)紧密整合,支持本地化/私有化部署模式。
- MCP 核心能力
-
安装与运行
- 依赖与环境
- 需要 Python 3.11+,以及本仓库 README 的本地工具链(如 uv、DuckDB、dbt、Jupyter、Streamlit 等)所需组件。
- 通过仓库提供的 CLI 命令入口来启动 MCP 服务,例如 moneybin mcp serve。
- 启动 MCP 服务
- 直接通过 MoneyBin 的 CLI 启动:moneybin mcp serve
- 或指定传输方式:moneybin mcp serve --transport sse(示例,支持 stdio、sse、streamable-http 等)
- 配置与接入
- MCP 客户端需要的配置信息为 JSON,包含服务器名称、启动命令及参数等信息,以便连接与注册客户端服务。下方给出示例配置要点(非代码块,便于理解):
- server: MoneyBin
- command: uv
- args: ["run", "--directory", "/path/to/moneybin", "moneybin", "mcp", "serve"]
- transport: stdio 或 sse(客户端可选不同传输方式)
- 注:此配置用于 MCP 客户端建立与 MCP 服务端的连接,实际客户端不需要修改服务器端实现细节。
- MCP 客户端需要的配置信息为 JSON,包含服务器名称、启动命令及参数等信息,以便连接与注册客户端服务。下方给出示例配置要点(非代码块,便于理解):
- 依赖与环境
-
基本使用方法
- 运行与接入
- 启动 MCP 服务器后,LLM 客户端通过 JSON-RPC 调用工具、获取资源、获取 Prompts,并读取返回的 JSON 数据。
- 客户端可以通过配置指定服务器进程的启动方式(如上面的 command/args),以确保与 MCP 服务器建立连接。
- 常用任务
- 查询账户、交易、余额等数据时,使用相应的资源与工具接口。
- 使用 Prompts 指导 AI 的工作流,如导入数据、分析支出、审计订阅、年度回顾等。
- 安全与权限
- 只读查询在默认情况下被开启,敏感写操作通过写工具进行,且对目标 schema 做限制,确保数据安全。
- 支持多会话并发,DuckDB 的只读连接可以并发读取,写操作通过短时连接实现。
- 运行与接入
-
你可以期待的结果
- 稳定地为本地 AI 助手提供金融数据的上下文与分析能力。
- 将资源、工具、提示模板统一暴露给客户端,以实现标准化的交互模式。
-
额外说明
- 该实现包含了完整的 MCP 服务器端代码、资源、工具、提示模板以及对应的测试用例,覆盖从服务器生命周期、数据库连接管理、数据模型、隐私与查询权限、到 CLI 集成等多方面功能。