Skip to main content
Glama

EVE ESI Tool 🚀

Eine EVE Online ESI-API-Schnittstelle mit einem Model Context Protocol (MCP) Server für die Integration von KI-Agenten. Verbinden Sie Ihren EVE-Charakter mit Claude, Augment Code, Cursor oder einem anderen MCP-kompatiblen KI-Assistenten — und stellen Sie dann Fragen wie "Was befindet sich in meinem Frachtraum?", "Schlage eine Hookbill-Ausstattung für Solo-FW vor" oder "Was sind meine wertvollsten Vermögenswerte?"


Architektur

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-Authentifizierungsablauf

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 ✓

Voraussetzungen

  • Python 3.11+

  • Ein EVE Online-Konto

  • Eine registrierte EVE-Entwickleranwendung (kostenlos — dauert 2 Minuten unter developers.eveonline.com)


Installation

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

Schritt 1 — Registrierung einer EVE-Anwendung

  1. Gehen Sie zu developers.eveonline.com → anmelden → Applications → Create Application

  2. Setzen Sie Connection TypeAuthentication & API Access

  3. Setzen Sie Callback URLhttp://localhost:8182/callback

  4. Fügen Sie die gewünschten ESI-Scopes hinzu (siehe Scopes-Referenz unten)

  5. Kopieren Sie Ihre Client ID und optional das Client Secret

PKCE vs. Secret: Wenn Sie client_secret in der config.yaml weglassen, verwendet das Tool PKCE (sicherer für Desktop-Apps). Wenn Sie es einfügen, wird der Standard-Autorisierungscode-Ablauf mit Basic Auth verwendet.


Schritt 2 — Konfiguration

cp config.example.yaml config.yaml

Bearbeiten Sie die 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"

Schritt 3 — Anmelden

python cli.py login

Ein Browserfenster öffnet sich für EVE SSO. Nachdem Sie zugestimmt haben, werden Ihre Token in tokens.json gespeichert. Führen Sie dies einmal pro Charakter aus. Sie können mehrere Charaktere authentifizieren — alle Tools akzeptieren einen optionalen character_id-Parameter.


CLI-Referenz

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

Schritt 4 — Verbindung mit Ihrem KI-Tool herstellen

Der MCP-Server verwendet den stdio-Transport — der KI-Client startet ihn als Subprozess und kommuniziert über stdin/stdout.

Augment Code (VS Code)

Öffnen Sie Ihre VS Code-Benutzereinstellungen (Strg+Umschalt+P → "Preferences: Open User Settings (JSON)") und fügen Sie Folgendes hinzu:

{
  "augment.advanced": {
    "mcpServers": {
      "eve-esi": {
        "command": "python",
        "args": ["C:/path/to/eve-esi-tool/mcp_server.py"],
        "cwd": "C:/path/to/eve-esi-tool"
      }
    }
  }
}

Starten Sie dann VS Code neu (Strg+Umschalt+P → "Developer: Reload Window"). Die EVE ESI-Tools sind automatisch im Agenten-Modus verfügbar.

Windows-Tipp: Verwenden Sie Schrägstriche / oder doppelte Backslashes \ im Pfad.


Claude Desktop

Bearbeiten Sie %APPDATA%\Claude\claude_desktop_config.json unter Windows oder ~/Library/Application Support/Claude/claude_desktop_config.json unter macOS. Erstellen Sie die Datei, falls sie nicht existiert:

{
  "mcpServers": {
    "eve-esi": {
      "command": "python",
      "args": ["/path/to/eve-esi-tool/mcp_server.py"],
      "cwd": "/path/to/eve-esi-tool"
    }
  }
}

Starten Sie Claude Desktop neu. Sie sehen ein 🔨 Hammer-Symbol in der Chat-Eingabeleiste, wenn MCP-Tools geladen sind. Klicken Sie darauf, um alle verfügbaren Tools zu sehen.

Entwicklermodus aktivieren: In Claude Desktop → Settings → Developer → Enable Developer Mode, um den Pfad zur Konfigurationsdatei für Ihr Betriebssystem zu sehen.


Cursor

Fügen Sie dies zu .cursor/mcp.json in Ihrem Projektstammverzeichnis oder global zu ~/.cursor/mcp.json hinzu:

{
  "mcpServers": {
    "eve-esi": {
      "command": "python",
      "args": ["/path/to/eve-esi-tool/mcp_server.py"],
      "cwd": "/path/to/eve-esi-tool"
    }
  }
}

Aktivieren Sie MCP unter 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

Verfügbare MCP-Tools

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

Charakter & Status

Tool

Beschreibung

list_authenticated_characters

Listet alle Charaktere mit Standort, Schiff, Wallet und aktivem Status auf

set_active_character

Legt fest, welcher Charakter standardmäßig verwendet wird, wenn character_id weggelassen wird

get_character_info

Name, Corp, Allianz, Geburtstag, Sicherheitsstatus

get_character_location

Aktuelles Sonnensystem

get_character_ship

Aktuell geflogenes Schiff

get_character_status

Schnappschuss: Standort + Schiff + Wallet-Guthaben

Fähigkeiten

Tool

Beschreibung

get_skills_summary

Gesamte SP, nicht zugewiesene SP, alle trainierten Fähigkeiten

get_skill_queue

Fähigkeiten in der Warteschlange mit Abschlusszeiten

get_character_attributes

Int/Mem/Per/Wil/Cha + Verfügbarkeit von Remaps

get_active_implants

Aktuell eingesetzte Implantate

Vermögenswerte & Wallet

Tool

Beschreibung

get_assets_list

Alle besessenen Gegenstände mit Standort/Menge

search_assets

Suche nach Vermögenswerten anhand des Gegenstandstyps

get_assets_summary

Vermögenswerte gruppiert nach Station mit ISK-Werten

get_wallet_balance

ISK-Guthaben

get_wallet_journal

Letzte Wallet-Transaktionen

Ausstattungen & Markt

Tool

Beschreibung

get_ship_fittings

Alle im Spiel gespeicherten Ausstattungen

save_ship_fitting

Speichert eine neue Ausstattung im Spiel ✍️

get_market_orders

Aktive Verkaufs-/Kaufaufträge des Charakters

check_item_price

Beste Kauf-/Verkaufspreise in jeder Region (Standard: Jita)

get_blueprints_list

Alle Blaupausen mit ME/TE/Runs-Informationen

get_industry_jobs_list

Aktive/abgeschlossene Fertigungs- & Forschungsaufträge

Universum & Navigation

Tool

Beschreibung

lookup_item_type

Vollständige Typinformationen + Dogma-Attribute für jede Gegenstands-ID

search_item_type

Findet Gegenstands-IDs anhand des Namens

lookup_solar_system

Systeminformationen (Sicherheit, Planeten, Stargates)

resolve_eve_names

Konvertiert alle EVE-IDs → Namen

plan_route

Routenplaner für mehrere Systeme mit Optimierung des nächsten Nachbarn

Transport

Tool

Beschreibung

find_valuables_to_haul

Scannt Vermögenswerte nach kleinen/wertvollen Gegenständen, plant Abholroute mit Preisgestaltung

Analyse von Ausstattungen

Tool

Beschreibung

get_ship_fit_stats

Analysiert eine EFT-Ausstattung → vollständige Statistiken (Verteidigung, Fitting, Nav, Cap, Mining, Fracht)

compare_ship_fits

Vergleich von zwei EFT-Ausstattungen nebeneinander mit Deltas

get_fit_required_skills

Extrahiert alle Fähigkeiten, die zum Fliegen einer bestimmten EFT-Ausstattung erforderlich sind

check_fit_readiness

Überprüft, welche Charaktere eine Ausstattung fliegen können und welche Fähigkeiten ihnen fehlen

Charakterübergreifend

Tool

Beschreibung

get_all_characters_status

Standort, Schiff und Wallet für ALLE authentifizierten Charaktere

compare_skills_across_characters

Vergleicht spezifische Fähigkeiten (oder gesamte SP) über alle Charaktere hinweg

compare_wallets

Alle Wallet-Guthaben + gesamte ISK über alle Konten hinweg

✍️ save_ship_fitting ist das einzige Tool, das in Ihr Konto schreibt. Alle anderen sind schreibgeschützt.


Beispielkonversationen

Sobald die Verbindung hergestellt ist, können Sie Fragen in natürlicher Sprache stellen:

"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"

Unterstützung für mehrere Charaktere

Sie können mehrere EVE-Charaktere authentifizieren. Führen Sie python cli.py login einmal pro Charakter aus — alle Token werden in tokens.json gespeichert.

# Log in additional characters (run once per character)
python cli.py login

# List all authenticated characters
python cli.py chars

Aktiver Charakter

Verwenden Sie set_active_character, um auszuwählen, welcher Charakter standardmäßig verwendet werden soll, wenn character_id weggelassen wird. Wenn kein aktiver Charakter festgelegt ist, wird der erste authentifizierte Charakter verwendet.

Alle individuellen Tools akzeptieren auch einen optionalen character_id-Parameter für Ad-hoc-Abfragen eines bestimmten Alts.

Charakterübergreifende Tools

Diese Tools arbeiten gleichzeitig auf allen authentifizierten Charakteren — Sie müssen sie nicht einzeln abfragen:

  • get_all_characters_status — Standort, Schiff und Wallet für alle in einem Aufruf

  • compare_skills_across_characters — Vergleicht spezifische Fähigkeiten oder gesamte SP nebeneinander

  • compare_wallets — Alle Wallet-Guthaben + gesamte Flotten-ISK

  • check_fit_readiness — Überprüft, welche Charaktere eine bestimmte Ausstattung fliegen können und was ihnen fehlt


Projektstruktur

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-Referenz

Scope

Ermöglicht

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

Zukunft: Vertragstools

esi-universe.read_structures.v1

Vermögensstandorte in Spielerstrukturen

Hinweis: Tools zur Analyse von Ausstattungen (get_ship_fit_stats, compare_ship_fits, get_fit_required_skills) und Universums-/Navigationstools (plan_route, lookup_item_type usw.) verwenden öffentliche ESI-Endpunkte und erfordern keine Scopes.


Sicherheitshinweise

  • tokens.json und config.yaml sind über .gitignore von Git ausgeschlossen

  • Token werden lokal gespeichert — niemals an Dritte gesendet

  • Der MCP-Server läuft nur, wenn Ihr KI-Client aktiv ist

  • Alle ESI-Aufrufe gehen direkt über HTTPS an esi.evetech.net

  • Die einzige Schreiboperation ist save_ship_fitting — es können keine ISK oder Gegenstände verschoben werden


Fehlerbehebung

Fehler No authenticated characters

python cli.py login   # run this first

400 Bad Request während der Anmeldung

  • Stellen Sie sicher, dass Ihre callback_url in config.yaml exakt mit der im EVE-Entwicklerportal übereinstimmt

MCP-Tools werden in Augment/Claude nicht angezeigt

  • Überprüfen Sie, ob der command-Pfad auf die korrekte Python-Executable zeigt

  • Stellen Sie sicher, dass Sie pip install -e . im Projektverzeichnis ausgeführt haben

  • Laden Sie VS Code neu / starten Sie Claude Desktop nach dem Bearbeiten der Konfiguration neu

Scope-Fehler bei bestimmten Tools

  • Führen Sie python cli.py login erneut aus, nachdem Sie neue Scopes zur config.yaml hinzugefügt haben

  • Stellen Sie sicher, dass die neuen Scopes auch zu Ihrer EVE-Entwickleranwendung hinzugefügt wurden


Erstellt mit FastMCP · ESI-Daten von 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