EVE Online Companion MCP Server
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 |
| Inicio de sesión SSO (bloqueado hasta el callback) |
| Inicio de sesión SSO (no bloqueante, abre localhost:8834) | |
| Estado de autenticación + Información del personaje | |
Character |
| Nombre, Corp, Alianza, Cartera, SP, Ubicación, Nave |
| Filtrar habilidades por grupo o nombre | |
| Cola de habilidades actual con tiempos | |
| Implantes equipados | |
Location |
| Sistema, Estación, Nave, Estado en línea |
| Calcular ruta (más corta/segura/insegura) | |
| Establecer destino del piloto automático en el juego | |
Fittings |
| Equipamientos guardados (formato EFT) |
| Guardar equipamiento desde una cadena EFT | |
| Análisis de equipamiento (Tanque, DPS, Cap — basado en Dogma) | |
Market |
| Comprobación de precios (Jita por defecto, otras regiones posibles) |
| Valorar lista de objetos (copiar y pegar desde el juego) | |
| Órdenes de compra/venta activas propias | |
Intel |
| Intel del piloto: Corp, Kills, Nivel de peligro, Naves principales |
| Intel de la Corp: Miembros, Alianza, Estadísticas de killboard | |
| Intel del sistema: Kills, Saltos, Kills de NPC, Ratting | |
| Desglosar killmail: Equipamiento, Atacante, Daño | |
Assets |
| Buscar activos por nombre/tipo |
| Saldo de la cartera | |
| Entradas recientes de la cartera | |
Universe |
| Detalles de objeto/nave con atributos Dogma |
| Detalles del sistema: Sec, Región, Estaciones | |
| Búsqueda universal (Personajes, Corps, Sistemas, Objetos) | |
Wiki |
| Buscar en la wiki de EVE University |
| Leer artículo de la wiki (como Markdown) | |
Fleet |
| Estado de la flota (si está en una) |
Configuración
1. Aplicación de desarrollador de EVE
"Create New Application"
Tipo de aplicación: Authentication & API Access
URL de callback:
http://localhost:8834/callbackSelecciona todos los alcances (scopes) de la lista a continuación
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.v12. Instalación
git clone <repo>
cd eve
npm install
npm run build3. Configuración
mkdir -p ~/.eve-mcpCrea ~/.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.mdClientes API
Cliente | URL base | Auth | Límite de tasa | Caché |
ESI |
| OAuth2 Bearer | Cabecera Error-Limit | Cabecera Expires + TTL personalizado |
zKillboard |
| ninguna | 10 req/s | 10 minutos |
EVE Tycoon |
| ninguna | Cabecera Expires | 5 minutos |
Wiki |
| 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.jsonSi
EVE_MCP_TOKEN_PASSPHRASEestá configurado: cifrado AES-256-GCM con derivación de clave scryptSin 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 startAñadir una nueva herramienta
Inserta el manejador en el archivo correspondiente en
src/tools/Usa el patrón
server.tool(name, description, zodSchema, handler)Devuelve siempre los errores con
formatToolError(err)Realiza llamadas ESI mediante
esi.get()/esi.publicGet()con el TTL de caché adecuadoResuelve 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.
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