mcpField
M
mcp-cfdi-mx

mcp-cfdi-mx

本地服务
github.com/cmendezs金融数据07 周前更新

关于 mcp-cfdi-mx

mcp-cfdi-mx 是面向墨西哥电子发票的 Python MCP 服务,供 Agent 和应用构建、验证及签署 CFDI 4.0 与 Pagos 2.0 文档。它不连接或提交到 PAC,支持本地签名或生成未签名文档。

主要功能

  1. 01生成 CFDI 4.0 与 Pagos 2.0 XML
  2. 02按 SAT XSD 规则验证文档
  3. 03本地签署数字印章
  4. 04验证 PAC 返回的 TFD
  5. 05校验墨西哥 RFC 税号

适用场景

  1. 01从结构化数据创建收入或贷项发票
  2. 02生成付款补充文件
  3. 03提交 PAC 前验证或签署 CFDI
  4. 04检查 PAC 返回的税务印章

MCP 相关

作为 MCP 服务,向客户端提供 CFDI 构建、验证、签署、印章验证及 RFC 校验工具;不负责向 PAC 提交文档。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"cmendezs-mcp-cfdi-mx": {
"command": "uvx",
"args": [
"mcp-cfdi-mx"
]
}
}
}
启动命令uvx mcp-cfdi-mx

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

安装包
pypimcp-cfdi-mx0.4.1

工具

6

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

此工具无需参数。

详细介绍

mcp-cfdi-mx 🇲🇽

English | Español

License PyPI version Python mcp-cfdi-mx MCP server

一个 Python MCP 服务,提供符合 SAT《Anexo 20》技术标准的墨西哥电子发票工具,支持 CFDI 4.0 和 Complemento de Pagos 2.0。它使 AI Agent(Claude、IDE)能够构建、通过 XSD 验证并为 CFDI 4.0 文档(Ingreso、Egreso 和 Complemento de Pagos 2.0)加盖数字印章,验证 PAC 返回的 Timbre Fiscal Digital 印章,并验证墨西哥 RFC 纳税人识别号。

第一阶段范围。 此软件包仅支持 CFDI 4.0 Ingreso、Egreso 和 Complemento de Pagos 2.0,目前尚不支持 Carta Porte、Complemento de Nómina、Retenciones 和 Comercio Exterior,也不会提交给任何 PAC。有关目前实现的具体功能,请参阅可用工具。


简介

此软件包基于 mcp-einvoicing-core 构建,这是电子发票 MCP 服务的共享基础库。它提供 InvoiceDocument 模型基类、TaxIdentifier.validate_mx_rfc RFC 验证器,以及 SelloDigitalSigner——core 文档签名抽象的墨西哥专用具体实现(根据 SAT《Anexo 20》,对 cadena original 计算 SHA-256 摘要,并使用 emisor 的 CSD 进行 RSA-PKCS#1v1.5 签名)。

mcp-einvoicing-core 会作为依赖项自动安装,无需额外操作。

CFDI 是一种清关模式标准:只有 PAC(Proveedor Autorizado de Certificación)对 CFDI 进行认证并返回 Timbre Fiscal Digital(TFD)后,该 CFDI 才具有法律效力。此软件包不会提交给 PAC,因而与 PAC 无关;它可以生成本地加盖数字印章的 CFDI(可提交给任何接受预先加盖印章文档的 PAC),也可以生成未加盖印章但通过架构验证的 CFDI(供代表 emisor 加盖印章的 PAC 使用),通过 sealing_mode 参数选择。

安装

通过 PyPI 安装(推荐)
pip install mcp-cfdi-mx

也可以使用 uvx,无需预先安装:

uvx mcp-cfdi-mx
从源代码安装
git clone https://github.com/cmendezs/mcp-cfdi-mx.git
cd mcp-cfdi-mx
uv sync --all-extras

配置(环境变量)

此软件包不需要任何环境变量。CSD 证书/密钥路径和密码作为工具参数传入(文件路径或环境变量引用——绝不会将明文密钥材料嵌入请求),而非从固定名称的环境变量中读取。

Claude Desktop 集成

将以下配置添加到 claude_desktop_config.json 文件中:

{
  "mcpServers": {
    "cfdi-mx": {
      "command": "uvx",
      "args": ["mcp-cfdi-mx"]
    }
  }
}

Cursor 集成

Cursor 通过 stdio 支持 MCP 服务。将配置添加到:

  • 全局(所有项目):~/.cursor/mcp.json
  • 按项目(仅此仓库):.cursor/mcp.json
{
  "mcpServers": {
    "cfdi-mx": {
      "command": "uvx",
      "args": ["mcp-cfdi-mx"]
    }
  }
}

保存更改后,重新加载 Cursor 窗口(Ctrl+Shift+P → 重新加载窗口)。

Kiro 集成

Kiro 通过专用配置文件支持 MCP 服务:

  • 全局:~/.kiro/settings/mcp.json
  • 工作区:.kiro/settings/mcp.json
{
  "mcpServers": {
    "cfdi-mx": {
      "command": "uvx",
      "args": ["mcp-cfdi-mx"],
      "disabled": false,
      "autoApprove": []
    }
  }
}

安全提示:如果未来版本的工具支持通过环境变量引用传递凭据, 请使用语法 "VAR_NAME": "${VAR_NAME}",以便 Kiro 从 shell 中解析该值,而不是 将其以明文形式存储。

可用工具

构建
工具描述
mx__build_cfdi根据结构化输入构建格式正确、未加盖印章的 CFDI 4.0 Comprobante XML(Ingreso 或 Egreso)
mx__build_pago构建 Complemento de Pagos 2.0 CFDI(TipoDeComprobante="P"),并按 SAT 指南要求组合固定的单个 Concepto 封装结构
验证和密封
工具描述
mx__validate_cfdi根据 cfdv40.xsd 进行完整的 XSD 验证;存在相应附加组件时,还会根据 TimbreFiscalDigitalv11.xsd.xml 和/或 Pagos20.xsd.xml 验证
mx__seal_cfdi通过 SelloDigitalSigner 计算数字印章,并根据 sealing_mode 选择模式("local" | "pac")
mx__verify_tfd解析 PAC 返回的 1.1 版 Timbre Fiscal Digital 印章;提供 PAC 的证书时,还会以密码学方式验证 SelloSAT
支持范围
工具描述
mx__get_supported_scope返回此软件包当前支持的 CFDI 文档类型、附加组件和密封模式

参阅 docs/TOOLS.md,查看根据实时工具注册表生成的所有工具完整参数参考。

尚未实现

PAC 提交传输(此软件包与 PAC 无关,不会向任何特定 PAC 提交),以及后续阶段的附加组件(Carta Porte、Complemento de Nómina、Retenciones、Comercio Exterior)。

架构

mcp_cfdi_mx.models.CFDIComprobante 扩展自 mcp_einvoicing_core.models.InvoiceDocument(非 EN 16931 路径——CFDI 早于 CEN TC 434,且与其没有渊源;这与 mcp-nfe-br 的判断相同)。Emisor 和 Receptor 的 RFC 验证均通过核心模块中的 TaxIdentifier.validate_mx_rfc 进行。密封操作通过 mcp_einvoicing_core.digital_signature.SelloDigitalSigner 完成;它是核心模块 BaseDocumentSigner 的墨西哥专用具体实现——ES(XAdES)、BR(XML-DSig)和 IT(CAdES)也采用相同模式来实现各自的签名标准。

[ ERP System / Application ] <--> [ MCP Server ] <--> [ PAC (any, PAC-agnostic) / SAT ]
          ^                           |
          |                           v
   [ AI Agent (Claude) ] <--- (CFDI 4.0 / Pagos 2.0)

供应商中立性

此服务实现标准本身:在本地构建、验证并签署文档。它不是商业开票平台的客户端,您的签名密钥和凭证也绝不会离开您自己的基础设施。

PAC(Proveedor Autorizado de Certificación,授权认证服务商)必须为 CFDI 加盖印章;此服务会使用您自己的 CSD 在本地密封文档,并将已密封的文档交给任何 PAC。

支持的标准

标准版本来源
CFDI(Comprobante Fiscal Digital por Internet)4.0SAT Anexo 20,DOF 2022-01-13
Timbre Fiscal Digital1.1SAT
Complemento de Pagos2.0SAT

参阅 specs/README.md,了解完整的源文件包和获取日期。

测试

uv run pytest tests/ -v

贡献

欢迎贡献——请参阅 CONTRIBUTING.md 了解指南。

其他电子发票 MCP 服务

国家/地区服务
🌍 全球mcp-einvoicing-core
🇧🇪 比利时mcp-einvoicing-be
🇧🇷 巴西mcp-nfe-br
🇫🇷 法国mcp-facture-electronique-fr
🇩🇪 德国mcp-einvoicing-de
🇮🇳 印度mcp-einvoicing-in
🇮🇹 意大利mcp-fattura-elettronica-it
🇲🇽 墨西哥mcp-cfdi-mx
🇵🇱 波兰mcp-ksef-pl
🇸🇬 新加坡mcp-invoicenow-sg
🇪🇸 西班牙mcp-facturacion-electronica-es
🇦🇪 阿拉伯联合酋长国mcp-einvoicing-ae

许可证

本项目采用 Apache 2.0 许可证发布。 详情请参阅 LICENSE 文件。完整版本历史请参阅 CHANGELOG.md。

评论

支持 Markdown

第一次接触 MCP?

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

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