关于 invoicepdfs
invoicepdfs 是连接 AI Agent 与 InvoicePDFs API 的 MCP 服务,可渲染发票和贷项通知单、检查合规性并管理客户。它在启动时生成工具列表,直接呈现常用操作,同时支持发现和调用 API 的其他操作。
主要功能
- 01渲染发票和贷项通知单
- 02检查电子发票合规性
- 03管理客户
- 04按用途搜索 API 操作
- 05执行其他 API 操作
适用场景
- 01生成已完成渲染的发票 PDF
- 02按 EN 16931 检查文档
- 03查找并调用较少使用的 API 操作
MCP 相关
提供 InvoicePDFs API 的 MCP 工具,包括文档渲染、合规检查、客户操作,以及通用操作的发现和执行。它以 HTTPS 客户端的方式调用公共 API。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://invoicepdfs.com/mcpclaude mcp add --transport http invoicepdfs https://invoicepdfs.com/mcp{"mcpServers":{"invoicepdfs":{"type":"http","url":"https://invoicepdfs.com/mcp"}}}在 Cursor 中打开{"servers":{"invoicepdfs":{"type":"http","url":"https://invoicepdfs.com/mcp"}}}在 VS Code 中打开{"mcpServers":{"invoicepdfs":{"type":"http","url":"https://invoicepdfs.com/mcp"}}}{"mcpServers":{"invoicepdfs":{"serverUrl":"https://invoicepdfs.com/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://invoicepdfs.com/mcp需要授权工具
详细介绍
InvoicePDFs MCP 服务
为 AI Agent 提供 InvoicePDFs API 工具:渲染文档、检查文档是否符合电子发票合规要求、管理客户,以及按需访问 API 的其他部分。
它是一个普通的 HTTPS 客户端,用于访问公共 API。无需数据库,也无需部署额外服务;无需向 render.yaml 添加任何内容。它运行在你的计算机上。
使用方法
将以下内容添加到 MCP 客户端的配置中——Claude Desktop、Cursor,或任何支持通过 stdio 使用 MCP 的客户端:
{
"mcpServers": {
"invoicepdfs": {
"command": "npx",
"args": ["-y", "@invoicepdfs/mcp"],
"env": { "INVOICEPDFS_API_KEY": "inv_live_..." }
}
}
}
在 https://invoicepdfs.com 创建密钥。如果你要连接本地服务,可以通过 INVOICEPDFS_BASE_URL 覆盖主机。
API 密钥没有权限范围限制。 你提供给此服务的任何密钥都可以执行你账户能执行的所有操作,包括删除数据。这是密钥本身的特性,而不是此服务的特性——没有权限范围更窄的凭据可供使用。你的 MCP 客户端仍会在每次工具调用前征求确认。
提供的功能
共 30 个工具。其中 27 个工具直接对应常见操作,例如 document_render、document_create、compliance_check、customer_list 等;document_transition 通过一个 to 参数覆盖文档生命周期的七种状态,另外两个工具则可访问其他所有操作:
find_operation——按功能搜索全部 161 个操作,并获取每个匹配项的完整输入架构。call_operation——运行其中一个操作。
整个 API 均可访问;这里只列出常用操作。每个客户端对工具列表都有上限(Cursor 约为 40 个,Junie 为 100 个,Copilot 为 128 个),因此,若服务公布 161 个工具,要么会导致故障,要么会挤占你连接的其他所有服务。
document_render 会异步渲染并等待结果,因此返回的是已完成的渲染结果,而不是排队中的任务。渲染受 CPU 限制,并由单个工作进程提供服务,因此最好一次渲染一个,而不是并行启动多个任务。
构建方式
工具接口在启动时根据 openapi.json 构建。 src/operations.ts 会读取规范,并据此生成每个操作的名称、输入架构和说明;src/client.ts 是一个可以执行所有操作的执行器。向 API 添加端点后,这里无需修改代码即可新增可用工具。
它是在运行时构建的,而不是生成文件并提交到代码库中,这是有意为之。第一个版本生成了 16,000 行 TypeScript,每次 API 变更都必须重新生成并提交——这相当于另一份规范副本,也有自己的过时方式。在只启动一次的进程中,解析规范只需约 10 毫秒。
只有三项内容是手动编写的:
| 文件 | 无法从规范生成的原因 |
|---|---|
src/manifest.ts | 哪些操作会被提升为独立工具,以及它们的名称 |
src/tools/documentRender.ts | 异步默认行为和轮询,直到任务进入终止状态 |
src/tools/findOperation.ts | 搜索和延迟加载 |
工具说明取自 API 的处理程序文档字符串,并通过规范提供。这里不会重复编写这些说明,因为在两个地方维护同一操作的描述会导致内容逐渐不一致。
开发
npm install
npm test # drift and tool-surface checks
npm run build # compiles
npm pack # vendors openapi.json into the tarball, then cleans up
此代码库由生成流程维护。 源代码位于 InvoicePDFs API 单体仓库的 mcp/ 目录中,这里的每次提交都是从那里同步而来——因此,在此代码库中所做的更改会被下一次同步覆盖。请改为提交 Issue,这样更改就会在能够保留下来的地方完成。
之所以拆分,是因为这两部分适合放在不同的地方。代码应放在所描述的 API 旁边:工具说明来自 API 处理程序自身的文档字符串;如果清单中指定的操作不再存在于规范中,npm test 就会失败。这项保护只有在重命名处理程序的拉取请求中运行才有效。而 软件包 应位于公共代码库中,因为 npm 构建来源证明要求如此,也因为没有可读源代码支持的注册表条目价值有限。
因此,每次 API 变更时,漂移检查都会在上游运行,而此代码库负责发布。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。