EVE Online Companion MCP Server
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 |
| SSO-логин (блокирует до callback) |
| SSO-логин (неблокирующий, откройте localhost:8834) | |
| Статус авторизации + информация о персонаже | |
Character |
| Имя, корпорация, альянс, кошелек, SP, местоположение, корабль |
| Фильтрация навыков по группе или имени | |
| Текущая очередь навыков с таймерами | |
| Установленные импланты | |
Location |
| Система, станция, корабль, статус онлайн |
| Расчет маршрута (кратчайший/безопасный/опасный) | |
| Установка цели автопилота в игре | |
Fittings |
| Сохраненные фиты (формат EFT) |
| Сохранение фита из строки EFT | |
| Анализ фита (танк, DPS, капа — на основе Dogma) | |
Market |
| Проверка цены (по умолчанию Jita, возможны другие регионы) |
| Оценка списка предметов (копипаст из игры) | |
| Активные ордера на покупку/продажу | |
Intel |
| Intel по пилоту: корпа, киллы, рейтинг опасности, топ-корабли |
| Intel по корпе: участники, альянс, статистика киллборда | |
| Intel по системе: киллы, прыжки, NPC-киллы, рэттинг | |
| Разбор киллмейла: фит, атакующие, урон | |
Assets |
| Поиск активов по имени/типу |
| Баланс кошелька | |
| Последние записи в журнале кошелька | |
Universe |
| Детали предмета/корабля с атрибутами Dogma |
| Детали системы: сек, регион, станции | |
| Универсальный поиск (персонажи, корпы, системы, предметы) | |
Wiki |
| Поиск по вики EVE University |
| Чтение статьи из вики (в формате Markdown) | |
Fleet |
| Статус флота (если вы во флоте) |
Настройка
1. Приложение EVE Developer
Перейдите на https://developers.eveonline.com/
"Create New Application"
Тип приложения: Authentication & API Access
Callback URL:
http://localhost:8834/callbackВыберите все необходимые области (scopes) из списка ниже
Сохраните 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.v12. Установка
git clone <repo>
cd eve
npm install
npm run build3. Конфигурация
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.mdAPI-клиенты
Клиент | Базовый URL | Авторизация | Лимит запросов | Кэш |
ESI |
| OAuth2 Bearer | Заголовок Error-Limit | Заголовок Expires + custom TTL |
zKillboard |
| нет | 10 зап./сек | 10 минут |
EVE Tycoon |
| нет | Заголовок Expires | 5 минут |
Wiki |
| нет | нет | 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Добавление нового инструмента
Добавьте обработчик в соответствующий файл в
src/tools/Используйте паттерн
server.tool(name, description, zodSchema, handler)Всегда возвращайте ошибки через
formatToolError(err)Вызывайте ESI через
esi.get()/esi.publicGet()с соответствующим TTL кэшаРазрешайте 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.
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