关于 SEF e-fakture (Srbija)
SEF e-fakture (Srbija) 是一款本地优先的 MCP 服务,用于准备和发送塞尔维亚 SEF 电子发票。公司规则保存在本地资料中,每份草稿发送前都需人工批准,且默认使用演示环境。
主要功能
- 01本地生成 UBL 发票草稿
- 02发送需提供批准码
- 03默认使用演示环境
- 04本地公司与客户资料
- 05发票状态、取消与冲销
- 06本地审计日志
适用场景
- 01准备塞尔维亚 SEF 销项发票
- 02审核草稿后批准提交
- 03查询已发送发票的状态
- 04取消或冲销符合条件的发票
MCP 相关
向 MCP 客户端提供 SEF 配置、发票草拟、发送和状态查询工具。发送需要已批准的草稿及批准码;生产环境写入还需显式启用两个设置。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
sef-mcp
EN: 本地优先的 MCP 服务,可让 AI 助手(Claude Desktop、Claude Code、Cursor…)为塞尔维亚 SEF(Sistem elektronskih faktura)起草并发送电子发票。默认安全:使用演示环境,发送分两步进行并需人工批准,密钥仅通过密钥管理器提供。公司专属规则保存在本地配置文件中,而不是代码里。
MCP 服务可让 AI 助手在你的电脑上准备并向 SEF 发送销项电子发票,使用你的 API 密钥,无需中间方。
不是程序员?
→ 用户指南:在 Claude 应用中双击安装,无需终端、Node.js 或密码管理器。公司和客户信息通过对话录入。
本页其余内容面向技术用户和开发者。
为什么还需要一个 SEF MCP
| 托管 MCP 服务 | sef-mcp | |
|---|---|---|
| 你的 API 密钥存放在哪里 | 经过他人的服务器 | 保留在你的电脑上 |
| 谁能看到发票 | 第三方 | 只有你和 SEF |
| 发送 | 一次调用 | 草稿 → 你的批准 → 发送 |
| 公司规则(增值税状态、客户、编号) | 在提示词中 | 在本地配置文件中,并经过验证 |
| 默认环境 | 各不相同 | 演示环境(不会产生税务影响) |
功能(v0.1)
| 工具 | 功能 | 是否更改状态? |
|---|---|---|
sef_check_setup | 检查环境、安全开关和配置文件 | 否 |
sef_setup_company | 通过对话设置公司信息(预览 → 确认) | 仅本地 |
sef_add_customer | 添加或修改客户(预览 → 确认) | 仅本地 |
sef_ping | 检查密钥以及与 SEF 的连接 | 否 |
sef_list_customers | 列出配置文件中的客户 | 否 |
sef_list_vat_exemption_reasons | 官方免税代码(例如 PDV-RS-33) | 否 |
sef_list_unit_measures | 官方计量单位(例如 MON、HUR、H87) | 否 |
sef_draft_invoice | 在本地生成 UBL 发票,返回金额和 approvalCode | 仅本地 |
sef_get_draft | 读取草稿(可选包含 XML) | 否 |
sef_send_invoice | 将已批准的草稿发送到 SEF(不进行 SEF 验证,与门户相同——SEF 上的该选项目前尚不可用) | 是 |
sef_get_invoice / sef_list_invoice_ids | 已发送发票的状态和概览 | 否 |
sef_cancel_invoice | 取消状态为“草稿”/“新建”/“发送错误”的发票 | 是 |
sef_storno_invoice | 冲销状态为“已发送”/“已接受”/“已拒绝”的发票 | 是 |
除了工具外,还有预设查询(mesecna-faktura、podesavanje-firme、status-fakture、storno-ili-otkazivanje)和参考文档(sef-mcp://docs/greske、…/statusi、…/pravila),它们都由服务器使用的同一批数据生成。
快速开始
git clone <repo> sef-mcp && cd sef-mcp
npm install && npm test
node dist/src/index.js init ~/.config/sef-mcp/profile.json # pa popuni podatke firme
接着按照 docs/setup.md 操作:在 1Password(或其他 secret manager)中配置 API 密钥,连接 Claude Desktop / Claude Code / Cursor,并在演示环境中进行首次测试。
安全概要
- 默认使用
SEF_ENV=demo。生产环境需要设置两个开关:SEF_ENV=prod和SEF_MCP_ALLOW_PROD_WRITE=true。 - 发送请求需要
draftId+approvalCode(XML 的 SHA-256 哈希值前 8 个字符)——发送的内容与您查看过的版本完全一致。 - 密钥绝不写入日志、不通过工具返回,也不保存到磁盘。密钥只能从环境中读取。
- 客户端只与
efaktura.mfin.gov.rs/demoefaktura.mfin.gov.rs通信。 - 附件只能来自一个获准文件夹,且仅限 PDF,并有大小限制。
- 每个草稿、发送和取消操作都会记录在本地审计日志(
audit.jsonl)中。
详情见:SECURITY.md 和 docs/technical-spec.md。
状态
v0.1 — 早期阶段。 与 SEF 4.2.0 保持一致(涵盖 3.14–4.2.0 版本的规则,参见技术规范 §11)、2026 年 7 月 31 日的 API 规范和 2026 年 10 月 1 日的 ITU。UBL 生成器会复现 SEF 为在门户中录入的发票生成的结构(黄金测试)。发票发送时不会进行 SEF 验证,与通过门户发送一样,因为 SEF 尚未启用该选项(SEF 支持部门,2026 年 11 月 5 日)。参见 docs/roadmap.md。
文档
免责声明
这不是财政部的官方工具。发票内容和税务合规性由开票方负责。请与会计师确认税务类别和豁免代码。
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。