EVE ESI Tool
EVE ESI 도구 🚀
AI 에이전트 통합을 위한 Model Context Protocol (MCP) 서버를 갖춘 EVE Online ESI API 인터페이스입니다. EVE 캐릭터를 Claude, Augment Code, Cursor 또는 기타 MCP 호환 AI 어시스턴트에 연결한 다음, "내 화물칸에 무엇이 있지?", "솔로 FW용 Hookbill 피팅을 추천해줘", 또는 *"내 가장 가치 있는 자산은 무엇이지?"*와 같은 질문을 해보세요.
아키텍처
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"| JOAuth2 인증 흐름
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 개발자 애플리케이션 (무료 — developers.eveonline.com에서 2분 소요)
설치
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 스코프를 추가 (아래 스코프 참조 확인)
Client ID와 선택적으로 Client Secret을 복사
PKCE vs Secret:
config.yaml에서client_secret을 생략하면 이 도구는 PKCE를 사용합니다(데스크톱 앱에 더 안전함). 포함하면 기본 인증(Basic Auth)과 함께 표준 인증 코드 흐름을 사용합니다.
2단계 — 구성
cp config.example.yaml config.yamlconfig.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 loginEVE 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 queue4단계 — AI 도구에 연결
MCP 서버는 stdio 전송을 사용합니다. AI 클라이언트가 이를 하위 프로세스로 실행하고 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 도구가 에이전트 모드에서 자동으로 사용 가능해집니다.
Windows 팁: 경로에 슬래시
/또는 이중 백슬래시\를 사용하세요.
Claude Desktop
Windows에서는 %APPDATA%\Claude\claude_desktop_config.json을, macOS에서는 ~/Library/Application Support/Claude/claude_desktop_config.json을 편집하세요. 파일이 없으면 생성하세요:
{
"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에서 OS용 구성 파일 경로를 확인하세요.
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"
}
}
}Cursor Settings → Features → MCP → Enable MCP에서 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, 모든 훈련된 스킬 |
| 완료 시간을 포함한 대기열의 스킬 |
| 지능/기억/인지/의지/매력 + 재분배 가능 여부 |
| 현재 장착된 임플란트 |
자산 및 지갑
도구 | 설명 |
| 위치/수량을 포함한 모든 소유 아이템 |
| 아이템 유형 이름으로 자산 검색 |
| ISK 가치와 함께 스테이션별로 그룹화된 자산 |
| ISK 잔액 |
| 최근 지갑 거래 |
피팅 및 시장
도구 | 설명 |
| 게임 내 저장된 모든 피팅 |
| 게임에 새 피팅 저장 ✍️ |
| 캐릭터의 활성 판매/구매 주문 |
| 모든 지역의 최적 구매/판매 가격 (기본값: Jita) |
| ME/TE/생산 횟수 정보를 포함한 모든 청사진 |
| 활성/완료된 제조 및 연구 작업 |
우주 및 항법
도구 | 설명 |
| 모든 아이템 ID에 대한 전체 유형 정보 + 도그마 속성 |
| 이름으로 아이템 ID 찾기 |
| 시스템 정보 (보안, 행성, 성문) |
| 모든 EVE ID를 이름으로 변환 |
| 최근접 이웃 최적화를 포함한 다중 시스템 경로 플래너 |
운송
도구 | 설명 |
| 자산에서 작고 가치 있는 아이템을 스캔하고 가격 정보를 포함한 픽업 경로 계획 |
피팅 분석
도구 | 설명 |
| 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— 특정 스킬 또는 총 SP를 나란히 비교compare_wallets— 모든 지갑 잔액 + 함대 총 ISKcheck_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)스코프 참조
스코프 | 활성화 기능 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 향후: 계약 도구 |
| 플레이어 구조물의 자산 위치 |
참고: 피팅 분석 도구(
get_ship_fit_stats,compare_ship_fits,get_fit_required_skills) 및 우주/항법 도구(plan_route,lookup_item_type등)는 공용 ESI 엔드포인트를 사용하며 어떠한 스코프도 필요하지 않습니다.
보안 참고 사항
tokens.json및config.yaml은.gitignore를 통해 git에서 제외됩니다.토큰은 로컬에 저장되며 제3자에게 전송되지 않습니다.
MCP 서버는 AI 클라이언트가 활성화된 경우에만 실행됩니다.
모든 ESI 호출은 HTTPS를 통해
esi.evetech.net으로 직접 이동합니다.유일한 쓰기 작업은
save_ship_fitting이며, ISK나 아이템은 이동할 수 없습니다.
문제 해결
No authenticated characters 오류
python cli.py login # run this first로그인 중 400 Bad Request
config.yaml의callback_url이 EVE 개발자 포털에서 설정한 것과 정확히 일치하는지 확인하세요.
Augment/Claude에 MCP 도구가 표시되지 않음
command경로가 올바른 Python 실행 파일을 가리키는지 확인하세요.프로젝트 디렉토리에서
pip install -e .를 실행했는지 확인하세요.구성을 편집한 후 VS Code를 다시 로드하거나 Claude Desktop을 다시 시작하세요.
특정 도구에서 스코프 오류 발생
config.yaml에 새 스코프를 추가한 후python cli.py login을 다시 실행하세요.새 스코프가 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