关于 iDoklad
iDoklad 是一款非官方 MCP 服务,可让 AI 助手连接捷克和斯洛伐克的开票账户。它默认只读,也可启用创建和管理单据、联系人及付款的工具。
主要功能
- 01列出并查看发票、形式发票和贷项通知单
- 02创建发票、形式发票和贷项通知单
- 03管理付款并发送邮件提醒
- 04查看业务统计、联系人和价目表
- 05下载单据 PDF
- 06默认启用只读模式
适用场景
- 01查找未付款或逾期发票
- 02沿用既有发票设置创建新发票
- 03查看收入、欠款方或增值税数据
- 04向逾期付款方发送提醒
MCP 相关
向兼容的 AI 客户端提供访问 iDoklad 数据和操作的 MCP 工具。写入工具默认关闭,可通过 IDOKLAD_READ_ONLY=false 启用。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
18收录的工具列表 · 更新于 4 天前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| page | integer | 否 | |
| status | enum | 否 | 付款状态。'overdue' = 未付款且已超过到期日。unpaid | paid | partially_paid | overdue |
| issuedTo | string | 否 | 开具日期截止(含当日)。 |
| pageSize | integer | 否 | |
| partnerId | integer | 否 | 客户的联系人 ID(参见 list_contacts)。 |
| issuedFrom | string | 否 | 开具日期起始(含当日)。 |
| documentNumber | string | 否 | 单据编号的一部分。 |
详细介绍
idoklad-mcp
适用于 iDoklad 的非官方 MCP 服务。iDoklad 是面向捷克和斯洛伐克的在线发票服务。 它支持 Claude、Codex、Cursor 和其他 AI 助手读取并创建 iDoklad 账户中的发票。
说明
本项目与 iDoklad 或 Seyfor, a. s. 无关联,也未获其认可。 🇨🇿 捷克语指南
警告
早期开发阶段(v0.4)。 工具及其输入仍可能发生变化。请参阅路线图。
你可以询问什么
- “哪些发票已逾期?”
- “ACME 今年付给我们多少钱?”
- “下载 Globex 最近一张发票的 PDF。”
- “哪些收到的发票我们还没付款?”
- “谁欠我最多?” / “今年的业绩比去年如何?”
- “距离必须注册增值税还差多少?”
- “为 ACME s.r.o. 创建一张发票:咨询 10 小时,每小时 1,500 CZK,14 天后到期。”(需要写入模式)
- “像上个月那样给 Globex 开发票,但改成 42 小时。”(从上一张发票复制币种、增值税和语言)
- “将发票 20260018 标记为今天已付款。”
- “为所有逾期发票发送付款提醒。”
- “为发票 20260015 开具贷项通知单,客户退回了 10 个许可证中的 2 个。”
要求
- iDoklad 套餐必须包含 API 访问权限:Oblíbený(Popular)或 Prémiový(Premium)。Free 和 Basic 套餐不提供 API。
- Node.js 22 或更高版本。
- 一个 MCP 客户端:Claude Desktop、Claude Code、Codex、Cursor、VS Code 等。
设置
1. 获取凭据
你需要三个值。获取它们大约需要五分钟。
Client ID 和 Client Secret,从 iDoklad 获取:
- 登录 app.idoklad.cz。
- 前往 Nastavení(Settings)→ API。
- 复制 Client ID 和 Client Secret。
这些凭据对应一家公司的账簿(agenda)和一位用户。
Application ID,从 iDoklad 开发者门户获取:
- 在 developer.idoklad.cz 创建账户。
- 在 Nová aplikace 下输入任意名称,并将 Flow 设为 ClientCredentials。然后点击 Uložit。
- 从列表中复制新应用的 Client Id。该值就是你的 Application ID。
重要
应用必须使用 ClientCredentials flow。如果使用 AuthorizationCode 应用,iDoklad 会拒绝登录,并返回
Invalid parameter application_id。
2. 将服务添加到 AI 客户端
将 ... 占位符替换为你的三个值。
Claude Code
claude mcp add idoklad \
-e IDOKLAD_CLIENT_ID=... \
-e IDOKLAD_CLIENT_SECRET=... \
-e IDOKLAD_APPLICATION_ID=... \
-- npx -y idoklad-mcp
Claude Desktop(一键安装)
- 从 Releases 下载最新的
idoklad-mcp-<version>.mcpb。 - 双击文件,或将其拖到 Claude Desktop → Settings → Extensions。
- 点击 Install,然后填写 Client ID、Client Secret 和 Application ID。
此扩展默认处于只读模式。你可以在设置中关闭此模式。
Claude Desktop(手动配置)
打开 Settings → Developer → Edit Config 并添加:
{
"mcpServers": {
"idoklad": {
"command": "npx",
"args": ["-y", "idoklad-mcp"],
"env": {
"IDOKLAD_CLIENT_ID": "...",
"IDOKLAD_CLIENT_SECRET": "...",
"IDOKLAD_APPLICATION_ID": "..."
}
}
}
}
之后重启 Claude Desktop。
Codex
添加到 ~/.codex/config.toml:
[mcp_servers.idoklad]
command = "npx"
args = ["-y", "idoklad-mcp"]
[mcp_servers.idoklad.env]
IDOKLAD_CLIENT_ID = "..."
IDOKLAD_CLIENT_SECRET = "..."
IDOKLAD_APPLICATION_ID = "..."
Cursor、VS Code 和其他客户端
在客户端的 MCP 设置中,使用与 Claude Desktop 示例相同的 command、args 和 env 值。
3. 试用
向助手询问 “我的 iDoklad 发票中,哪些尚未付款?”
配置
| 变量 | 必填 | 默认值 | 描述 |
|---|---|---|---|
IDOKLAD_CLIENT_ID | 是 | 从 iDoklad → Settings → API 获取 | |
IDOKLAD_CLIENT_SECRET | 是 | 从 iDoklad → Settings → API 获取 | |
IDOKLAD_APPLICATION_ID | 是 | 你在 developer.idoklad.cz 上的 ClientCredentials 应用的 Client Id | |
IDOKLAD_READ_ONLY | 否 | true | 设置为 false,以启用创建或更改数据的工具 |
IDOKLAD_DOWNLOAD_DIR | 否 | ~/Downloads | 下载的 PDF 保存位置 |
如需使用多家公司,请在不同名称下为每家公司各添加一次服务(例如 idoklad-firma-a 和 idoklad-firma-b),并分别使用对应公司的凭据。
默认只读
开箱即用时,该服务只能读取你的数据。若要允许助手创建或更改文档,请设置:
IDOKLAD_READ_ONLY=false
写入工具会明确标注,因此客户端可以在运行前请求你确认。
工具
单据:已开具发票、形式发票、贷项通知单、收到的发票。
| 工具 | 模式 | 功能 |
|---|---|---|
list_issued_invoices | 读取 | 列出已开具的发票(vydané faktury),按时间从新到旧排序。可按未付款、已付款、部分付款或逾期、客户、开具日期或编号筛选。 |
list_proforma_invoices | 读取 | 同上,适用于形式发票(zálohové faktury)。 |
list_credit_notes | 读取 | 同上,适用于贷项通知单(dobropisy)。 |
list_received_invoices | 读取 | 同上,适用于收到的发票(přijaté faktury),可按供应商筛选。 |
get_issued_invoice、get_proforma_invoice、get_credit_note、get_received_invoice | 读取 | 获取一份单据的完整详情:项目、合作方和总额。 |
get_document_pdf | 读取 | 将单据的 PDF 保存到“下载”文件夹,也可选择其他语言或包含付款信息。 |
create_issued_invoice | 写入 | 使用默认设置创建发票,也可复制之前发票的设置。支持货币(自动填入汇率)、语言、增值税税率和到期日。 |
create_proforma_invoice | 写入 | 同上,适用于形式发票(zálohové faktury)。 |
create_invoice_from_proforma | 写入 | 根据已付款的形式发票创建最终发票(vyúčtování zálohy)。 |
create_credit_note | 写入 | 对整张发票或选定项目开具贷项通知单,并注明原因。也可将贷项通知单与发票结清。 |
mark_document_paid | 写入 | 记录发票、形式发票或收到的发票已全额付款。 |
mark_document_unpaid | 写入 | 移除付款记录,使单据恢复为未付款状态。 |
send_document_email | 写入 | 通过 iDoklad 使用你的 iDoklad 邮件模板发送发票、形式发票或贷项通知单。 |
send_payment_reminder | 写入 | 使用你的 iDoklad 提醒模板,通过邮件发送逾期付款提醒(upomínka)。 |
send_payment_confirmation | 写入 | 通过邮件向客户发送已收到付款的确认信息。 |
业务概览
| 工具 | 模式 | 功能 |
|---|---|---|
get_business_stats | 读取 | 按月、季度或年份查看收入和成本;比较今年与去年;查看按逾期时长划分的逾期金额、期间增值税、增值税注册限额的完成进度,以及单据数量。 |
get_top_partners | 读取 | 查看最大的客户或最大的欠款方。 |
get_contact_stats | 读取 | 查看客户的付款情况:发票、已付款、未付款和逾期。 |
联系人和价目表
| 工具 | 模式 | 功能 |
|---|---|---|
list_contacts | 读取 | 按名称、IČO、DIČ 或电子邮件搜索联系人。 |
get_contact | 读取 | 获取单个联系人的完整详情。 |
create_contact | 写入 | 创建客户或供应商。 |
list_price_list_items | 读取 | 按名称或代码搜索价目表(ceník)。 |
其他所有内容
| 工具 | 模式 | 功能 |
|---|---|---|
get_codebook | 读取 | 查看货币、国家/地区、增值税税率、付款选项、你的银行账户、数字序列及其他列表。 |
search_api_docs | 读取 | 搜索完整的 iDoklad API 参考文档,该文档已随服务打包。 |
idoklad_api_request | 读取 / 写入 | 直接调用任意 iDoklad 端点,例如银行对账单、定期发票或库存。只读模式下仅允许 GET。 |
隐私与安全
- 服务运行在你的计算机上。你的凭据保存在本地客户端配置中,仅会发送给 iDoklad。
- 助手从 iDoklad 读取的数据(例如发票和联系人)会传递给你使用的 AI 模型,就像你在聊天中分享的其他内容一样。
- 请像对待密码一样保护你的 Client Secret。切勿将其提交到代码库或粘贴到聊天中。如需撤销,请在 iDoklad → Settings → API 中将其删除。
故障排除
| 消息 | 修复方法 |
|---|---|
Missing environment variables: … | 客户端配置中未设置三个凭据之一。 |
Invalid parameter application_id | 开发者门户中的应用未使用 ClientCredentials 流程,或者你复制了错误的值。请使用该应用的 Client Id。 |
iDoklad login failed (HTTP 400) | 检查 iDoklad → Settings → API 中的 Client ID 和 Secret。它们可能已重新生成。 |
HTTP 402 | 你的 iDoklad 套餐不包含 API,或者订阅已过期。 |
HTTP 429 | 你已达到 iDoklad 的速率限制:每分钟 200 个请求,月度配额则取决于你的套餐。服务会自动重试;请稍后再试。 |
路线图
- 已开具发票:列表、详情、创建
- 新发票的货币,以及复制之前的发票
- 形式发票、贷项通知单、已收到的发票
- 联系人和价目表项目
- 付款(标记为已付款或未付款)
- 下载 PDF,以及通过电子邮件发送单据
- 通用工具:调用任意 iDoklad 端点、搜索 API 文档
- 创建形式发票和贷项通知单,以及根据已付款的形式发票创建发票
- 业务概览:收入、欠款方、增值税、增值税注册限额
- 付款提醒和付款确认
- 部分付款
- 根据 PDF 创建供应商发票(iDoklad 收件箱)
- 银行匹配、编辑和删除单据、定期发票
- Claude Desktop 一键安装,以及在 MCP Registry 中上架
- 支持通过 iDoklad 登录(OAuth)的托管版本,适用于 claude.ai 和 ChatGPT
欢迎在 问题 中提出想法和需求。
开发
git clone https://github.com/honzsik/idoklad-mcp.git
cd idoklad-mcp
npm install
cp .env.example .env # add your credentials
| 命令 | 功能 |
|---|---|
npm test | 使用模拟 API 运行单元测试,不进行网络调用 |
npm run test:live | 对你的真实 iDoklad 账户执行只读检查(使用 .env) |
npm run smoke | 通过真实 MCP 连接调用读取工具 |
npm run evals | 检查 Claude 是否能针对 30 条捷克语和英语请求选择正确的工具(见下文) |
npm run inspect | 在 MCP Inspector 中打开这些工具 |
npm run build | 编译到 dist/ |
npm run build:api-index | 根据 iDoklad 文档刷新打包的 API 参考 |
npm run build:mcpb | 构建 Claude Desktop 扩展(idoklad-mcp-<version>.mcpb) |
评测
evals/ 用真实请求检查 Claude 是否能选择正确的工具并提供正确的输入,例如 “哪些发票已逾期?” 或 “像上次一样给 Globex 开具发票,但按 42 小时计算”。每个用例都会针对一家虚构的 iDoklad 公司进行简短对话,因此不会触及任何真实数据。它还会检查 Claude 是否会在未被要求时发送电子邮件或更改单据。
npm run evals # all cases
npm run evals -- --only overdue-cs,mark-paid-cs
npm run evals -- --repeat 3 # models vary; run each case 3 times
你需要在 .env 中设置 ANTHROPIC_API_KEY,并使用 console.anthropic.com 上拥有预付费 API 额度的账户。Claude 订阅不包含 API 额度。每次完整运行的费用约为 $1–2。更改工具名称、描述或输入后请运行评测。
如果你在 Claude Code 中打开此文件夹,它会读取 .mcp.json,并以 idoklad-dev 的名称从源代码运行服务。
提示
对于任何会写入数据的操作,请在 iDoklad 中使用单独的测试公司,以免测试发票占用真实发票编号。
代码位于 src/:
client.ts:iDoklad API 客户端,负责登录、令牌续期和重试。filter.ts:iDoklad 筛选语法。tools/:MCP 工具。
欢迎提交拉取请求。提交前请运行 npm run typecheck && npm test。
发布
推送版本标签会运行 release.yml。它会发布到 npm,创建一个附带 Claude Desktop 扩展的 GitHub 发布,并发布到 MCP Registry:
npm version minor # or patch / major: updates package.json and creates a tag
git push --follow-tags
创建标签前,请将 CHANGELOG.md 中的变更移到新版本下。
许可证
MIT © Jan Vítek
捷克语
idoklad-mcp 是适用于 iDoklad 的非官方 MCP 服务。它允许 AI 助手(Claude、Codex、Cursor 等)读取和开具 iDoklad 中的发票。本项目与 Seyfor, a. s. 无关联。
准备工作
- iDoklad 支持 API 访问的套餐:Oblíbený 或 Prémiový。Zdarma 和 Základní 套餐不支持 API。
- Node.js 22 或更高版本。
操作步骤
- 在 iDoklad 中打开 设置 → API,并复制 Client ID 和 Client Secret。
- 在 developer.idoklad.cz 注册账号,并创建一个 Flow: ClientCredentials 的新应用。将其 Client Id 用作
IDOKLAD_APPLICATION_ID。 - 按照上方的说明将服务添加到 AI 客户端。
- 询问助手:“iDoklad 中哪些发票已逾期?”
默认情况下,服务仅读取数据。将变量 IDOKLAD_READ_ONLY=false 设置为 false 即可启用开具发票功能。
如果 iDoklad 报告 Invalid parameter application_id,说明你创建的应用使用了 ClientCredentials 以外的流程。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。