Skip to main content
Glama

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"| 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 개발자 애플리케이션 (무료 — developers.eveonline.com에서 2분 소요)


설치

git clone https://github.com/yourname/eve-esi-tool
cd eve-esi-tool
pip install -e .

1단계 — EVE 애플리케이션 등록

  1. developers.eveonline.com으로 이동 → 로그인 → Applications → Create Application

  2. Connection TypeAuthentication & API Access로 설정

  3. Callback URLhttp://localhost:8182/callback으로 설정

  4. 원하는 ESI 스코프를 추가 (아래 스코프 참조 확인)

  5. Client ID와 선택적으로 Client Secret을 복사

PKCE vs Secret: config.yaml에서 client_secret을 생략하면 이 도구는 PKCE를 사용합니다(데스크톱 앱에 더 안전함). 포함하면 기본 인증(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단계 — 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

캐릭터 및 상태

도구

설명

list_authenticated_characters

위치, 함선, 지갑 및 활성 상태를 포함한 모든 캐릭터 나열

set_active_character

character_id가 생략될 때 기본값으로 사용할 캐릭터 설정

get_character_info

이름, 기업, 얼라이언스, 생일, 보안 상태

get_character_location

현재 태양계

get_character_ship

현재 탑승 중인 함선

get_character_status

한 번의 호출로 위치 + 함선 + 지갑 잔액 확인

스킬

도구

설명

get_skills_summary

총 SP, 미할당 SP, 모든 훈련된 스킬

get_skill_queue

완료 시간을 포함한 대기열의 스킬

get_character_attributes

지능/기억/인지/의지/매력 + 재분배 가능 여부

get_active_implants

현재 장착된 임플란트

자산 및 지갑

도구

설명

get_assets_list

위치/수량을 포함한 모든 소유 아이템

search_assets

아이템 유형 이름으로 자산 검색

get_assets_summary

ISK 가치와 함께 스테이션별로 그룹화된 자산

get_wallet_balance

ISK 잔액

get_wallet_journal

최근 지갑 거래

피팅 및 시장

도구

설명

get_ship_fittings

게임 내 저장된 모든 피팅

save_ship_fitting

게임에 새 피팅 저장 ✍️

get_market_orders

캐릭터의 활성 판매/구매 주문

check_item_price

모든 지역의 최적 구매/판매 가격 (기본값: Jita)

get_blueprints_list

ME/TE/생산 횟수 정보를 포함한 모든 청사진

get_industry_jobs_list

활성/완료된 제조 및 연구 작업

우주 및 항법

도구

설명

lookup_item_type

모든 아이템 ID에 대한 전체 유형 정보 + 도그마 속성

search_item_type

이름으로 아이템 ID 찾기

lookup_solar_system

시스템 정보 (보안, 행성, 성문)

resolve_eve_names

모든 EVE ID를 이름으로 변환

plan_route

최근접 이웃 최적화를 포함한 다중 시스템 경로 플래너

운송

도구

설명

find_valuables_to_haul

자산에서 작고 가치 있는 아이템을 스캔하고 가격 정보를 포함한 픽업 경로 계획

피팅 분석

도구

설명

get_ship_fit_stats

EFT 피팅을 구문 분석하여 전체 통계 확인 (방어, 피팅, 항법, 캡, 채굴, 화물)

compare_ship_fits

두 EFT 피팅의 차이점을 나란히 비교

get_fit_required_skills

주어진 EFT 피팅을 운용하는 데 필요한 모든 스킬 추출

check_fit_readiness

피팅을 운용할 수 있는 캐릭터와 부족한 스킬 확인

다중 캐릭터

도구

설명

get_all_characters_status

모든 인증된 캐릭터의 위치, 함선 및 지갑 상태

compare_skills_across_characters

모든 캐릭터 간의 특정 스킬(또는 총 SP) 비교

compare_wallets

모든 지갑 잔액 + 계정 전체 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 — 모든 지갑 잔액 + 함대 총 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)

스코프 참조

스코프

활성화 기능

esi-skills.read_skills.v1

get_skills_summary, compare_skills_across_characters, check_fit_readiness

esi-skills.read_skillqueue.v1

get_skill_queue, get_character_attributes

esi-clones.read_implants.v1

get_active_implants

esi-assets.read_assets.v1

get_assets_list, search_assets, get_assets_summary, find_valuables_to_haul

esi-wallet.read_character_wallet.v1

get_wallet_balance, get_wallet_journal, compare_wallets

esi-fittings.read_fittings.v1

get_ship_fittings

esi-fittings.write_fittings.v1

save_ship_fitting

esi-markets.read_character_orders.v1

get_market_orders

esi-characters.read_blueprints.v1

get_blueprints_list

esi-industry.read_character_jobs.v1

get_industry_jobs_list

esi-location.read_location.v1

get_character_location, get_character_status, get_all_characters_status

esi-location.read_ship_type.v1

get_character_ship, get_character_status, get_all_characters_status

esi-contracts.read_character_contracts.v1

향후: 계약 도구

esi-universe.read_structures.v1

플레이어 구조물의 자산 위치

참고: 피팅 분석 도구(get_ship_fit_stats, compare_ship_fits, get_fit_required_skills) 및 우주/항법 도구(plan_route, lookup_item_type 등)는 공용 ESI 엔드포인트를 사용하며 어떠한 스코프도 필요하지 않습니다.


보안 참고 사항

  • tokens.jsonconfig.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.yamlcallback_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

-
security - not tested
A
license - permissive license
-
quality - not tested

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