Content
# Traktamente MCP Server
An MCP server that provides access to Swedish traktamente (per diem) rates from Skatteverket's official API.
## Features
- 🔍 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
## Installation
```bash
pnpm install traktamente-mcp
```
Or with Bun:
```bash
bun add traktamente-mcp
```
## Usage
### With Claude Desktop
Add this configuration to your Claude Desktop config file:
**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows**: `%APPDATA%/Claude/claude_desktop_config.json`
```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
### With Streamable HTTP (Remote Server)
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"
}
}
}
```
### Standalone Usage
```bash
# Start the server
bun start
# Development mode with hot reload
bun dev
# Test with MCP Inspector (interactive web UI)
bun run inspector
```
### With Docker
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-mcp
# Or 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
### `get_traktamente`
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)
### `get_all_countries`
List all countries with available per diem data. No parameters required.
### `search_traktamente`
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
### Prerequisites
- [Bun](https://bun.sh) runtime (v1.0.0 or later)
### Setup
```bash
# Clone the repository
git clone https://github.com/johnie/traktamente-mcp.git
cd traktamente-mcp
# Install dependencies
bun install
# Start development server
bun dev
```
### Testing with MCP Inspector
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`)
5. Open a Pull Request
### Development Guidelines
- 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
## License
MIT © [Johnie Hjelm](https://github.com/johnie)
## Support
- **Issues**: [GitHub Issues](https://github.com/johnie/traktamente-mcp/issues)
- **Discussions**: [GitHub Discussions](https://github.com/johnie/traktamente-mcp/discussions)
## Acknowledgments
- Data provided by [Skatteverket](https://www.skatteverket.se)
- Built with [Model Context Protocol SDK](https://github.com/modelcontextprotocol/sdk)
- Powered by [Bun](https://bun.sh)
Connection Info
You Might Also Like
markitdown
MarkItDown-MCP is a lightweight server for converting URIs to Markdown.
markitdown
Python tool for converting files and office documents to Markdown.
Filesystem
Node.js MCP Server for filesystem operations with dynamic access control.
OmniRoute
Never stop coding. The free AI gateway — one endpoint, 160+ providers, zero...
TrendRadar
TrendRadar: Your hotspot assistant for real news in just 30 seconds.
mempalace
The highest-scoring AI memory system ever benchmarked. And it's free.