Skatteverket MCP服务器
  ](https://dotnet.microsoft.com/) 
C#中的模型上下文协议(MCP)服务器实现,通过JSON-RPC 2.0向LLM应用程序公开瑞典税务局(Skatteverket)增值税申报功能。
概述
该MCP服务器充当人工智能助手和Skatteverket增值税申报API之间的桥梁,实现与增值税申报工作流的自然语言交互。
特性
MCP图元
工具(12个可执行操作)
- 草案管理
- get_vat_drafts -检索所有增值税申报草案 - get_vat_draft -按ID和期限获取特定草稿 - create_vat_draft -创建或更新增值税草案 - delete_vat_draft -删除草稿 - validate_vat_draft -验证草稿是否有错误 - lock_vat_draft -锁定草稿以供签署 - unlock_vat_draft -解锁草稿以进行编辑
- 提交和决定
- get_vat_submissions -检索已提交的声明 - get_vat_submission -获取具体的提交详细信息 - get_vat_decisions -检索税务决策 - get_vat_decision -获取具体决策细节 - health_check -检查API连接
资源(动态数据暴露)
vat://status-API健康状况vat://drafts/{redovisare}/{period}-个人草稿数据vat://submissions/{redovisare}/{period}-提交记录vat://decisions/{redovisare}/{period}-决策文件
提示(引导式工作流程)
create_monthly_vat-指导每月增值税申报review_draft-起草审查工作流程check_status-状态查询模板submission_checklist-提交前验证
建筑
┌─────────────────┐
│ LLM Client │ (Claude, GPT, etc.)
└────────┬────────┘
│ JSON-RPC 2.0 / stdio
│
┌────────▼────────┐
│ MCP Server │
│ ┌───────────┐ │
│ │ Tools │ │ (VAT operations)
│ ├───────────┤ │
│ │ Resources │ │ (Data exposure)
│ ├───────────┤ │
│ │ Prompts │ │ (Workflows)
│ └───────────┘ │
└────────┬────────┘
│ HTTPS / REST
│
┌────────▼────────┐
│ Skatteverket │
│ REST API │
└─────────────────┘先决条件
- .NET 8.0 SDK或更高版本
- 访问Skatteverket API(需要证书)
- MCP兼容客户端(例如,Claude Desktop、Continue.dev)
安装
1.克隆和构建
git clone https://github.com/virginprogrammer/skatteverket-mcp.git
cd skatteverket-mcp
dotnet restore
dotnet build2.配置API凭据
选项A:用户秘密(开发)
cd src/SkatteverketMcpServer
dotnet user-secrets init
dotnet user-secrets set "Skatteverket:BaseUrl" "https://api-test.skatteverket.se"
dotnet user-secrets set "Authentication:OAuth:ClientId" "your-client-id"
# Add other credentials as needed选项B:环境变量
export Skatteverket__BaseUrl="https://api-test.skatteverket.se"
export Authentication__OAuth__ClientId="your-client-id"选项C:apps\_(不建议用于生产)
编辑 src/SkatteverketMcpServer/appsettings.json 凭你的证件。
3.配置MCP客户端
Claude桌面配置
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)或同等版本:
{
"mcpServers": {
"skatteverket": {
"command": "dotnet",
"args": [
"run",
"--project",
"/path/to/skatteverket-mcp/src/SkatteverketMcpServer"
],
"env": {
"DOTNET_ENVIRONMENT": "Development"
}
}
}
}VS代码继续开发配置
编辑 .continue/config.json:
{
"mcpServers": [
{
"name": "skatteverket",
"command": "dotnet",
"args": [
"run",
"--project",
"/path/to/skatteverket-mcp/src/SkatteverketMcpServer"
]
}
]
}用法示例
示例1:创建增值税草案
LLM的用户提示:
Create a VAT draft for company 5567891234 for January 2024 with:
- Sales subject to VAT: 100,000 SEK
- Outgoing VAT: 25,000 SEK
- Incoming VAT: 5,000 SEKMCP工具调用:
{
"name": "create_vat_draft",
"arguments": {
"redovisare": "5567891234",
"period": "2024-01",
"momsinkomst": 100000,
"utgaendeMoms": 25000,
"ingaendeMoms": 5000
}
}示例2:使用提示模板
用户提示:
Use the monthly VAT creation workflow for company 5567891234, period 2024-01MCP提示呼叫:
{
"name": "create_monthly_vat",
"arguments": {
"redovisare": "5567891234",
"period": "2024-01"
}
}示例3:阅读资源
用户提示:
Show me the VAT draft for company 5567891234, period 2024-01MCP资源读取:
{
"uri": "vat://drafts/5567891234/2024-01"
}发展
项目结构
skatteverket-mcp/
├── src/
│ └── SkatteverketMcpServer/
│ ├── Models/ # Data models
│ ├── Services/ # API client
│ ├── Tools/ # MCP tools
│ ├── Resources/ # MCP resources
│ ├── Prompts/ # MCP prompts
│ ├── Transport/ # JSON-RPC transport
│ ├── McpServer.cs # Main server logic
│ └── Program.cs # Entry point
├── tests/
│ └── SkatteverketMcpServer.Tests/
└── docs/运行测试
dotnet test使用调试日志运行
export DOTNET_ENVIRONMENT=Development
dotnet run --project src/SkatteverketMcpServer日志将写入 logs/skatteverket-mcp-{date}.log
API映射
看 docs/API_MAPPING.md文件 了解Skatteverket REST端点和MCP工具之间的详细映射。
故障排除
常见问题
1.服务器未出现在MCP客户端中
- 验证客户端配置中的路径是否正确
- 检查一下。NET 8.0 SDK已安装:
dotnet --version - 查看客户端日志中的连接错误
2.身份验证失败
- 验证API凭据是否正确配置
- 检查证书的格式是否正确
- 确保OAuth令牌未过期
3.工具执行错误
- 检查服务器登录
logs/目录 - 验证Skatteverket API是否可访问
- 确认API端点对于您的环境是正确的
调试模式
通过设置环境变量启用详细日志记录:
export Serilog__MinimumLevel__Default=DebugCI/CD
本项目使用GitHub Actions进行持续集成和部署:
- CI/CD管道:在每次推送/PR上构建、测试和创建工件
- PR检查:验证代码质量、格式和依赖关系
- 发布自动化:使用特定于平台的二进制文件创建版本
- 依赖机器人:每周自动更新依赖关系
看 CI/CD文档 了解详细信息。
生成状态
| 工作流 | 状态 |
|---|---|
| CI/CD管道 |  |
| PR检查 |  |
贡献
我们欢迎捐款!请按照以下步骤操作:
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 按照代码样式进行更改
- 在本地运行测试:
dotnet test - 格式代码:
dotnet format - 使用语义提交消息进行提交(
feat:,fix:,docs:等等) - 推叉并提交拉叉请求
提交前:
- ✅ 所有测试均通过
- ✅ 代码已格式化(
dotnet format) - ✅ 无构建警告
- ✅ 文档已更新
看 贡献.md 详细指南(如有)。
许可证
MIT许可证-有关详细信息,请参阅许可证文件
相关链接
支持
对于问题和疑问:
- GitHub问题:https://github.com/virginprogrammer/skatteverket-mcp/issues
- MCP社区:https://discord.gg/modelcontextprotocol
致谢
- 使用Anthropic的模型上下文协议构建
- 与Skatteverket API集成
- 使用StreamJsonRpc实现JSON-RPC 2.0
