德国税务MCP服务器
隐私优先的MCP服务器,用于德国纳税申报,具有增量、对话式数据收集功能。
特性
- 完全本地化 -所有数据都保留在您的机器上
- 增量工作流 -在提交个人信息之前探索计算
- RAG供电 -使用pgvector+TF-IDF查询德国税法(没有严重的机器学习依赖关系)
- 自动保存 -计算在会话之间持续存在
- 智能差距分析 -系统告诉你缺少什么
- ELSTER出口 -生成提交就绪的XML
设置
# Install dependencies
brew install just tesseract tesseract-lang docker
curl -LsSf https://astral.sh/uv/install.sh | sh
# Clone and setup
git clone
cd german-tax-mcp
# Start PostgreSQL + pgvector (for RAG)
docker-compose up -d
# Install Python deps + populate knowledge base (~2 min)
just setupClaude桌面集成
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"german-tax": {
"command": "uv",
"args": ["--directory", "/absolute/path/to/german-tax-mcp", "run", "python", "src/server.py"]
}
}
}重新启动克劳德桌面,寻找🔌 绿色图标。
用法
V2增量工作流
先探索(不需要个人信息):
Calculate my commuting deduction: 15km, 200 days
Calculate home office for 180 days
Check my tax return status逐一提供信息:
Update my info: first name Anna, email anna@example.de
Update my info: income €45000, tax paid €9000
Check my status准备就绪后完成:
Update my info: birthdate 1990-05-15, tax ID 12345678901, postal code 10405,
home address "Prenzlauer Allee 50", IBAN DE89370400440532013000,
marital status single, tax class I
Finalize my tax return✅ XML生成于 data/exports/tax_return_2025_*.xml
可用工具
| 工具 | 目的 |
|---|---|
update_personal_info() | 增量添加/更新信息(20个可选参数) |
get_tax_return_status() | 检查完整性、缺失字段、下一步 |
finalize_tax_return() | 差距分析+XML生成(如果完成) |
calculate_commuting_deduction() 自动保存(Auto-Saves) | |
calculate_home_office_deduction() | 家庭办公室Pauschale(自动保存) |
start_tax_return() | 扫描收据文件夹 |
query_tax_rules() | RAG对德国税法的质疑 |
clear_session() | 重置所有数据 |
快速测试
# After Claude Desktop restart, try this in chat:
Calculate commuting: 15km, 200 days
Check my status预期:
- 退货扣除900欧元
- 留言:“✅ 此计算已保存”
- 状态显示已完成0%,列出了必填字段
完整示例
I want to file my 2025 tax return.
Calculate commuting: 18km, 70 office days
Calculate home office: 150 days
Scan receipts: /path/to/receipts
Check my status.
Update my info:
- First name: Anna, Last name: Schmidt
- Birthdate: 1990-05-15
- Email: anna.schmidt@example.de
- Income: €45,000, Tax paid: €9,000
- Single, tax class I
- Tax ID: 12345678901
- Postal code: 10405
- Home address: Prenzlauer Allee 50, 10405 Berlin
- IBAN: DE89370400440532013000
Finalize my tax return.结果: ELSTER XML,退款预估约2000欧元
会话保持
所有数据保存到 data/session.json 结构:
{
"personal_info": {...},
"income_info": {...},
"tax_status": {...},
"work_info": {...},
"calculations": {
"commuting": {"input": {...}, "result": {...}},
"home_office": {"input": {...}, "result": {...}}
},
"receipts": {"scanned": true, "summary": {...}},
"deductions": {...}
}会话在Claude Desktop重新启动后仍然存在。
ELSTER的必填字段
- 个人的: first_name、last_name、出生日期
- 税号: control_id(11位数)
- 地址: 邮政编码、家庭地址
- 银行: iban(DE+20位数字)
- 联系人: 电子邮件
- 收入: 总收入、收入税
- 状态: marital_status,分类
可选:电话、雇主姓名、宗教、工作地址等。
2025年税率
| 扣除额 | 比率 | 最大值 |
|---|---|---|
| 通勤(0-20公里) | 0.30欧元/公里 | 4500欧元 |
| 通勤(21公里以上) | 0.38欧元/公里 | 4500欧元 |
| 总部 | 6欧元/天 | 1260欧元(210天) |
| 家庭服务 | 20%劳动力 | 4000欧元信贷 |
| 工匠 | 20%劳动力 | 1200欧元信贷 |
发展
just run # Start MCP server
just test # Run tests
just test-rag # Test RAG queries
just ingest # Refresh knowledge base
just clean # Clean generated files故障排除
MCP未连接?
- 验证中的配置路径
claude_desktop_config.json - 检查🔌 图标为绿色
- 重新启动克劳德桌面(Cmd+Q然后重新打开)
会话未持续?
- 检查
data/session.json存在 - 在控制台中查找“DEBUG SessionManager:Saved”
定稿说不完整?
- 运行:
Check my tax return status - 验证提供的所有11个必填字段
计算不保存?
- 寻找“✅ 此计算已保存”消息
- 验证session.json是否具有
calculations对象
V1与V2
| 功能 | V1(旧) | V2(新) |
|---|---|---|
| 数据输入 | 一次输入全部24个字段 | 逐个输入 |
| 探索 | 必须先提交 | 先探索计算 |
| 进度跟踪 | 无 | 实时完整性% |
| 间隙分析 | 手动 | 自动 |
| 会话恢复 | 从头开始 | 随时随地接听 |
| 工作流程 | 刚性形式 | 自然对话 |
隐私和安全
- 无云上传 -一切都在本地运行
- 无外部API -离线OCR和计算
- 开源 -Apache 2.0已获得许可
- 本地存储 -数据永远不会离开你的机器
免责声明
此软件仅提供估计值。用户有责任验证计算和归档的准确性。对于复杂的情况,请咨询持牌Steuerberator。
不隶属于德国联邦财政部或ELSTER。
许可证
Apache许可证2.0-请参阅许可证文件。
______________________________________________________________________
专为德国税制设计🇩🇪
问题?在GitHub上打开一个问题。
