关于 Manager.io MCP
Manager.io MCP 将 AI 客户端连接到 Manager.io 记账 API,默认只读,也可按范围启用特定会计写入操作。
主要功能
- 01搜索记账记录和报告
- 02默认启用只读工具
- 03可选任务型写入工具
- 04按范围限制写入和删除
- 05阻止访问部分高风险路径
适用场景
- 01查询发票和账户余额
- 02记录客户或供应商付款
- 03开具销售和采购发票
MCP 相关
这是一个 MCP 服务,向 MCP 客户端提供 Manager.io 记录和报告,并可选启用按范围控制的记录创建、更新或删除工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx manager-mcpMANAGER_API_URLManager API base URL (include /api2 when required)MANAGER_API_KEY密钥Access token from Manager Settings (sent as X-API-KEY)MANAGER_MCP_WRITE_SCOPESComma-separated write scopes: quotes,orders,parties,items,sales,purchases,banking,payroll,ledger,raw. Recommended: banking,sales,partiesMANAGER_MCP_DELETE_SCOPESComma-separated delete scopes (never implied by write scopes)本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
10收录的工具列表 · 更新于 2 周前
此工具无需参数。
详细介绍
manager-mcp
面向可自托管的 Manager.io 的 MCP 服务:向 AI 咨询发票、余额和账簿。
什么是 Manager.io?
Manager.io 是一款适用于 Windows、macOS 和 Linux 的免费可自托管会计软件(也提供 Cloud Edition)。它涵盖销售、采购、银行业务、薪资和完整账簿,并提供用于自动化的 HTTP API(/api2)。
本项目将该 API 接入 Model Context Protocol,让 Cursor、Claude、VS Code Copilot 及其他 MCP 宿主能够通过自然语言查询实时账簿。
Manager.io 实用链接:
此服务的功能
默认情况下为只读。你可以使用:
- 10 个读取工具 - 发现功能、六个可搜索集合、七个报表快捷方式
- 任务工具(可选启用) - 根据意图设计的写入操作,例如
record_customer_payment、issue_sales_invoice、record_customer_deposit(设置匹配的写入范围后注册) - 已弃用的 CRUD 工具 - 在 0.3.0 之前,按资源划分的
create_*/update_*/delete_*仍会在相应范围下注册;建议优先使用任务工具 raw备用入口 - 为高级用途恢复完整的 CRUD 工具集- 严格拒绝列表 - 访问令牌、科目表表单、税务/货币、电子邮件模板等类似的高风险路径,即使启用写入也会保持屏蔽
传输方式为 stdio。不提供 HTTP 服务。使用 uv / uvx 时无需全局安装。
品牌标识 / 图标
- stdio 宿主(Cursor、通过
mcp.json配置的 Claude Desktop): 服务会在 MCPserverInfo.icons中提供 Manager 品牌图标(内嵌 PNG 数据 URI,并附带 GitHub 原始 HTTPS 备用链接)。 - Cursor 插件:
.cursor-plugin/plugin.json使用docs/manager-icon.svg。 - Claude Desktop Extension: 打包
mcpb/(包含icon.png)。请参阅下方的“安装”→“Claude Desktop”。 - Claude.ai 远程连接器: Claude.ai 会忽略
serverInfo.icons,而使用连接器 URL 的根域名网站图标。如果之后托管远程 MCP,请在可注册域名的根目录提供docs/favicon.ico(例如,https://mcp.acme.com/...应使用https://acme.com/favicon.ico)。
要求
- Python ≥ 3.10(由
uvx自动安装) - uv(提供
uvx) - 可访问的 Manager.io API:
MANAGER_API_URL+MANAGER_API_KEY
访问令牌
- 在 Manager 中打开设置 → 访问令牌。
- 创建令牌,并将其值复制到
MANAGER_API_KEY。 - 将
MANAGER_API_URL设置为 API 基础 URL(桌面版通常为http://127.0.0.1:55667/api2)。
manager-mcp 会将令牌作为 X-API-KEY 标头发送。完整操作指南:访问令牌。
快速开始
uvx manager-mcp
粘贴下方的客户端配置,设置 MANAGER_API_URL / MANAGER_API_KEY,重启宿主程序,然后提问:“谁欠我钱?” 或 “显示银行余额。”
从 Git 克隆(开发版):uvx --from git+https://github.com/flumpiey/manager-mcp manager-mcp 或 uv run --directory /path/to/manager-mcp manager-mcp。
安装
以下配置会从 PyPI 拉取 manager-mcp。如需只读,请不要设置写入范围环境变量。
Cursor
**插件(在配置界面中设置 URL、密钥和范围):**本仓库通过 .cursor-plugin/plugin.json 和根目录中的 mcp.json 作为 Cursor 插件。
- 将克隆目录符号链接或复制到
~/.cursor/plugins/local/manager-mcp(Windows:%USERPROFILE%\.cursor\plugins\local\manager-mcp)。 - 重新加载窗口。
- 在
manager-mcp上打开 Plugins → Configure。设置 Manager API URL 和 Manager API key。如需只读,请将 Write scopes / Delete scopes 留空;否则可粘贴 CSV,例如quotes或quotes,orders。 - 在 Customize / MCP 下确认已启用
managerMCP 服务。
Marketplace 列表需单独提交至 cursor.com/marketplace/publish。
**手动配置 mcp.json:**项目级 .cursor/mcp.json 或用户级 ~/.cursor/mcp.json。
从 PyPI 安装:
{
"mcpServers": {
"manager": {
"type": "stdio",
"command": "uvx",
"args": ["manager-mcp"],
"env": {
"MANAGER_API_URL": "http://127.0.0.1:55667/api2",
"MANAGER_API_KEY": "your-token"
}
}
}
}
本地可编辑安装(开发):
{
"mcpServers": {
"manager": {
"type": "stdio",
"command": "uv",
"args": ["run", "--directory", "/path/to/manager-mcp", "manager-mcp"],
"env": {
"MANAGER_API_URL": "http://127.0.0.1:55667/api2",
"MANAGER_API_KEY": "your-token"
}
}
}
}
可在 env 块中设置可选的范围写入权限:
"MANAGER_MCP_WRITE_SCOPES": "quotes",
"MANAGER_MCP_DELETE_SCOPES": "quotes"
保存后重启 Cursor。在 MCP 设置中确认 manager 已启用。
Claude Desktop
**桌面扩展(.mcpb):**从 GitHub Releases 下载 mcpb.mcpb。请使用 v0.2.6 或更高版本。
- 打开 Claude Desktop → Settings → Extensions。
- 打开 Advanced settings → Install Extension…
- 选择
mcpb.mcpb。检查权限,输入 Manager API URL 和 Manager API key,然后点击 Install。 - 如需只读,请将 Write scopes 和 Delete scopes 留空。
- 如果工具未显示,请重启 Claude Desktop。
从克隆目录自行构建扩展包:
npx @anthropic-ai/mcpb pack mcpb
在 Windows 上,双击通常不会有任何反应;将文件拖入聊天会把它作为附件添加到对话中,而不是安装扩展。请在 Settings 中使用 Install Extension…。
**手动配置 mcp.json:**编辑 Claude Desktop 配置,然后重启应用。
| OS | 路径 |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
{
"mcpServers": {
"manager": {
"command": "uvx",
"args": ["manager-mcp"],
"env": {
"MANAGER_API_URL": "http://127.0.0.1:55667/api2",
"MANAGER_API_KEY": "your-token"
}
}
}
}
本地克隆:
{
"mcpServers": {
"manager": {
"command": "uv",
"args": ["run", "--directory", "/path/to/manager-mcp", "manager-mcp"],
"env": {
"MANAGER_API_URL": "http://127.0.0.1:55667/api2",
"MANAGER_API_KEY": "your-token"
}
}
}
}
Claude Code
通过 CLI 添加:
claude mcp add manager --env MANAGER_API_URL=http://127.0.0.1:55667/api2 --env MANAGER_API_KEY=your-token -- uvx manager-mcp
或者编辑 ~/.claude.json / 项目 MCP 配置:
{
"mcpServers": {
"manager": {
"command": "uvx",
"args": ["manager-mcp"],
"env": {
"MANAGER_API_URL": "http://127.0.0.1:55667/api2",
"MANAGER_API_KEY": "your-token"
}
}
}
}
VS Code / GitHub Copilot
在项目根目录创建 .vscode/mcp.json:
{
"servers": {
"manager": {
"type": "stdio",
"command": "uvx",
"args": ["manager-mcp"],
"env": {
"MANAGER_API_URL": "http://127.0.0.1:55667/api2",
"MANAGER_API_KEY": "your-token"
}
}
}
}
本地可编辑安装:
{
"servers": {
"manager": {
"type": "stdio",
"command": "uv",
"args": ["run", "--directory", "/path/to/manager-mcp", "manager-mcp"],
"env": {
"MANAGER_API_URL": "http://127.0.0.1:55667/api2",
"MANAGER_API_KEY": "your-token"
}
}
}
}
重新加载窗口。打开 Copilot Chat,确认 manager 工具可用。
Windsurf
编辑 ~/.codeium/windsurf/mcp_config.json(macOS/Linux),或使用 Windsurf MCP 设置界面:
{
"mcpServers": {
"manager": {
"command": "uvx",
"args": ["manager-mcp"],
"env": {
"MANAGER_API_URL": "http://127.0.0.1:55667/api2",
"MANAGER_API_KEY": "your-token"
}
}
}
}
保存后重启 Windsurf。
Zed
在 Zed 的 settings.json 中添加到 context_servers 下(也可通过 Agent Panel → settings 添加):
{
"context_servers": {
"manager": {
"command": "uvx",
"args": ["manager-mcp"],
"env": {
"MANAGER_API_URL": "http://127.0.0.1:55667/api2",
"MANAGER_API_KEY": "your-token"
}
}
}
}
Cline
编辑 Cline MCP 设置文件(通过 Cline MCP 界面找到 cline_mcp_settings.json):
{
"mcpServers": {
"manager": {
"command": "uvx",
"args": ["manager-mcp"],
"env": {
"MANAGER_API_URL": "http://127.0.0.1:55667/api2",
"MANAGER_API_KEY": "your-token"
}
}
}
}
Continue
在 .continue/config.yaml 中:
mcpServers:
- name: manager
command: uvx
args:
- manager-mcp
env:
MANAGER_API_URL: http://127.0.0.1:55667/api2
MANAGER_API_KEY: your-token
通用 / 任意 stdio MCP 宿主
任何能够启动 stdio MCP 服务的宿主:
| 字段 | 值 |
|---|---|
| 命令 | uvx |
| 参数 | manager-mcp |
| 环境变量 | MANAGER_API_URL、MANAGER_API_KEY(以及可选的写入范围) |
uvx manager-mcp
从克隆目录进行开发:uv run --directory /path/to/manager-mcp manager-mcp。
npx 只能运行 npm 包。这是一个 Python 包;请使用 uvx。
| 变量 | 必填 | 说明 |
|---|---|---|
MANAGER_API_URL | 是 | 不透明的基础 URL(需要时包含 /api2) |
MANAGER_API_KEY | 是 | 作为 X-API-KEY 发送;绝不记录日志 |
MANAGER_MCP_WRITE_SCOPES | 否 | 用逗号分隔的创建/更新域。留空 = 不允许写入。 |
MANAGER_MCP_DELETE_SCOPES | 否 | 仅用于删除的逗号分隔域。不会由 WRITE_SCOPES 隐式启用。 |
有效范围:quotes、orders、parties、items、sales、purchases、banking、payroll、ledger、raw。不支持通配符(*、all)。
建议(涵盖大多数簿记操作,且无需启用 82 个工具):
"MANAGER_MCP_WRITE_SCOPES": "banking,sales,parties",
"MANAGER_MCP_DELETE_SCOPES": "sales,banking"
未设置范围时的默认值:10 个工具。启用全部 9 个域范围及所有 CRUD 操作:最多 82 个工具。仅在需要完整 CRUD 逃生通道时使用 raw。
如果设置了旧版 MANAGER_MCP_ALLOW_WRITES / ALLOW_WRITES / MANAGER_MCP_WRITES,将直接失败。请改用范围变量。
参见 .env.example。在生产配置中,建议使用密钥管理器存储 API 密钥。
写入范围和任务工具
当 MANAGER_MCP_WRITE_SCOPES 中列出某个范围时,服务会为该域注册任务工具以及已弃用的 CRUD 对应工具。MANAGER_MCP_DELETE_SCOPES 可按域启用 void_document 和 delete_*。
任务工具(首选)
| 工具 | 范围 | 用途 |
|---|---|---|
create_customer、create_supplier | parties | 设置单个资源对应的往来方 |
issue_sales_invoice | sales | 开具包含行项目的发票 |
issue_purchase_invoice | purchases | 开具采购发票 |
issue_quote | quotes | 开具销售或采购报价单 |
convert_quote_to_invoice | quotes + sales | 将报价单转换为发票 |
record_customer_payment | banking | 收款并分配至发票 |
record_supplier_payment | banking | 付款并分配至发票 |
record_expense | payroll 和/或 purchases | 费用报销申请或采购发票 |
transfer_between_accounts | banking | 账户间转账 |
post_journal_entry | ledger | 通用日记账分录 |
void_document | 对应的删除范围 | 按资源名称和键作废 |
record_customer_deposit | banking | 发票创建前记录押金 |
issue_deposit_invoice | quotes | 押金单据(报价单) |
apply_deposit_to_invoice | ledger | 通过日记账分录应用押金 |
复合工具的请求体在注明时使用 Manager 原生 JSON。请复制 get_record 模板;不要自行编造字段名称。
已弃用的 CRUD(0.2.0 弃用,0.3.0 移除)
启用对应域范围后,仍会注册每种资源的 create_* / update_* / delete_*。除 create_customer / create_supplier 外,其描述均带有 [DEPRECATED in 0.2.0; use task tools] 前缀。在 MANAGER_MCP_WRITE_SCOPES 中设置 raw,即可注册不带弃用前缀的 CRUD 工具。
| 范围 | 资源(启用后可用 CRUD) |
|---|---|
quotes | sales_quotes、purchase_quotes |
orders | sales_orders、purchase_orders |
parties | customers、suppliers |
items | inventory_items、non_inventory_items |
sales | sales_invoices、credit_notes、delivery_notes |
purchases | purchase_invoices、debit_notes、goods_receipts |
banking | receipts、payments、inter_account_transfers、bank_accounts |
payroll | employees、payslips、expense_claims |
ledger | journal_entries、depreciation_entries、amortization_entries |
仅使用建议范围的示例:
"MANAGER_MCP_WRITE_SCOPES": "banking,sales,parties",
"MANAGER_MCP_DELETE_SCOPES": "sales"
**拒绝列表(始终禁止):**访问令牌表单、科目表 / *-account-form(银行或现金除外)、银行对账、客户门户、期初余额、税码、汇率、货币、自定义字段/按钮、主题、电子邮件模板/设置。
客户预收款工作流
预收款不是收入。交付前收到的款项不得记入收入账户。请与会计师确认税务/增值税处理方式。
- 确保 Manager 中存在 Customer deposits 银行/现金账户(Settings → Bank and Cash Accounts)。
record_customer_deposit- 将现金记入该账户。如果账户不存在,该工具会返回precondition_failed,并提供准确的设置步骤(选项 A:仅提供指引,不会自动创建)。issue_deposit_invoice(可选)- 为客户生成一份采用报价样式的预收款单据。- 开具正式发票时使用
issue_sales_invoice。 apply_deposit_to_invoice- 通过日记账分录将预收款余额转至发票(使用get_record克隆现有日记账)。
所需权限范围:banking、quotes(预收款单据)、ledger(转账)、sales(通过 MCP 开具正式发票)。
从 0.1.x 迁移
- 0.2.0:新增任务工具;CRUD 工具已弃用,但仍会在相应权限范围下提供。
- 0.3.0:移除 CRUD 工具(
create_customer/create_supplier除外)。请使用任务工具或raw权限范围。 - 将
MANAGER_MCP_WRITE_SCOPES更新为上述建议的精简权限范围,而不是启用所有领域。
工具
读取工具
| 工具 | 用途 | 期间(from_date / to_date) |
|---|---|---|
list_resources | 发现资源;报告 read_only 及当前可用的写入/删除权限范围 | 不适用 |
list_records | 搜索/分页查看精选集合 | 不适用 |
get_record | 通过 {path}-form/{key} 获取一条记录 | 不适用 |
aged_receivables | 未结应收款/客户账龄 | 可接受;此视图可能不支持 |
aged_payables | 供应商账龄 | 可接受;此视图可能不支持 |
bank_balances | 银行/现金余额快照 | 可接受;此视图可能不支持 |
trial_balance | 试算平衡表 | 转发为 fromDate / toDate |
profit_and_loss | 损益表 | 转发为 fromDate / toDate |
balance_sheet | 资产负债表 | 转发为 fromDate / toDate |
tax_summary | 税务汇总 | 可接受;此视图可能不支持 |
list_records / get_record 的集合:customers、suppliers、sales_invoices、purchase_invoices、chart_of_accounts、bank_accounts。
chart_of_accounts 仅支持列表/搜索(不支持获取单个表单)。
银行双路径(有意设计): bank_balances 用于回答“我的余额是多少?”;对 bank_accounts 使用 list_records / get_record,用于回答“查找 X 账户并显示详情”。
写入工具(已弃用)
仅针对已启用权限范围内的资源注册。优先使用上述任务工具。
| 模式 | 所需权限 | 备注 |
|---|---|---|
create_{stem} | 写入权限范围 | 在 0.2.0 中已弃用 |
update_{stem} | 写入权限范围 | 在 0.2.0 中已弃用 |
delete_{stem} | 删除权限范围 | 在 0.2.0 中已弃用;请使用 void_document |
Agent 技能
配套技能:skills/manager-accounting/SKILL.md。
Cursor 插件会从 skills/ 中发现此技能。不使用插件时,请将该文件夹复制或符号链接到 Agent 技能路径中。它会指示模型先调用 list_resources、在写入后进行验证,以及优先使用哪些报表工具。
开发
uv sync --extra dev
uv run manager-mcp
仅运行离线测试(respx)。无需连接在线 Manager:
uv run ruff check src tests
uv run pytest
GitHub Actions 矩阵:Python 3.10 和 3.12。
注意事项
- 一个进程 ↔ 一个
MANAGER_API_URL。不支持多实例路由。 - 共享主机上的多业务区分尚未验证。在通过在线多业务设置进行验证之前,不要声称支持多业务。
- 随附的
src/manager_mcp/spec/api2.json仅用于追溯来源;运行时始终访问在线 URL。 - ChatGPT Apps 需要托管的 HTTP MCP 端点。此程序包仅支持 stdio。
许可证
MIT。请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。