Skip to main content
Glama
obrien-matthew

Tarkov MCP Server

README.md
# Tarkov MCP Server

A Model Context Protocol (MCP) server that provides access to Escape from Tarkov game data through the community-maintained Tarkov API.

> [!IMPORTANT]  
> I am not affiliated with the tarkov.dev project or API. I simply built this MCP server to interact with what they have built. If you appreciate their work, please consider donating to them [here](https://opencollective.com/tarkov-dev)!

## Features

### Item Tools

- **search_items** - Search for items by name or type (supports localization)
- **get_item_details** - Get detailed item information including prices, stats, and usage
- **get_item_prices** - Get current pricing information for items
- **compare_items** - Compare multiple items side by side
- **get_quest_items** - Get quest-specific items with their associated tasks

### Market Tools

- **get_flea_market_data** - Current flea market price data
- **get_barter_trades** - Available barter exchanges from traders
- **calculate_barter_profit** - Profit/loss analysis for barter trades
- **get_ammo_data** - Ammunition statistics and pricing
- **get_hideout_modules** - Hideout module information and requirements

### Map Tools

- **get_maps** - List all available maps
- **get_map_details** - Detailed map information including spawns and extracts
- **get_map_spawns** - Spawn locations and information for specific maps

### Trader Tools

- **get_traders** - List all traders
- **get_trader_details** - Detailed trader information
- **get_trader_items** - Items available from specific traders

### Quest Tools

- **get_quests** - List quests, optionally filtered by trader
- **get_quest_details** - Detailed quest information including objectives and rewards
- **search_quests** - Search quests by name or description

### Community Tools

- **get_goon_reports** - Get recent community-driven goon squad sighting reports

## Installation

### Prerequisites

- Python 3.8 or higher
- pip package manager

### Install Dependencies

You can install the dependencies in several ways:

First, clone the repository and navigate into the repository root directory.

**Option 1: Install as a package (recommended)**

```bash
pip install -e .
```

**Option 2: Install with development dependencies**

```bash
pip install -e ".[dev]"
```

**Option 3: Using requirements.txt (legacy)**

```bash
pip install -r requirements.txt
```

### Claude Desktop Setup

To use this MCP server with Claude Desktop, make sure you've followed the install instructions above.

Add the following configuration to your Claude Desktop config file:

**On macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
**On Windows:** `%APPDATA%\Claude\claude_desktop_config.json`

```json
{
  "mcpServers": {
    "tarkov": {
      "command": "python",
      "args": ["-m", "tarkov_mcp"],
      "cwd": "/path/to/tarkov-mcp"
    }
  }
}
```

Replace `/path/to/tarkov-mcp` with the actual path to this project directory.

After updating the config file, restart Claude Desktop for the changes to take effect.

## Development

### Running Tests

```bash
pytest tests/ -v
```

### Running the Server

```bash
python -m tarkov_mcp
```

## Configuration

The server can be configured using environment variables:

- `TARKOV_API_URL` - Tarkov API endpoint (default: https://api.tarkov.dev/graphql)
- `MAX_REQUESTS_PER_MINUTE` - Rate limit (default: 60)
- `REQUEST_TIMEOUT` - Request timeout in seconds (default: 30)

## Features

- **Multi-language Support**: Full localization support for 16 languages (English, Russian, German, French, Spanish, etc.)
- **Enhanced Item Data**: Comprehensive item properties including new weapon ballistics, armor materials, and medical effects
- **Community Integration**: Goon squad tracking and quest-specific item information
- **Modern API Compatibility**: Updated GraphQL queries using latest Tarkov API schema structure
- **Rate Limiting**: Built-in rate limiting to respect API limits (60 requests per minute by default)
- **Error Handling**: Comprehensive error handling with detailed error messages
- **Async Support**: Fully asynchronous implementation for better performance
- **Comprehensive Testing**: Extensive test suite with pytest
- **Type Safety**: Full type hints throughout the codebase

## API Data Source

This server uses the community-maintained Tarkov API at https://api.tarkov.dev/graphql, which provides real-time data for Escape from Tarkov including:

- Item information and statistics
- Current market prices
- Trader information and barter trades
- Quest and task data
- Map and location information
- Ammunition data
- Hideout module requirements

## Troubleshooting

### Common Issues

1. **Rate Limiting**: If you encounter rate limit errors, the server will automatically retry with exponential backoff
2. **Network Issues**: Check your internet connection and ensure the Tarkov API is accessible
3. **Claude Desktop Integration**: Make sure the path in your config file is correct and Python is in your PATH

### Logging

The server includes comprehensive logging. To enable debug logging, set the environment variable:

```bash
export LOG_LEVEL=DEBUG
```

## Contributing

We welcome contributions! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines.

Quick start:

1. Fork the repository
2. Set up development environment: `pip install -e ".[dev]"`
3. Install pre-commit hooks: `pre-commit install`
4. Create a feature branch
5. Make your changes with tests
6. Run quality checks: `pre-commit run --all-files`
7. Submit a pull request

## License

GPL-3.0 License - see LICENSE file for details.