Skip to main content
Glama
32n1

EVE Online Companion MCP Server

by 32n1

EVE Online Companion — MCP-сервер

MCP-сервер (Model Context Protocol) для Claude Code, который служит вашим личным компаньоном в EVE Online. Он предоставляет Claude прямой доступ к данным персонажа, рыночным ценам, информации о киллбордах, знаниям из вики и многому другому — и все это через естественный язык.

Что он умеет?

«Могу ли я летать на Ishtar?» — Проверяет ваши навыки и показывает недостающие с указанием времени обучения.

«Сколько стоит Warp Disruptor II в Жите?» — Получает актуальные рыночные данные из ESI.

«Насколько опасен пилот XY?» — Проверяет статистику zKillboard, рейтинг опасности и топовые корабли.

«Покажи мои фиты для Vexor» — Выводит список сохраненных фитов в формате EFT.

«Объясни мне механику червоточин» — Ищет информацию в вики EVE University.

Все 29 инструментов

Категория

Инструменты

Описание

Auth

eve_auth_login

SSO-логин (блокирует до callback)

eve_auth_start

SSO-логин (неблокирующий, откройте localhost:8834)

eve_auth_status

Статус авторизации + информация о персонаже

Character

eve_character_info

Имя, корпорация, альянс, кошелек, SP, местоположение, корабль

eve_character_skills

Фильтрация навыков по группе или имени

eve_character_skillqueue

Текущая очередь навыков с таймерами

eve_character_implants

Установленные импланты

Location

eve_location_current

Система, станция, корабль, статус онлайн

eve_route_plan

Расчет маршрута (кратчайший/безопасный/опасный)

eve_set_destination

Установка цели автопилота в игре

Fittings

eve_fitting_list

Сохраненные фиты (формат EFT)

eve_fitting_save

Сохранение фита из строки EFT

eve_fitting_analyze

Анализ фита (танк, DPS, капа — на основе Dogma)

Market

eve_market_price

Проверка цены (по умолчанию Jita, возможны другие регионы)

eve_market_appraise

Оценка списка предметов (копипаст из игры)

eve_market_orders

Активные ордера на покупку/продажу

Intel

eve_intel_character

Intel по пилоту: корпа, киллы, рейтинг опасности, топ-корабли

eve_intel_corporation

Intel по корпе: участники, альянс, статистика киллборда

eve_intel_system

Intel по системе: киллы, прыжки, NPC-киллы, рэттинг

eve_killmail_analyze

Разбор киллмейла: фит, атакующие, урон

Assets

eve_assets_search

Поиск активов по имени/типу

eve_wallet_balance

Баланс кошелька

eve_wallet_journal

Последние записи в журнале кошелька

Universe

eve_type_info

Детали предмета/корабля с атрибутами Dogma

eve_system_info

Детали системы: сек, регион, станции

eve_search

Универсальный поиск (персонажи, корпы, системы, предметы)

Wiki

eve_wiki_search

Поиск по вики EVE University

eve_wiki_article

Чтение статьи из вики (в формате Markdown)

Fleet

eve_fleet_info

Статус флота (если вы во флоте)


Настройка

1. Приложение EVE Developer

  1. Перейдите на https://developers.eveonline.com/

  2. "Create New Application"

  3. Тип приложения: Authentication & API Access

  4. Callback URL: http://localhost:8834/callback

  5. Выберите все необходимые области (scopes) из списка ниже

  6. Сохраните Client ID (секретный ключ опционален, только для конфиденциальных приложений)

esi-skills.read_skills.v1
esi-skills.read_skillqueue.v1
esi-clones.read_implants.v1
esi-assets.read_assets.v1
esi-wallet.read_character_wallet.v1
esi-fittings.read_fittings.v1
esi-fittings.write_fittings.v1
esi-characters.read_standings.v1
esi-killmails.read_killmails.v1
esi-location.read_location.v1
esi-location.read_ship_type.v1
esi-location.read_online.v1
esi-fleets.read_fleet.v1
esi-markets.read_character_orders.v1
esi-contracts.read_character_contracts.v1
esi-mail.read_mail.v1
esi-ui.open_window.v1
esi-ui.write_waypoint.v1
esi-search.search_structures.v1
esi-universe.read_structures.v1

2. Установка

git clone <repo>
cd eve
npm install
npm run build

3. Конфигурация

mkdir -p ~/.eve-mcp

Создайте ~/.eve-mcp/config.json:

{
  "clientId": "deine-client-id-von-ccp",
  "callbackUrl": "http://localhost:8834/callback",
  "userAgent": "eve-mcp-companion/1.0 (dein-character-name)"
}

Опционально с секретным ключом (только для конфиденциальных приложений):

{
  "clientId": "deine-client-id",
  "secretKey": "dein-secret-key",
  "callbackUrl": "http://localhost:8834/callback",
  "userAgent": "eve-mcp-companion/1.0 (dein-character-name)"
}

Альтернативно через переменные окружения:

export EVE_MCP_CLIENT_ID="deine-client-id"
export EVE_MCP_CALLBACK_URL="http://localhost:8834/callback"
export EVE_MCP_USER_AGENT="eve-mcp-companion/1.0"

4. Интеграция с Claude Code

Добавьте MCP-сервер в настройки Claude Code.

Вариант А — settings.json (рекомендуется):

Файл: ~/.claude/settings.json

{
  "mcpServers": {
    "eve-online": {
      "command": "node",
      "args": ["/absoluter/pfad/zu/eve/dist/index.js"],
      "env": {
        "EVE_MCP_TOKEN_PASSPHRASE": "ein-sicheres-passwort"
      }
    }
  }
}

Вариант Б — область проекта (.mcp.json в директории проекта):

{
  "mcpServers": {
    "eve-online": {
      "command": "node",
      "args": ["./dist/index.js"],
      "env": {
        "EVE_MCP_TOKEN_PASSPHRASE": "ein-sicheres-passwort"
      }
    }
  }
}

5. Первый вход

Запустите Claude Code и скажите:

"Подключи меня к EVE Online"

Claude вызовет eve_auth_start и запустит локальный сервер авторизации. Откройте http://localhost:8834 в браузере — там появится страница входа в стиле EVE. Нажмите "Authenticate via EVE SSO", войдите через CCP, и вы будете перенаправлены на страницу успеха с портретом вашего персонажа. Закройте окно, готово.


Архитектура

eve/
├── src/
│   ├── index.ts                 # Server-Entry, registriert alle Tools
│   ├── config.ts                # Laedt ~/.eve-mcp/config.json
│   ├── auth/
│   │   ├── scopes.ts            # ESI Scope-Definitionen
│   │   ├── sso.ts               # OAuth2 PKCE Flow, Callback-Server
│   │   ├── tokens.ts            # Token-Persistence (AES-256-GCM)
│   │   └── pages.ts             # HTML-Seiten fuer Auth-Flow
│   ├── clients/
│   │   ├── esi.ts               # ESI API Client (Auth, Rate-Limiting, Cache)
│   │   ├── zkillboard.ts        # zKillboard Client (10 req/s Throttle)
│   │   ├── evetycoon.ts         # EVE Tycoon Markt-Client
│   │   └── wiki.ts              # EVE University Wiki (MediaWiki API)
│   ├── tools/
│   │   ├── auth.ts              # Login, Status
│   │   ├── character.ts         # Character Info, Skills, Queue, Implants
│   │   ├── location.ts          # Location, Route, Autopilot
│   │   ├── fitting.ts           # Fittings, EFT, Analyse
│   │   ├── universe.ts          # Type Info, System Info, Search
│   │   ├── market.ts            # Preise, Appraisal, Orders
│   │   ├── killboard.ts         # Character/Corp/System Intel, Killmails
│   │   ├── assets.ts            # Assets, Wallet
│   │   ├── wiki.ts              # Wiki Search, Article
│   │   └── fleet.ts             # Fleet Info
│   └── utils/
│       ├── cache.ts             # In-Memory Cache mit TTL
│       ├── errors.ts            # Error-Klassen + formatToolError()
│       ├── formatting.ts        # ISK, Zeit, EVE-Time Formatierung
│       ├── eft.ts               # EFT-Format Parser + Generator
│       └── sde.ts               # Type/System Name-Resolution (ESI-backed)
├── package.json
├── tsconfig.json
└── README.md

API-клиенты

Клиент

Базовый URL

Авторизация

Лимит запросов

Кэш

ESI

esi.evetech.net/latest

OAuth2 Bearer

Заголовок Error-Limit

Заголовок Expires + custom TTL

zKillboard

zkillboard.com/api

нет

10 зап./сек

10 минут

EVE Tycoon

evetycoon.com/api/v1

нет

Заголовок Expires

5 минут

Wiki

wiki.eveuniversity.org/api.php

нет

нет

1 час

Кэширование

Все ответы API кэшируются в оперативной памяти:

Тип данных

TTL

Местоположение / Корабль / Статус

30 секунд

Баланс кошелька

2 минуты

Очередь навыков

5 минут

Рыночные цены / Ордера

5 минут

Статистика zKillboard

10 минут

Активы

30 минут

Навыки персонажа

1 час

Статьи вики

1 час

Информация о типах / системах

24 часа

Разрешение имен в ID

24 часа

ESI Rate-Limiting

Клиент ESI отслеживает заголовки X-ESI-Error-Limit-Remain и X-ESI-Error-Limit-Reset. Если лимит ошибок падает ниже 20, запросы блокируются до сброса. Ошибки 420 (Error Limit) выбрасываются как RateLimitError.

Безопасность токенов

  • Токены сохраняются в ~/.eve-mcp/tokens.json

  • Если установлена EVE_MCP_TOKEN_PASSPHRASE: шифрование AES-256-GCM с использованием scrypt для генерации ключа

  • Без парольной фразы: сохранение в открытом виде (с предупреждением в stderr)

  • Токен доступа автоматически обновляется за 2 минуты до истечения срока действия

  • Токен обновления (refresh token) обновляется при каждом обновлении (шаблон PKCE volatile token)


Разработка

# Dev-Mode (tsx, kein Build noetig)
npm run dev

# Build
npm run build

# Ausfuehren
npm start

Добавление нового инструмента

  1. Добавьте обработчик в соответствующий файл в src/tools/

  2. Используйте паттерн server.tool(name, description, zodSchema, handler)

  3. Всегда возвращайте ошибки через formatToolError(err)

  4. Вызывайте ESI через esi.get() / esi.publicGet() с соответствующим TTL кэша

  5. Разрешайте ID типов через resolveTypeName() / resolveTypeId()

Устранение неполадок

"Config not found" — создайте ~/.eve-mcp/config.json или установите EVE_MCP_CLIENT_ID.

"Authentication required" — вызовите eve_auth_login или eve_auth_start.

"Token refresh failed" — срок действия токена обновления истек. Войдите снова.

"ESI error limit reached" — слишком много ошибочных запросов. Ожидание происходит автоматически.

Порт 8834 занят — установите другой порт в config.json и обновите Callback URL в настройках CCP.

Install Server
A
security – no known vulnerabilities
F
license - not found
A
quality - A tier

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/32n1/eveMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server