Skip to main content
Glama
32n1

EVE Online Companion MCP Server

by 32n1

EVE Online Companion — Servidor MCP

Un servidor MCP (Model Context Protocol) para Claude Code que sirve como tu compañero personal de EVE Online. Proporciona a Claude acceso directo a datos de personajes, precios de mercado, inteligencia de killboards, conocimiento de la wiki y más, todo mediante lenguaje natural.

¿Qué puede hacer?

"¿Puedo volar el Ishtar?" — Comprueba tus habilidades y muestra las que faltan junto con el tiempo de entrenamiento.

"¿Cuánto cuesta un Warp Disruptor II en Jita?" — Obtiene datos de mercado en vivo desde ESI.

"¿Qué tan peligroso es el piloto XY?" — Comprueba las estadísticas de zKillboard, el nivel de peligro y las naves principales.

"Muéstrame mis equipamientos para el Vexor" — Lista los equipamientos guardados en formato EFT.

"Explícame las mecánicas de los agujeros de gusano" — Busca en la wiki de EVE University.

Las 29 herramientas

Categoría

Herramientas

Descripción

Auth

eve_auth_login

Inicio de sesión SSO (bloqueado hasta el callback)

eve_auth_start

Inicio de sesión SSO (no bloqueante, abre localhost:8834)

eve_auth_status

Estado de autenticación + Información del personaje

Character

eve_character_info

Nombre, Corp, Alianza, Cartera, SP, Ubicación, Nave

eve_character_skills

Filtrar habilidades por grupo o nombre

eve_character_skillqueue

Cola de habilidades actual con tiempos

eve_character_implants

Implantes equipados

Location

eve_location_current

Sistema, Estación, Nave, Estado en línea

eve_route_plan

Calcular ruta (más corta/segura/insegura)

eve_set_destination

Establecer destino del piloto automático en el juego

Fittings

eve_fitting_list

Equipamientos guardados (formato EFT)

eve_fitting_save

Guardar equipamiento desde una cadena EFT

eve_fitting_analyze

Análisis de equipamiento (Tanque, DPS, Cap — basado en Dogma)

Market

eve_market_price

Comprobación de precios (Jita por defecto, otras regiones posibles)

eve_market_appraise

Valorar lista de objetos (copiar y pegar desde el juego)

eve_market_orders

Órdenes de compra/venta activas propias

Intel

eve_intel_character

Intel del piloto: Corp, Kills, Nivel de peligro, Naves principales

eve_intel_corporation

Intel de la Corp: Miembros, Alianza, Estadísticas de killboard

eve_intel_system

Intel del sistema: Kills, Saltos, Kills de NPC, Ratting

eve_killmail_analyze

Desglosar killmail: Equipamiento, Atacante, Daño

Assets

eve_assets_search

Buscar activos por nombre/tipo

eve_wallet_balance

Saldo de la cartera

eve_wallet_journal

Entradas recientes de la cartera

Universe

eve_type_info

Detalles de objeto/nave con atributos Dogma

eve_system_info

Detalles del sistema: Sec, Región, Estaciones

eve_search

Búsqueda universal (Personajes, Corps, Sistemas, Objetos)

Wiki

eve_wiki_search

Buscar en la wiki de EVE University

eve_wiki_article

Leer artículo de la wiki (como Markdown)

Fleet

eve_fleet_info

Estado de la flota (si está en una)


Configuración

1. Aplicación de desarrollador de EVE

  1. Ve a https://developers.eveonline.com/

  2. "Create New Application"

  3. Tipo de aplicación: Authentication & API Access

  4. URL de callback: http://localhost:8834/callback

  5. Selecciona todos los alcances (scopes) de la lista a continuación

  6. Anota el Client ID (Secret Key opcional, solo para aplicaciones confidenciales)

esi-skills.read_skills.v1
esi-skills.read_skillqueue.v1
esi-clones.read_implants.v1
esi-assets.read_assets.v1
esi-wallet.read_character_wallet.v1
esi-fittings.read_fittings.v1
esi-fittings.write_fittings.v1
esi-characters.read_standings.v1
esi-killmails.read_killmails.v1
esi-location.read_location.v1
esi-location.read_ship_type.v1
esi-location.read_online.v1
esi-fleets.read_fleet.v1
esi-markets.read_character_orders.v1
esi-contracts.read_character_contracts.v1
esi-mail.read_mail.v1
esi-ui.open_window.v1
esi-ui.write_waypoint.v1
esi-search.search_structures.v1
esi-universe.read_structures.v1

2. Instalación

git clone <repo>
cd eve
npm install
npm run build

3. Configuración

mkdir -p ~/.eve-mcp

Crea ~/.eve-mcp/config.json:

{
  "clientId": "deine-client-id-von-ccp",
  "callbackUrl": "http://localhost:8834/callback",
  "userAgent": "eve-mcp-companion/1.0 (dein-character-name)"
}

Opcional con Secret Key (solo para aplicaciones confidenciales):

{
  "clientId": "deine-client-id",
  "secretKey": "dein-secret-key",
  "callbackUrl": "http://localhost:8834/callback",
  "userAgent": "eve-mcp-companion/1.0 (dein-character-name)"
}

Alternativamente mediante variables de entorno:

export EVE_MCP_CLIENT_ID="deine-client-id"
export EVE_MCP_CALLBACK_URL="http://localhost:8834/callback"
export EVE_MCP_USER_AGENT="eve-mcp-companion/1.0"

4. Integración con Claude Code

Añade el servidor MCP a tus ajustes de Claude Code.

Opción A — settings.json (recomendado):

Archivo: ~/.claude/settings.json

{
  "mcpServers": {
    "eve-online": {
      "command": "node",
      "args": ["/absoluter/pfad/zu/eve/dist/index.js"],
      "env": {
        "EVE_MCP_TOKEN_PASSPHRASE": "ein-sicheres-passwort"
      }
    }
  }
}

Opción B — Alcance del proyecto (.mcp.json en el directorio del proyecto):

{
  "mcpServers": {
    "eve-online": {
      "command": "node",
      "args": ["./dist/index.js"],
      "env": {
        "EVE_MCP_TOKEN_PASSPHRASE": "ein-sicheres-passwort"
      }
    }
  }
}

5. Primer inicio de sesión

Inicia Claude Code y di:

"Conéctame con EVE Online"

Claude llamará a eve_auth_start e iniciará un servidor de autenticación local. Abre http://localhost:8834 en el navegador; allí aparecerá una página de inicio de sesión al estilo EVE. Haz clic en "Authenticate via EVE SSO", inicia sesión en CCP y serás redirigido a una página de éxito con el retrato de tu personaje. Cierra la ventana, listo.


Arquitectura

eve/
├── src/
│   ├── index.ts                 # Server-Entry, registriert alle Tools
│   ├── config.ts                # Laedt ~/.eve-mcp/config.json
│   ├── auth/
│   │   ├── scopes.ts            # ESI Scope-Definitionen
│   │   ├── sso.ts               # OAuth2 PKCE Flow, Callback-Server
│   │   ├── tokens.ts            # Token-Persistence (AES-256-GCM)
│   │   └── pages.ts             # HTML-Seiten fuer Auth-Flow
│   ├── clients/
│   │   ├── esi.ts               # ESI API Client (Auth, Rate-Limiting, Cache)
│   │   ├── zkillboard.ts        # zKillboard Client (10 req/s Throttle)
│   │   ├── evetycoon.ts         # EVE Tycoon Markt-Client
│   │   └── wiki.ts              # EVE University Wiki (MediaWiki API)
│   ├── tools/
│   │   ├── auth.ts              # Login, Status
│   │   ├── character.ts         # Character Info, Skills, Queue, Implants
│   │   ├── location.ts          # Location, Route, Autopilot
│   │   ├── fitting.ts           # Fittings, EFT, Analyse
│   │   ├── universe.ts          # Type Info, System Info, Search
│   │   ├── market.ts            # Preise, Appraisal, Orders
│   │   ├── killboard.ts         # Character/Corp/System Intel, Killmails
│   │   ├── assets.ts            # Assets, Wallet
│   │   ├── wiki.ts              # Wiki Search, Article
│   │   └── fleet.ts             # Fleet Info
│   └── utils/
│       ├── cache.ts             # In-Memory Cache mit TTL
│       ├── errors.ts            # Error-Klassen + formatToolError()
│       ├── formatting.ts        # ISK, Zeit, EVE-Time Formatierung
│       ├── eft.ts               # EFT-Format Parser + Generator
│       └── sde.ts               # Type/System Name-Resolution (ESI-backed)
├── package.json
├── tsconfig.json
└── README.md

Clientes API

Cliente

URL base

Auth

Límite de tasa

Caché

ESI

esi.evetech.net/latest

OAuth2 Bearer

Cabecera Error-Limit

Cabecera Expires + TTL personalizado

zKillboard

zkillboard.com/api

ninguna

10 req/s

10 minutos

EVE Tycoon

evetycoon.com/api/v1

ninguna

Cabecera Expires

5 minutos

Wiki

wiki.eveuniversity.org/api.php

ninguna

ninguna

1 hora

Caché

Todas las respuestas de la API se almacenan en caché en memoria:

Tipo de dato

TTL

Ubicación / Nave / En línea

30 segundos

Saldo de la cartera

2 minutos

Cola de habilidades

5 minutos

Precios de mercado / Órdenes

5 minutos

Estadísticas de zKillboard

10 minutos

Activos

30 minutos

Habilidades del personaje

1 hora

Artículos de la wiki

1 hora

Información de tipo / sistema

24 horas

Resolución de nombre a ID

24 horas

Límite de tasa de ESI

El cliente ESI rastrea las cabeceras X-ESI-Error-Limit-Remain y X-ESI-Error-Limit-Reset. Si el límite de error cae por debajo de 20, las solicitudes se bloquean hasta el reinicio. Los errores 420 (límite de error) se lanzan como RateLimitError.

Seguridad de tokens

  • Los tokens se guardan en ~/.eve-mcp/tokens.json

  • Si EVE_MCP_TOKEN_PASSPHRASE está configurado: cifrado AES-256-GCM con derivación de clave scrypt

  • Sin frase de contraseña: almacenamiento en texto plano (con advertencia en stderr)

  • El token de acceso se actualiza automáticamente 2 minutos antes de caducar

  • El token de actualización se renueva en cada actualización (patrón de token volátil PKCE)


Desarrollo

# Dev-Mode (tsx, kein Build noetig)
npm run dev

# Build
npm run build

# Ausfuehren
npm start

Añadir una nueva herramienta

  1. Inserta el manejador en el archivo correspondiente en src/tools/

  2. Usa el patrón server.tool(name, description, zodSchema, handler)

  3. Devuelve siempre los errores con formatToolError(err)

  4. Realiza llamadas ESI mediante esi.get() / esi.publicGet() con el TTL de caché adecuado

  5. Resuelve IDs de tipo con resolveTypeName() / resolveTypeId()

Solución de problemas

"Config not found" — Crea ~/.eve-mcp/config.json o establece EVE_MCP_CLIENT_ID.

"Authentication required" — Llama a eve_auth_login o eve_auth_start.

"Token refresh failed" — El token de actualización ha caducado. Inicia sesión de nuevo.

"ESI error limit reached" — Demasiadas solicitudes erróneas. Espera automáticamente.

Puerto 8834 ocupado — Establece otro puerto en config.json y ajusta la URL de callback en CCP.

Install Server
A
security – no known vulnerabilities
F
license - not found
A
quality - A tier

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/32n1/eveMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server