Skip to main content
Glama
zacacollier

Kraken Pro MCP

by zacacollier
README.md
# Kraken Pro MCP

A Model Context Protocol (MCP) server that provides real-time cryptocurrency market data from the Kraken Pro exchange.

## Overview

This MCP server exposes Kraken's public API as MCP tools, allowing AI assistants to fetch real-time cryptocurrency prices, trading pairs, and market data.

## Available Tools

| Tool | Description |
|------|-------------|
| `get_system_status` | Check if Kraken API is online and operational |
| `get_ticker` | Get real-time ticker data for a trading pair (e.g., XBTUSD, ETHUSD) |
| `get_asset_info` | List all available assets on Kraken with their details |

## Installation

```bash
pnpm install
```

## Development

Run in development mode with hot reload:

```bash
pnpm run dev
```

## Build

Compile TypeScript to JavaScript:

```bash
pnpm run build
```

## Usage

Start the MCP server:

```bash
pnpm start
```

The server runs on stdio and communicates via the Model Context Protocol.

### Claude Desktop

To use this server with Claude Desktop, add the following to your Claude Desktop configuration file:

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

```json
{
    "mcpServers": {
        "kraken-pro": {
            "command": "node",
            "args": [
                "<PATH TO REPO>/kraken-pro-mcp/dist/index.js"
            ]
        }
    }
}
```

Replace `<PATH TO REPO>` with the absolute path to this repository on your system.

### Development Mode

For development and testing new changes with hot reload, use the development mode instead:

```json
{
    "mcpServers": {
        "kraken-pro": {
            "command": "pnpm",
            "args": ["run", "dev"],
            "cwd": "<PATH TO REPO>/kraken-pro-mcp"
        }
    }
}
```

This will automatically restart the server when you make changes to the source code.

## Testing

```bash
# Run all tests in watch mode
pnpm test

# Run unit tests only (with mocks)
pnpm run test:unit

# Run acceptance tests (hits real Kraken API - rate limited)
pnpm run test:acceptance
```

## Linting & Formatting

```bash
# Check linting
pnpm run lint

# Format code
pnpm run format

# Run all checks (lint + format + organize imports)
pnpm run check
```

## Project Structure

```
src/
  index.ts           # MCP server entry point with tool registrations
  kraken-client.ts   # Kraken API client using native fetch
  types.ts           # Shared TypeScript interfaces
test/
  unit/              # Fast unit tests with mocked fetch
  acceptance/        # Slower integration tests hitting real API
```

## Technologies

- [Model Context Protocol](https://modelcontextprotocol.io/) - Protocol for AI tool integration
- [Zod](https://zod.dev/) - Schema validation
- TypeScript 5.9 with strict mode
- Vitest for testing
- Biome for linting and formatting

## License

ISC

TDQS

A3.5/5.0

Scored across 8 tools

Disambiguation5/5

Each tool targets a distinct data type or endpoint (assets, pairs, OHLC, order book, trades, spreads, ticker, system status) with no overlapping purposes. An agent can easily select the correct tool for a given market data need.

Naming Consistency5/5

All tools follow a consistent get_<noun> pattern in snake_case (e.g., get_asset_info, get_order_book, get_recent_trades). The naming is predictable and uniform throughout.

Tool Count5/5

Eight tools is well-scoped for a market data API, covering the essential public endpoints without redundancy. Each tool earns its place and the set is not bloated.

Completeness3/5

The tool set comprehensively covers market data and system status, but for a server named 'Kraken Pro' it lacks any trading or account operations (e.g., place order, cancel order, get balances, list open orders). These are notable missing operations that would limit an agent's ability to interact with the platform.

Maintenance

ActivityInactive
ResponsivenessNo issues