EVE Online Companion MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@EVE Online Companion MCP Serverwhat's the price of a Vexor Navy Issue in Jita?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
EVE Online Companion — MCP Server
Ein MCP-Server (Model Context Protocol) fuer Claude Code, der als persoenlicher EVE Online Companion dient. Gibt Claude direkten Zugriff auf Character-Daten, Marktpreise, Killboard-Intel, Wiki-Wissen und mehr — alles ueber natuerliche Sprache.
Was kann das?
"Kann ich die Ishtar fliegen?" — Prueft deine Skills und zeigt fehlende mit Trainingszeit.
"Was kostet ein Warp Disruptor II in Jita?" — Holt Live-Marktdaten von ESI.
"Wie gefaehrlich ist der Pilot XY?" — Checkt zKillboard-Stats, Danger-Rating, Top-Ships.
"Zeig mir meine Fittings fuer die Vexor" — Listet gespeicherte Fits im EFT-Format.
"Erklaer mir Wormhole-Mechaniken" — Durchsucht die EVE University Wiki.
Alle 29 Tools
Kategorie | Tools | Beschreibung |
Auth |
| SSO-Login (blockiert bis Callback) |
| SSO-Login (non-blocking, oeffne localhost:8834) | |
| Auth-Status + Character-Info | |
Character |
| Name, Corp, Alliance, Wallet, SP, Location, Ship |
| Skills filtern nach Gruppe oder Name | |
| Aktuelle Skill-Queue mit Zeiten | |
| Eingesteckte Implants | |
Location |
| System, Station, Schiff, Online-Status |
| Route berechnen (shortest/secure/insecure) | |
| Autopilot-Ziel im Spiel setzen | |
Fittings |
| Gespeicherte Fittings (EFT-Format) |
| Fitting aus EFT-String speichern | |
| Fitting-Analyse (Tank, DPS, Cap — Dogma-basiert) | |
Market |
| Preis-Check (Jita default, andere Regionen moeglich) |
| Itemliste bewerten (Copy-Paste aus dem Spiel) | |
| Eigene aktive Kauf-/Verkaufsauftraege | |
Intel |
| Pilot-Intel: Corp, Kills, Danger-Rating, Top-Ships |
| Corp-Intel: Members, Alliance, Killboard-Stats | |
| System-Intel: Kills, Jumps, NPC-Kills, Ratting | |
| Killmail aufschluesseln: Fit, Attacker, Damage | |
Assets |
| Assets nach Name/Typ durchsuchen |
| Wallet-Balance | |
| Letzte Wallet-Eintraege | |
Universe |
| Item/Ship-Details mit Dogma-Attributen |
| System-Details: Sec, Region, Stationen | |
| Universelle Suche (Chars, Corps, Systems, Items) | |
Wiki |
| EVE University Wiki durchsuchen |
| Wiki-Artikel lesen (als Markdown) | |
Fleet |
| Fleet-Status (wenn in Fleet) |
Setup
1. EVE Developer Application
"Create New Application"
Application Type: Authentication & API Access
Callback URL:
http://localhost:8834/callbackAlle Scopes aus der Liste unten auswaehlen
Client ID notieren (Secret Key optional, nur fuer confidential apps)
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. Installation
git clone <repo>
cd eve
npm install
npm run build3. Konfiguration
mkdir -p ~/.eve-mcpErstelle ~/.eve-mcp/config.json:
{
"clientId": "deine-client-id-von-ccp",
"callbackUrl": "http://localhost:8834/callback",
"userAgent": "eve-mcp-companion/1.0 (dein-character-name)"
}Optional mit Secret Key (nur bei confidential apps):
{
"clientId": "deine-client-id",
"secretKey": "dein-secret-key",
"callbackUrl": "http://localhost:8834/callback",
"userAgent": "eve-mcp-companion/1.0 (dein-character-name)"
}Alternativ via Environment-Variablen:
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. Claude Code Integration
Fuege den MCP-Server in deine Claude Code Settings ein.
Option A — settings.json (empfohlen):
Datei: ~/.claude/settings.json
{
"mcpServers": {
"eve-online": {
"command": "node",
"args": ["/absoluter/pfad/zu/eve/dist/index.js"],
"env": {
"EVE_MCP_TOKEN_PASSPHRASE": "ein-sicheres-passwort"
}
}
}
}Option B — Projekt-scope (.mcp.json im Projektverzeichnis):
{
"mcpServers": {
"eve-online": {
"command": "node",
"args": ["./dist/index.js"],
"env": {
"EVE_MCP_TOKEN_PASSPHRASE": "ein-sicheres-passwort"
}
}
}
}5. Erster Login
Starte Claude Code und sage:
"Verbinde mich mit EVE Online"
Claude ruft eve_auth_start auf und startet einen lokalen Auth-Server. Oeffne http://localhost:8834 im Browser — dort erscheint eine Login-Seite im EVE-Stil. Klicke "Authenticate via EVE SSO", logge dich bei CCP ein, und du wirst zurueckgeleitet zu einer Erfolgsseite mit deinem Character-Portrait. Fenster schliessen, fertig.
Architektur
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.mdAPI-Clients
Client | Base URL | Auth | Rate Limit | Cache |
ESI |
| OAuth2 Bearer | Error-Limit Header | Expires-Header + custom TTL |
zKillboard |
| keine | 10 req/s | 10 Minuten |
EVE Tycoon |
| keine | Expires-Header | 5 Minuten |
Wiki |
| keine | keine | 1 Stunde |
Caching
Alle API-Antworten werden in-memory gecacht:
Datentyp | TTL |
Location / Ship / Online | 30 Sekunden |
Wallet Balance | 2 Minuten |
Skill Queue | 5 Minuten |
Market Prices / Orders | 5 Minuten |
zKillboard Stats | 10 Minuten |
Assets | 30 Minuten |
Character Skills | 1 Stunde |
Wiki Articles | 1 Stunde |
Type Info / System Info | 24 Stunden |
Name-zu-ID Resolution | 24 Stunden |
ESI Rate-Limiting
Der ESI-Client trackt X-ESI-Error-Limit-Remain und X-ESI-Error-Limit-Reset Header. Wenn das Error-Limit unter 20 faellt, werden Requests bis zum Reset blockiert. Fehler 420 (Error Limit) werden als RateLimitError geworfen.
Token-Sicherheit
Tokens werden in
~/.eve-mcp/tokens.jsongespeichertWenn
EVE_MCP_TOKEN_PASSPHRASEgesetzt ist: AES-256-GCM Verschluesselung mit scrypt-Key-DerivationOhne Passphrase: Klartext-Speicherung (mit Warnung auf stderr)
Access-Token wird automatisch 2 Minuten vor Ablauf refreshed
Refresh-Token wird bei jedem Refresh erneuert (PKCE volatile token pattern)
Entwicklung
# Dev-Mode (tsx, kein Build noetig)
npm run dev
# Build
npm run build
# Ausfuehren
npm startNeues Tool hinzufuegen
Handler in die passende Datei unter
src/tools/einfuegenserver.tool(name, description, zodSchema, handler)Pattern verwendenFehler immer mit
formatToolError(err)zurueckgebenESI-Calls ueber
esi.get()/esi.publicGet()mit passendem Cache-TTLType-IDs mit
resolveTypeName()/resolveTypeId()aufloesen
Troubleshooting
"Config not found" — ~/.eve-mcp/config.json anlegen oder EVE_MCP_CLIENT_ID setzen.
"Authentication required" — eve_auth_login oder eve_auth_start aufrufen.
"Token refresh failed" — Refresh-Token abgelaufen. Erneut einloggen.
"ESI error limit reached" — Zu viele fehlerhafte Requests. Wartet automatisch.
Port 8834 belegt — Anderen Port in config.json setzen und Callback-URL bei CCP anpassen.
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
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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