EVE ESI Tool
EVE ESI Tool 🚀
Интерфейс ESI API для EVE Online с MCP-сервером (Model Context Protocol) для интеграции с ИИ-агентами. Подключите своего персонажа EVE к Claude, Augment Code, Cursor или любому другому ИИ-ассистенту с поддержкой MCP — и задавайте вопросы вроде: «Что у меня в трюме?», «Посоветуй фит Hookbill для соло FW» или «Какие у меня самые ценные активы?»
Архитектура
graph TB
subgraph AI["AI Clients"]
A[Claude Desktop]
B[Augment Code]
C[Cursor]
D[Claude Code CLI]
end
subgraph MCP["MCP Server · mcp_server.py"]
E["34 Tools\n──────────────────\nCharacter · Skills · Assets\nWallet · Fittings · Market\nUniverse · Navigation\nHauling · Fitting Analysis\nCross-Character"]
end
subgraph LIB["eve_esi library"]
F["auth.py\nOAuth2 SSO + PKCE"]
G["client.py\nESI HTTP Client\nauto token refresh"]
H["endpoints/\nassets · characters · fittings\nfitting_analysis · hauling · market\nnavigation · skills · universe · wallet"]
end
subgraph EVE["EVE Online"]
I["ESI API\nesi.evetech.net"]
J["SSO\nlogin.eveonline.com"]
end
A & B & C & D -->|"stdio / MCP protocol"| E
E --> G
G --> H
F -->|"tokens.json"| G
G -->|"HTTPS + JWT Bearer"| I
F -->|"PKCE / Auth Code flow"| JПроцесс аутентификации OAuth2
sequenceDiagram
participant U as You
participant CLI as cli.py
participant Browser as Browser
participant SSO as EVE SSO
participant ESI as ESI API
U->>CLI: python cli.py login
CLI->>Browser: Open auth URL (PKCE challenge)
Browser->>SSO: EVE login + scope approval
SSO->>CLI: Redirect → localhost:8182/callback?code=...
CLI->>SSO: POST /token (exchange code)
SSO->>CLI: access_token + refresh_token
CLI->>CLI: Store encrypted in tokens.json
Note over CLI,ESI: All future requests auto-refresh token
CLI->>ESI: GET /characters/{id}/
ESI->>CLI: Character data ✓Предварительные требования
Python 3.11+
Аккаунт EVE Online
Зарегистрированное приложение разработчика EVE (бесплатно — занимает 2 минуты на developers.eveonline.com)
Установка
git clone https://github.com/yourname/eve-esi-tool
cd eve-esi-tool
pip install -e .Шаг 1 — Регистрация приложения EVE
Перейдите на developers.eveonline.com → войдите в систему → Applications → Create Application
Установите Connection Type →
Authentication & API AccessУстановите Callback URL →
http://localhost:8182/callbackДобавьте необходимые области доступа (ESI scopes) (см. Справочник областей доступа ниже)
Скопируйте ваш Client ID и, при необходимости, Client Secret
PKCE против Secret: Если вы не укажете
client_secretвconfig.yaml, инструмент будет использовать PKCE (безопаснее для десктопных приложений). Если вы его укажете, будет использоваться стандартный поток Authorization Code с Basic Auth.
Шаг 2 — Настройка
cp config.example.yaml config.yamlОтредактируйте config.yaml:
eve_sso:
client_id: "YOUR_CLIENT_ID_HERE"
client_secret: "YOUR_SECRET_HERE" # optional — remove for PKCE-only
callback_url: "http://localhost:8182/callback"
scopes:
- "esi-skills.read_skills.v1"
- "esi-skills.read_skillqueue.v1"
- "esi-characters.read_blueprints.v1"
- "esi-assets.read_assets.v1"
- "esi-wallet.read_character_wallet.v1"
- "esi-fittings.read_fittings.v1"
- "esi-fittings.write_fittings.v1"
- "esi-markets.read_character_orders.v1"
- "esi-industry.read_character_jobs.v1"
- "esi-location.read_location.v1"
- "esi-location.read_ship_type.v1"
- "esi-clones.read_clones.v1"
- "esi-clones.read_implants.v1"
- "esi-contracts.read_character_contracts.v1"
- "esi-universe.read_structures.v1"
token_storage:
path: "tokens.json"Шаг 3 — Вход в систему
python cli.py loginОткроется окно браузера для EVE SSO. После подтверждения ваши токены будут сохранены в tokens.json. Выполняйте это один раз для каждого персонажа. Вы можете аутентифицировать несколько персонажей — все инструменты принимают необязательный параметр character_id.
Справочник CLI
python cli.py login # Authenticate a character via EVE SSO
python cli.py chars # List all authenticated characters
python cli.py info # Show character info (corp, alliance, etc.)
python cli.py skills # Show skill summary (total SP, top skills)
python cli.py wallet # Show ISK wallet balance
python cli.py queue # Show skill training queueШаг 4 — Подключение к вашему ИИ-инструменту
MCP-сервер использует stdio transport — ИИ-клиент запускает его как подпроцесс и обменивается данными через stdin/stdout.
Augment Code (VS Code)
Откройте пользовательские настройки VS Code (Ctrl+Shift+P → "Preferences: Open User Settings (JSON)") и добавьте:
{
"augment.advanced": {
"mcpServers": {
"eve-esi": {
"command": "python",
"args": ["C:/path/to/eve-esi-tool/mcp_server.py"],
"cwd": "C:/path/to/eve-esi-tool"
}
}
}
}Затем перезагрузите VS Code (Ctrl+Shift+P → "Developer: Reload Window"). Инструменты EVE ESI станут доступны в режиме Agent автоматически.
Совет для Windows: Используйте прямые слэши
/или двойные обратные слэши\в пути.
Claude Desktop
Отредактируйте %APPDATA%\Claude\claude_desktop_config.json в Windows или ~/Library/Application Support/Claude/claude_desktop_config.json в macOS. Создайте файл, если он не существует:
{
"mcpServers": {
"eve-esi": {
"command": "python",
"args": ["/path/to/eve-esi-tool/mcp_server.py"],
"cwd": "/path/to/eve-esi-tool"
}
}
}Перезапустите Claude Desktop. Вы увидите значок молотка 🔨 в строке ввода чата, когда MCP-инструменты будут загружены. Нажмите на него, чтобы увидеть все доступные инструменты.
Включение режима разработчика: В Claude Desktop → Settings → Developer → Enable Developer Mode, чтобы увидеть путь к файлу конфигурации для вашей ОС.
Cursor
Добавьте в .cursor/mcp.json в корне вашего проекта или в ~/.cursor/mcp.json глобально:
{
"mcpServers": {
"eve-esi": {
"command": "python",
"args": ["/path/to/eve-esi-tool/mcp_server.py"],
"cwd": "/path/to/eve-esi-tool"
}
}
}Включите MCP в Cursor Settings → Features → MCP → Enable MCP.
Claude Code (CLI)
# Add the server
claude mcp add eve-esi python /path/to/eve-esi-tool/mcp_server.py
# Or add with working directory
claude mcp add eve-esi --cwd /path/to/eve-esi-tool python mcp_server.py
# Verify it's registered
claude mcp listДоступные MCP-инструменты
mindmap
root((EVE ESI\nMCP Tools))
Character
list_authenticated_characters
set_active_character
get_character_info
get_character_location
get_character_ship
get_character_status
Skills
get_skills_summary
get_skill_queue
get_character_attributes
get_active_implants
Assets
get_assets_list
search_assets
get_assets_summary
Wallet
get_wallet_balance
get_wallet_journal
Fittings
get_ship_fittings
save_ship_fitting
Market
get_market_orders
check_item_price
get_blueprints_list
get_industry_jobs_list
Universe
lookup_item_type
search_item_type
lookup_solar_system
resolve_eve_names
Navigation
plan_route
Hauling
find_valuables_to_haul
Fitting Analysis
get_ship_fit_stats
compare_ship_fits
get_fit_required_skills
check_fit_readiness
Cross-Character
get_all_characters_status
compare_skills_across_characters
compare_walletsПерсонаж и статус
Инструмент | Описание |
| Список всех персонажей с местоположением, кораблем, кошельком и статусом |
| Установка персонажа по умолчанию, если |
| Имя, корпорация, альянс, дата рождения, статус безопасности |
| Текущая солнечная система |
| Корабль, на котором вы сейчас летите |
| Снимок состояния: местоположение + корабль + баланс кошелька |
Навыки
Инструмент | Описание |
| Общее количество SP, нераспределенные SP, все изученные навыки |
| Навыки в очереди с временем завершения |
| Int/Mem/Per/Wil/Cha + доступность перераспределения |
| Установленные импланты |
Активы и кошелек
Инструмент | Описание |
| Все принадлежащие предметы с местоположением/количеством |
| Поиск активов по названию типа предмета |
| Активы, сгруппированные по станциям со стоимостью в ISK |
| Баланс ISK |
| Последние транзакции кошелька |
Фиты и рынок
Инструмент | Описание |
| Все сохраненные фиты в игре |
| Сохранить новый фит в игру ✍️ |
| Активные ордера на продажу/покупку персонажа |
| Лучшие цены покупки/продажи в любом регионе (по умолчанию: Jita) |
| Все чертежи с информацией о ME/TE/количестве копий |
| Активные/завершенные задания по производству и исследованиям |
Вселенная и навигация
Инструмент | Описание |
| Полная информация о типе + атрибуты dogma для любого ID предмета |
| Поиск ID предметов по названию |
| Информация о системе (безопасность, планеты, врата) |
| Преобразование любых ID EVE в имена |
| Планировщик маршрутов между системами с оптимизацией |
Перевозки
Инструмент | Описание |
| Сканирование активов на наличие мелких/ценных предметов, планирование маршрута с ценами |
Анализ фитов
Инструмент | Описание |
| Парсинг EFT-фита → полная статистика (защита, фитинг, навигация, капа, добыча, трюм) |
| Сравнение двух EFT-фитов с дельтами |
| Извлечение всех навыков, необходимых для использования EFT-фита |
| Проверка, какие персонажи могут использовать фит и каких навыков не хватает |
Межперсонажные инструменты
Инструмент | Описание |
| Местоположение, корабль и кошелек для ВСЕХ аутентифицированных персонажей |
| Сравнение конкретных навыков (или общего SP) между персонажами |
| Все балансы кошельков + общий ISK по аккаунтам |
✍️
save_ship_fitting— единственный инструмент, который записывает данные в ваш аккаунт. Все остальные работают только на чтение.
Примеры диалогов
После подключения вы можете задавать вопросы на естественном языке:
"What ship is my character flying and where are they?"
"Show me my top 10 most valuable assets"
"What skills am I training and when does the queue finish?"
"Check the Jita price for a Raven Navy Issue"
"Do I have any active industry jobs?"
"What are my saved fittings for a Rifter?"
"Suggest a solo PvP fit for my Caldari Navy Hookbill based on my skills"
"How much would I make if I sold all my blueprints in Jita?"
"Compare my Covetor fit to a Hulk fit — which is better for moon mining?"
"What skills do I need to fly this Hulk fit?" (paste EFT)
"Which of my characters can fly this fit and what are they missing?"
"Give me a status update on all my characters"
"Compare Mining Barge and Astrogeology skills across all my alts"
"Find all my valuable items scattered around and plan a pickup route back to Jita"Поддержка нескольких персонажей
Вы можете аутентифицировать несколько персонажей EVE. Запустите python cli.py login один раз для каждого персонажа — все токены сохраняются в tokens.json.
# Log in additional characters (run once per character)
python cli.py login
# List all authenticated characters
python cli.py charsАктивный персонаж
Используйте set_active_character, чтобы выбрать персонажа по умолчанию, если character_id не указан. Если активный персонаж не задан, используется первый аутентифицированный персонаж.
Все индивидуальные инструменты также принимают необязательный параметр character_id для разовых запросов по конкретному альту.
Межперсонажные инструменты
Эти инструменты работают со всеми аутентифицированными персонажами сразу — не нужно запрашивать их по одному:
get_all_characters_status— Местоположение, корабль и кошелек для всех за один вызовcompare_skills_across_characters— Сравнение навыков или общего SPcompare_wallets— Все балансы кошельков + общий ISK флотаcheck_fit_readiness— Проверка, кто из персонажей может использовать фит и чего им не хватает
Структура проекта
eve-esi-tool/
├── mcp_server.py # MCP server — 34 tools for AI agents
├── cli.py # Command-line interface
├── config.example.yaml # Config template
├── config.yaml # Your config (not committed)
├── tokens.json # OAuth tokens (not committed)
├── scripts/ # Temporary/ad-hoc scripts (auto-cleaned)
├── eve_esi/
│ ├── auth.py # OAuth2 SSO + PKCE flow + token storage
│ ├── client.py # ESI HTTP client with auto token refresh
│ ├── config.py # Config loading (YAML)
│ └── endpoints/
│ ├── assets.py # Character assets
│ ├── characters.py # Character info, location, ship
│ ├── fitting_analysis.py # EFT parsing, stats, comparison, skill requirements
│ ├── fittings.py # Ship fittings CRUD
│ ├── hauling.py # Asset analysis & pickup-run planner
│ ├── market.py # Orders, prices, blueprints, industry
│ ├── navigation.py # Route planning & multi-stop optimization
│ ├── skills.py # Skills, queue, attributes, implants
│ ├── universe.py # Type info, system info, name resolution
│ └── wallet.py # Wallet balance and journal
└── CLAUDE.md # Agent instructions (Claude Code / Cursor)Справочник областей доступа (Scopes)
Область доступа | Включает |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| В будущем: инструменты для контрактов |
| Местоположение активов в структурах игроков |
Примечание: Инструменты анализа фитов (
get_ship_fit_stats,compare_ship_fits,get_fit_required_skills) и инструменты вселенной/навигации (plan_route,lookup_item_typeи т.д.) используют публичные ESI-эндпоинты и не требуют никаких областей доступа.
Заметки о безопасности
tokens.jsonиconfig.yamlисключены из git через.gitignoreТокены хранятся локально — никогда не передаются третьим лицам
MCP-сервер работает только тогда, когда активен ваш ИИ-клиент
Все вызовы ESI идут напрямую к
esi.evetech.netчерез HTTPSЕдинственная операция записи —
save_ship_fitting— ISK или предметы переместить невозможно
Устранение неполадок
Ошибка No authenticated characters
python cli.py login # run this firstОшибка 400 Bad Request во время входа
Убедитесь, что ваш
callback_urlвconfig.yamlточно совпадает с тем, что вы указали на портале разработчиков EVE
MCP-инструменты не отображаются в Augment/Claude
Проверьте, что путь
commandуказывает на правильный исполняемый файл PythonУбедитесь, что вы выполнили
pip install -e .в директории проектаПерезагрузите VS Code / перезапустите Claude Desktop после редактирования конфигурации
Ошибки областей доступа (Scope errors) для конкретных инструментов
Повторно запустите
python cli.py loginпосле добавления новых областей вconfig.yamlУбедитесь, что новые области также добавлены в ваше приложение разработчика EVE
Создано с помощью FastMCP · Данные ESI от EVE Online ESI
This server cannot be installed
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/Berman510/EOE_MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server