EVE Online Companion MCP Server
EVE Online Companion — MCP Server
Claude Code用のMCP(Model Context Protocol)サーバーで、パーソナルなEVE Onlineコンパニオンとして機能します。Claudeにキャラクターデータ、市場価格、キルボード情報、Wiki知識などへの直接アクセスを提供し、すべて自然言語で操作可能です。
何ができるのか?
「Ishtarに乗れる?」 — スキルを確認し、不足しているスキルとトレーニング時間を表示します。
「JitaでのWarp Disruptor IIの価格は?」 — ESIからライブ市場データを取得します。
「パイロットXYはどれくらい危険?」 — zKillboardの統計、危険度評価、主要な使用艦船を確認します。
「Vexorのフィッティングを見せて」 — 保存されたEFT形式のフィッティングをリストアップします。
「ワームホールの仕組みを教えて」 — EVE University Wikiを検索します。
全29種類のツール
カテゴリ | ツール | 説明 |
Auth |
| SSOログイン(コールバックまでブロック) |
| SSOログイン(ノンブロッキング、localhost:8834を開く) | |
| 認証ステータス + キャラクター情報 | |
Character |
| 名前、所属コーポ、アライアンス、所持金、SP、場所、艦船 |
| グループまたは名前でスキルをフィルタリング | |
| 現在のスキルキューと完了時間 | |
| 装着中のインプラント | |
Location |
| システム、ステーション、艦船、オンライン状態 |
| ルート計算(最短/安全/危険) | |
| ゲーム内のオートパイロット目的地を設定 | |
Fittings |
| 保存されたフィッティング(EFT形式) |
| EFT文字列からフィッティングを保存 | |
| フィッティング分析(タンク、DPS、Cap — Dogmaベース) | |
Market |
| 価格チェック(デフォルトはJita、他リージョンも可) |
| アイテムリストの評価(ゲーム内からコピー&ペースト) | |
| 自身の有効な売買注文 | |
Intel |
| パイロット情報:コーポ、キル数、危険度、主要艦船 |
| コーポ情報:メンバー、アライアンス、キルボード統計 | |
| システム情報:キル数、ジャンプ数、NPCキル数、ラッティング | |
| キルメールの分析:フィッティング、攻撃者、ダメージ | |
Assets |
| 名前/タイプでアセットを検索 |
| 所持金残高 | |
| 最近のウォレット履歴 | |
Universe |
| アイテム/艦船の詳細(Dogma属性付き) |
| システム詳細:セキュリティ、リージョン、ステーション | |
| ユニバーサル検索(キャラ、コーポ、システム、アイテム) | |
Wiki |
| EVE University Wikiを検索 |
| Wiki記事を読む(Markdown形式) | |
Fleet |
| フリートステータス(フリート参加時) |
セットアップ
1. EVE Developer Application
「Create New Application」を選択
Application Type: Authentication & API Access
Callback URL:
http://localhost:8834/callback以下のリストから必要なスコープをすべて選択
Client ID を控える(Secret Keyはオプション、confidentialアプリのみ)
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. インストール
git clone <repo>
cd eve
npm install
npm run build3. 設定
mkdir -p ~/.eve-mcp~/.eve-mcp/config.json を作成します:
{
"clientId": "deine-client-id-von-ccp",
"callbackUrl": "http://localhost:8834/callback",
"userAgent": "eve-mcp-companion/1.0 (dein-character-name)"
}Secret Keyを使用する場合(confidentialアプリのみ):
{
"clientId": "deine-client-id",
"secretKey": "dein-secret-key",
"callbackUrl": "http://localhost:8834/callback",
"userAgent": "eve-mcp-companion/1.0 (dein-character-name)"
}または環境変数経由:
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との統合
Claude Codeの設定にMCPサーバーを追加します。
オプション A — settings.json (推奨):
ファイル: ~/.claude/settings.json
{
"mcpServers": {
"eve-online": {
"command": "node",
"args": ["/absoluter/pfad/zu/eve/dist/index.js"],
"env": {
"EVE_MCP_TOKEN_PASSPHRASE": "ein-sicheres-passwort"
}
}
}
}オプション B — プロジェクトスコープ (プロジェクトディレクトリ内の .mcp.json):
{
"mcpServers": {
"eve-online": {
"command": "node",
"args": ["./dist/index.js"],
"env": {
"EVE_MCP_TOKEN_PASSPHRASE": "ein-sicheres-passwort"
}
}
}
}5. 初回ログイン
Claude Codeを起動し、以下のように入力します:
"Verbinde mich mit EVE Online" (EVE Onlineに接続して)
Claudeが eve_auth_start を呼び出し、ローカル認証サーバーを起動します。ブラウザで http://localhost:8834 を開くと、EVEスタイルのログインページが表示されます。「Authenticate via EVE SSO」をクリックしてCCPにログインすると、キャラクターポートレートが表示された成功ページにリダイレクトされます。ウィンドウを閉じれば完了です。
アーキテクチャ
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クライアント
クライアント | ベースURL | 認証 | レート制限 | キャッシュ |
ESI |
| OAuth2 Bearer | Error-Limitヘッダー | Expiresヘッダー + カスタムTTL |
zKillboard |
| なし | 10 req/s | 10分 |
EVE Tycoon |
| なし | Expiresヘッダー | 5分 |
Wiki |
| なし | なし | 1時間 |
キャッシング
すべてのAPIレスポンスはインメモリでキャッシュされます:
データ型 | TTL |
場所 / 艦船 / オンライン状態 | 30秒 |
ウォレット残高 | 2分 |
スキルキュー | 5分 |
市場価格 / 注文 | 5分 |
zKillboard統計 | 10分 |
アセット | 30分 |
キャラクターのスキル | 1時間 |
Wiki記事 | 1時間 |
タイプ情報 / システム情報 | 24時間 |
名前からIDへの解決 | 24時間 |
ESIレート制限
ESIクライアントは X-ESI-Error-Limit-Remain および X-ESI-Error-Limit-Reset ヘッダーを追跡します。エラー制限が20を下回ると、リセットまでリクエストがブロックされます。エラー420(Error Limit)は RateLimitError としてスローされます。
トークンのセキュリティ
トークンは
~/.eve-mcp/tokens.jsonに保存されますEVE_MCP_TOKEN_PASSPHRASEが設定されている場合:scryptキー導出による AES-256-GCM 暗号化パスフレーズがない場合:平文で保存(stderrに警告を表示)
アクセストークンは期限切れの2分前に自動的にリフレッシュされます
リフレッシュトークンはリフレッシュのたびに更新されます(PKCE volatile token pattern)
開発
# Dev-Mode (tsx, kein Build noetig)
npm run dev
# Build
npm run build
# Ausfuehren
npm start新しいツールの追加
src/tools/配下の適切なファイルにハンドラーを追加server.tool(name, description, zodSchema, handler)パターンを使用エラーは常に
formatToolError(err)で返すESI呼び出しは適切なキャッシュTTLを指定して
esi.get()/esi.publicGet()を使用タイプIDは
resolveTypeName()/resolveTypeId()で解決
トラブルシューティング
"Config not found" — ~/.eve-mcp/config.json を作成するか、EVE_MCP_CLIENT_ID を設定してください。
"Authentication required" — eve_auth_login または eve_auth_start を呼び出してください。
"Token refresh failed" — リフレッシュトークンの期限切れです。再ログインしてください。
"ESI error limit reached" — エラーリクエストが多すぎます。自動的に待機します。
ポート8834が使用中 — config.jsonで別のポートを設定し、CCP側でコールバックURLを更新してください。
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