MCP server for Swedish traktamente (per diem) rates from Skatteverket
npm install traktamente-mcpAn MCP server that provides access to Swedish traktamente (per diem) rates from Skatteverket's official API.
- 🔍 Query per diem rates by country, year, or country code
- 🌍 Search across all available countries
- 📊 Access official data from Skatteverket
- ⚡ Fast and lightweight implementation using Bun
- 🔒 Type-safe with Zod schema validation
``bash`
pnpm install traktamente-mcp
Or with Bun:
`bash`
bun add traktamente-mcp
Add this configuration to your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%/Claude/claude_desktop_config.json
Windows:
`json`
{
"mcpServers": {
"traktamente": {
"command": "npx",
"args": ["traktamente-mcp"]
}
}
}
Restart Claude Desktop, and you'll have access to three new tools:
- get_traktamente - Query per diem rates with filters (country, year, country code)
- get_all_countries - List all available countries
- search_traktamente - Search for countries using regex patterns
The server is available as a hosted service at https://traktamente.app/mcp, which you can connect to without installing anything locally.
#### Claude Code
The easiest way to add the server to Claude Code is using the CLI:
`bash`
claude mcp add --transport http traktamente https://traktamente.app/mcp
Alternatively, you can manually add it to your Claude Code settings (~/.config/claude/config.json or via UI settings):
`json`
{
"mcpServers": {
"traktamente": {
"transport": "http",
"url": "https://traktamente.app/mcp"
}
}
}
`bashStart the server
bun start
$3
The server can run in a Docker container, useful for isolated environments or deployment:
`bash
Build the Docker image
docker build -t traktamente-mcp .Run with stdio transport (interactive)
docker run -i traktamente-mcpOr use Docker Compose
docker-compose up
`#### Docker with Claude Desktop
To use the Docker container with Claude Desktop, configure it like this:
macOS/Linux:
~/Library/Application Support/Claude/claude_desktop_config.json`json
{
"mcpServers": {
"traktamente": {
"command": "docker",
"args": ["run", "-i", "--rm", "traktamente-mcp"]
}
}
}
`Note: You need to build the Docker image first using
docker build -t traktamente-mcp . in the project directory.Available Tools
$3
Query traktamente rates with optional filters:
-
land (string, optional): Country name or regex pattern
- år (string, optional): Year
- landskod (string, optional): Country code (e.g., "US", "GB")
- limit (number, optional): Maximum number of results (default: 100)
- offset (number, optional): Pagination offset (default: 0)$3
List all countries with available per diem data. No parameters required.
$3
Search for countries using a regex pattern:
-
search (string, required): Search term or regex pattern
- limit (number, optional): Maximum number of results (default: 50)Development
$3
- Bun runtime (v1.0.0 or later)
$3
`bash
Clone the repository
git clone https://github.com/johnie/traktamente-mcp.git
cd traktamente-mcpInstall dependencies
bun installStart development server
bun dev
`$3
The MCP Inspector provides an interactive web UI for testing the server:
`bash
bun run inspector
`This will open a browser where you can test all available tools and see real-time responses.
Data Source
This server fetches data from Skatteverket's official API:
- API URL: https://skatteverket.entryscape.net/rowstore/dataset/70ccea31-b64c-4bf5-84c7-673f04f32505
- Data: Per diem rates for international travel
- Language: Swedish (country names and field names)
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
1. Fork the repository
2. Create your feature branch (
git checkout -b feature/amazing-feature)
3. Commit your changes (git commit -m 'feat: add some amazing feature')
4. Push to the branch (git push origin feature/amazing-feature`)- Use Bun for all commands (not Node.js or npm)
- Follow the existing code style (enforced by Biome)
- Add tests for new features
- Update documentation as needed
MIT © Johnie Hjelm
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Data provided by Skatteverket
- Built with Model Context Protocol SDK
- Powered by Bun