Skip to main content
Glama

Herramienta EVE ESI 🚀

Una interfaz de la API ESI de EVE Online con un servidor de Protocolo de Contexto de Modelo (MCP) para la integración de agentes de IA. Conecta tu personaje de EVE a Claude, Augment Code, Cursor o cualquier asistente de IA compatible con MCP, y luego haz preguntas como "¿Qué hay en mi bodega de carga?", "Sugiere un equipamiento de Hookbill para FW en solitario" o "¿Cuáles son mis activos más valiosos?".


Arquitectura

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

Flujo de autenticación 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 ✓

Requisitos previos

  • Python 3.11+

  • Una cuenta de EVE Online

  • Una aplicación de desarrollador de EVE registrada (gratuita; toma 2 minutos en developers.eveonline.com)


Instalación

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

Paso 1 — Registrar una aplicación de EVE

  1. Ve a developers.eveonline.com → inicia sesión → Applications → Create Application

  2. Configura Connection TypeAuthentication & API Access

  3. Configura Callback URLhttp://localhost:8182/callback

  4. Añade los alcances (scopes) de ESI que desees (consulta la Referencia de alcances a continuación)

  5. Copia tu Client ID y, opcionalmente, tu Client Secret

PKCE vs Secret: Si omites client_secret en config.yaml, la herramienta utiliza PKCE (más seguro para aplicaciones de escritorio). Si lo incluyes, utiliza el flujo estándar de Código de Autorización con Autenticación Básica.


Paso 2 — Configuración

cp config.example.yaml config.yaml

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

Paso 3 — Iniciar sesión

python cli.py login

Se abrirá una ventana del navegador para el SSO de EVE. Después de aprobar, tus tokens se guardarán en tokens.json. Ejecuta esto una vez por personaje. Puedes autenticar varios personajes; todas las herramientas aceptan un parámetro opcional character_id.


Referencia de 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

Paso 4 — Conectar a tu herramienta de IA

El servidor MCP utiliza transporte stdio: el cliente de IA lo inicia como un subproceso y se comunica a través de stdin/stdout.

Augment Code (VS Code)

Abre la configuración de usuario de VS Code (Ctrl+Shift+P → "Preferences: Open User Settings (JSON)") y añade:

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

Luego recarga VS Code (Ctrl+Shift+P → "Developer: Reload Window"). Las herramientas de EVE ESI estarán disponibles automáticamente en modo Agente.

Consejo para Windows: Usa barras diagonales / o barras diagonales inversas dobles \ en la ruta.


Claude Desktop

Edita %APPDATA%\Claude\claude_desktop_config.json en Windows, o ~/Library/Application Support/Claude/claude_desktop_config.json en macOS. Crea el archivo si no existe:

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

Reinicia Claude Desktop. Verás un icono de martillo 🔨 en la barra de entrada de chat cuando las herramientas MCP estén cargadas. Haz clic en él para ver todas las herramientas disponibles.

Habilitar modo desarrollador: En Claude Desktop → Settings → Developer → Enable Developer Mode para ver la ruta del archivo de configuración para tu sistema operativo.


Cursor

Añádelo a .cursor/mcp.json en la raíz de tu proyecto, o a ~/.cursor/mcp.json globalmente:

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

Habilita MCP en 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

Herramientas MCP disponibles

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

Personaje y estado

Herramienta

Descripción

list_authenticated_characters

Lista todos los personajes con ubicación, nave, billetera y estado activo

set_active_character

Establece el personaje predeterminado para las herramientas cuando se omite character_id

get_character_info

Nombre, corporación, alianza, cumpleaños, estado de seguridad

get_character_location

Sistema solar actual

get_character_ship

Nave que se está pilotando actualmente

get_character_status

Instantánea rápida: ubicación + nave + saldo de billetera

Habilidades

Herramienta

Descripción

get_skills_summary

SP total, SP no asignados, todas las habilidades entrenadas

get_skill_queue

Habilidades en cola con tiempos de finalización

get_character_attributes

Int/Mem/Per/Wil/Cha + disponibilidad de reasignación

get_active_implants

Implantes conectados actualmente

Activos y billetera

Herramienta

Descripción

get_assets_list

Todos los artículos poseídos con ubicación/cantidad

search_assets

Busca activos por nombre de tipo de artículo

get_assets_summary

Activos agrupados por estación con valores en ISK

get_wallet_balance

Saldo en ISK

get_wallet_journal

Transacciones recientes de la billetera

Equipamientos y mercado

Herramienta

Descripción

get_ship_fittings

Todos los equipamientos guardados en el juego

save_ship_fitting

Guarda un nuevo equipamiento en el juego ✍️

get_market_orders

Órdenes de venta/compra activas del personaje

check_item_price

Mejores precios de compra/venta en cualquier región (predeterminado: Jita)

get_blueprints_list

Todos los planos con información de ME/TE/runs

get_industry_jobs_list

Trabajos de fabricación e investigación activos/completados

Universo y navegación

Herramienta

Descripción

lookup_item_type

Información completa del tipo + atributos dogma para cualquier ID de artículo

search_item_type

Encuentra IDs de artículos por nombre

lookup_solar_system

Información del sistema (seguridad, planetas, puertas estelares)

resolve_eve_names

Convierte cualquier ID de EVE a nombres

plan_route

Planificador de rutas multisistema con optimización de vecino más cercano

Transporte

Herramienta

Descripción

find_valuables_to_haul

Escanea activos en busca de artículos pequeños/valiosos, planifica ruta de recogida con precios

Análisis de equipamiento

Herramienta

Descripción

get_ship_fit_stats

Analiza un equipamiento EFT → estadísticas completas (defensa, ajuste, navegación, capacitador, minería, carga)

compare_ship_fits

Comparación lado a lado de dos equipamientos EFT con diferencias

get_fit_required_skills

Extrae todas las habilidades necesarias para pilotar un equipamiento EFT dado

check_fit_readiness

Comprueba qué personajes pueden pilotar un equipamiento y qué habilidades les faltan

Interpersonaje

Herramienta

Descripción

get_all_characters_status

Ubicación, nave y billetera para TODOS los personajes autenticados

compare_skills_across_characters

Compara habilidades específicas (o SP total) entre todos los personajes

compare_wallets

Todos los saldos de billetera + ISK total entre cuentas

✍️ save_ship_fitting es la única herramienta que escribe en tu cuenta. Todas las demás son de solo lectura.


Ejemplos de conversaciones

Una vez conectado, puedes hacer preguntas en lenguaje natural:

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

Soporte para múltiples personajes

Puedes autenticar varios personajes de EVE. Ejecuta python cli.py login una vez por personaje; todos los tokens se almacenan en tokens.json.

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

# List all authenticated characters
python cli.py chars

Personaje activo

Usa set_active_character para elegir qué personaje usarán las herramientas de forma predeterminada cuando se omita character_id. Si no se establece ningún personaje activo, se utiliza el primer personaje autenticado.

Todas las herramientas individuales también aceptan un parámetro opcional character_id para consultas ad-hoc sobre un personaje secundario específico.

Herramientas interpersonaje

Estas herramientas operan sobre todos los personajes autenticados a la vez; no es necesario consultarlos uno por uno:

  • get_all_characters_status — Ubicación, nave y billetera de todos en una sola llamada

  • compare_skills_across_characters — Compara habilidades específicas o SP total lado a lado

  • compare_wallets — Todos los saldos de billetera + ISK total de la flota

  • check_fit_readiness — Comprueba qué personajes pueden pilotar un equipamiento dado y qué les falta


Estructura del proyecto

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)

Referencia de alcances (scopes)

Alcance

Habilita

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

Futuro: herramientas de contratos

esi-universe.read_structures.v1

Ubicaciones de activos en estructuras de jugadores

Nota: Las herramientas de análisis de equipamiento (get_ship_fit_stats, compare_ship_fits, get_fit_required_skills) y las herramientas de universo/navegación (plan_route, lookup_item_type, etc.) utilizan endpoints públicos de ESI y no requieren ningún alcance.


Notas de seguridad

  • tokens.json y config.yaml están excluidos de git mediante .gitignore

  • Los tokens se almacenan localmente; nunca se envían a terceros

  • El servidor MCP solo se ejecuta cuando tu cliente de IA está activo

  • Todas las llamadas a ESI van directamente a esi.evetech.net a través de HTTPS

  • La única operación de escritura es save_ship_fitting; no se pueden mover ISK ni artículos


Solución de problemas

Error No authenticated characters

python cli.py login   # run this first

400 Bad Request durante el inicio de sesión

  • Asegúrate de que tu callback_url en config.yaml coincida exactamente con lo que configuraste en el portal de desarrolladores de EVE

Las herramientas MCP no aparecen en Augment/Claude

  • Comprueba que la ruta command apunte al ejecutable de Python correcto

  • Asegúrate de haber ejecutado pip install -e . en el directorio del proyecto

  • Recarga VS Code / reinicia Claude Desktop después de editar la configuración

Errores de alcance en herramientas específicas

  • Vuelve a ejecutar python cli.py login después de añadir nuevos alcances a config.yaml

  • Asegúrate de que los nuevos alcances también se añadan a tu aplicación de desarrollador de EVE


Creado con FastMCP · Datos de ESI de 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