mcpField
M
Manager.io MCP

Manager.io MCP

本地服务
github.com金融数据112 周前更新

关于 Manager.io MCP

Manager.io MCP 将 AI 客户端连接到 Manager.io 记账 API,默认只读,也可按范围启用特定会计写入操作。

主要功能

  1. 01搜索记账记录和报告
  2. 02默认启用只读工具
  3. 03可选任务型写入工具
  4. 04按范围限制写入和删除
  5. 05阻止访问部分高风险路径

适用场景

  1. 01查询发票和账户余额
  2. 02记录客户或供应商付款
  3. 03开具销售和采购发票

MCP 相关

这是一个 MCP 服务,向 MCP 客户端提供 Manager.io 记录和报告,并可选启用按范围控制的记录创建、更新或删除工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"flumpiey-manager": {
"command": "uvx",
"args": [
"manager-mcp"
],
"env": {
"MANAGER_API_URL": "<MANAGER_API_URL>",
"MANAGER_API_KEY": "<MANAGER_API_KEY>",
"MANAGER_MCP_WRITE_SCOPES": "<MANAGER_MCP_WRITE_SCOPES>",
"MANAGER_MCP_DELETE_SCOPES": "<MANAGER_MCP_DELETE_SCOPES>"
}
}
}
}
启动命令uvx manager-mcp
需要配置的环境变量
MANAGER_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,parties
MANAGER_MCP_DELETE_SCOPESComma-separated delete scopes (never implied by write scopes)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypimanager-mcp0.2.6

工具

10

收录的工具列表 · 更新于 2 周前

此工具无需参数。

详细介绍

Manager.io

manager-mcp

面向可自托管的 Manager.io 的 MCP 服务:向 AI 咨询发票、余额和账簿。

License: MIT Python MCP CI PyPI

什么是 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): 服务会在 MCP serverInfo.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
访问令牌
  1. 在 Manager 中打开设置 → 访问令牌。
  2. 创建令牌,并将其值复制到 MANAGER_API_KEY。
  3. 将 MANAGER_API_URL 设置为 API 基础 URL(桌面版通常为 http://127.0.0.1:55667/api2)。

manager-mcp 会将令牌作为 X-API-KEY 标头发送。完整操作指南:访问令牌。

快速开始

使用 uvx 运行 PyPI 软件包:

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 插件。

  1. 将克隆目录符号链接或复制到 ~/.cursor/plugins/local/manager-mcp(Windows:%USERPROFILE%\.cursor\plugins\local\manager-mcp)。
  2. 重新加载窗口。
  3. 在 manager-mcp 上打开 Plugins → Configure。设置 Manager API URL 和 Manager API key。如需只读,请将 Write scopes / Delete scopes 留空;否则可粘贴 CSV,例如 quotes 或 quotes,orders。
  4. 在 Customize / MCP 下确认已启用 manager MCP 服务。

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 或更高版本。

  1. 打开 Claude Desktop → Settings → Extensions。
  2. 打开 Advanced settings → Install Extension…
  3. 选择 mcpb.mcpb。检查权限,输入 Manager API URL 和 Manager API key,然后点击 Install。
  4. 如需只读,请将 Write scopes 和 Delete scopes 留空。
  5. 如果工具未显示,请重启 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_supplierparties设置单个资源对应的往来方
issue_sales_invoicesales开具包含行项目的发票
issue_purchase_invoicepurchases开具采购发票
issue_quotequotes开具销售或采购报价单
convert_quote_to_invoicequotes + sales将报价单转换为发票
record_customer_paymentbanking收款并分配至发票
record_supplier_paymentbanking付款并分配至发票
record_expensepayroll 和/或 purchases费用报销申请或采购发票
transfer_between_accountsbanking账户间转账
post_journal_entryledger通用日记账分录
void_document对应的删除范围按资源名称和键作废
record_customer_depositbanking发票创建前记录押金
issue_deposit_invoicequotes押金单据(报价单)
apply_deposit_to_invoiceledger通过日记账分录应用押金

复合工具的请求体在注明时使用 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)
quotessales_quotes、purchase_quotes
orderssales_orders、purchase_orders
partiescustomers、suppliers
itemsinventory_items、non_inventory_items
salessales_invoices、credit_notes、delivery_notes
purchasespurchase_invoices、debit_notes、goods_receipts
bankingreceipts、payments、inter_account_transfers、bank_accounts
payrollemployees、payslips、expense_claims
ledgerjournal_entries、depreciation_entries、amortization_entries

仅使用建议范围的示例:

"MANAGER_MCP_WRITE_SCOPES": "banking,sales,parties",
"MANAGER_MCP_DELETE_SCOPES": "sales"

**拒绝列表(始终禁止):**访问令牌表单、科目表 / *-account-form(银行或现金除外)、银行对账、客户门户、期初余额、税码、汇率、货币、自定义字段/按钮、主题、电子邮件模板/设置。

客户预收款工作流

预收款不是收入。交付前收到的款项不得记入收入账户。请与会计师确认税务/增值税处理方式。

  1. 确保 Manager 中存在 Customer deposits 银行/现金账户(Settings → Bank and Cash Accounts)。
  2. record_customer_deposit - 将现金记入该账户。如果账户不存在,该工具会返回 precondition_failed,并提供准确的设置步骤(选项 A:仅提供指引,不会自动创建)。
  3. issue_deposit_invoice(可选)- 为客户生成一份采用报价样式的预收款单据。
  4. 开具正式发票时使用 issue_sales_invoice。
  5. 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。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。