Skip to main content
Glama
32n1

EVE Online Companion MCP Server

by 32n1

EVE Online Companion — MCP 서버

개인 EVE Online Companion 역할을 하는 Claude Code용 MCP(Model Context Protocol) 서버입니다. Claude에게 캐릭터 데이터, 시장 가격, 킬보드 정보, 위키 지식 등에 대한 직접적인 액세스를 제공하며, 이 모든 것을 자연어로 처리할 수 있습니다.

주요 기능

"Ishtar를 조종할 수 있나요?" — 스킬을 확인하고 부족한 스킬과 훈련 시간을 보여줍니다.

"Jita에서 Warp Disruptor II 가격이 얼마인가요?" — ESI에서 실시간 시장 데이터를 가져옵니다.

"파일럿 XY는 얼마나 위험한가요?" — zKillboard 통계, 위험 등급, 주요 함선 정보를 확인합니다.

"Vexor 피팅을 보여줘" — 저장된 피팅을 EFT 형식으로 나열합니다.

"웜홀 메커니즘을 설명해줘" — EVE University 위키를 검색합니다.

29개의 모든 도구

카테고리

도구

설명

인증

eve_auth_login

SSO 로그인 (콜백까지 차단)

eve_auth_start

SSO 로그인 (비차단, localhost:8834 열기)

eve_auth_status

인증 상태 + 캐릭터 정보

캐릭터

eve_character_info

이름, 기업, 연합, 지갑, SP, 위치, 함선

eve_character_skills

그룹 또는 이름별 스킬 필터링

eve_character_skillqueue

시간 정보가 포함된 현재 스킬 큐

eve_character_implants

장착된 임플란트

위치

eve_location_current

성계, 스테이션, 함선, 온라인 상태

eve_route_plan

경로 계산 (최단/안전/위험)

eve_set_destination

게임 내 자동항법 목적지 설정

피팅

eve_fitting_list

저장된 피팅 (EFT 형식)

eve_fitting_save

EFT 문자열에서 피팅 저장

eve_fitting_analyze

피팅 분석 (탱킹, DPS, 캡 — Dogma 기반)

시장

eve_market_price

가격 확인 (기본 Jita, 다른 지역 가능)

eve_market_appraise

아이템 목록 평가 (게임 내 복사/붙여넣기)

eve_market_orders

본인의 활성 구매/판매 주문

인텔

eve_intel_character

파일럿 인텔: 기업, 킬, 위험 등급, 주요 함선

eve_intel_corporation

기업 인텔: 멤버, 연합, 킬보드 통계

eve_intel_system

성계 인텔: 킬, 점프, NPC 킬, 랫팅

eve_killmail_analyze

킬메일 분석: 피팅, 공격자, 피해량

자산

eve_assets_search

이름/유형별 자산 검색

eve_wallet_balance

지갑 잔액

eve_wallet_journal

최근 지갑 기록

유니버스

eve_type_info

Dogma 속성이 포함된 아이템/함선 상세 정보

eve_system_info

성계 상세 정보: 보안 등급, 지역, 스테이션

eve_search

통합 검색 (캐릭터, 기업, 성계, 아이템)

위키

eve_wiki_search

EVE University 위키 검색

eve_wiki_article

위키 문서 읽기 (Markdown 형식)

함대

eve_fleet_info

함대 상태 (함대 소속 시)


설정

1. EVE 개발자 애플리케이션

  1. https://developers.eveonline.com/ 접속

  2. "Create New Application" 클릭

  3. Application Type: Authentication & API Access

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

  5. 아래 목록에서 모든 스코프 선택

  6. Client ID 기록 (Secret Key는 선택 사항, 기밀 앱인 경우에만 필요)

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. 설치

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

3. 구성

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 사용 시 (기밀 앱인 경우):

{
  "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.md

API 클라이언트

클라이언트

기본 URL

인증

속도 제한

캐시

ESI

esi.evetech.net/latest

OAuth2 Bearer

Error-Limit 헤더

Expires-헤더 + 사용자 정의 TTL

zKillboard

zkillboard.com/api

없음

10 req/s

10분

EVE Tycoon

evetycoon.com/api/v1

없음

Expires-헤더

5분

위키

wiki.eveuniversity.org/api.php

없음

없음

1시간

캐싱

모든 API 응답은 메모리에 캐시됩니다:

데이터 유형

TTL

위치 / 함선 / 온라인

30초

지갑 잔액

2분

스킬 큐

5분

시장 가격 / 주문

5분

zKillboard 통계

10분

자산

30분

캐릭터 스킬

1시간

위키 문서

1시간

유형 정보 / 성계 정보

24시간

이름-ID 변환

24시간

ESI 속도 제한

ESI 클라이언트는 X-ESI-Error-Limit-RemainX-ESI-Error-Limit-Reset 헤더를 추적합니다. 오류 제한이 20 미만으로 떨어지면 재설정될 때까지 요청이 차단됩니다. 420 오류(오류 제한)는 RateLimitError로 발생합니다.

토큰 보안

  • 토큰은 ~/.eve-mcp/tokens.json에 저장됩니다.

  • EVE_MCP_TOKEN_PASSPHRASE가 설정된 경우: scrypt 키 파생을 사용한 AES-256-GCM 암호화

  • 암호문이 없는 경우: 일반 텍스트 저장 (stderr에 경고 표시)

  • 액세스 토큰은 만료 2분 전에 자동으로 갱신됩니다.

  • 리프레시 토큰은 갱신할 때마다 새로 고쳐집니다 (PKCE 휘발성 토큰 패턴).


개발

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

# Build
npm run build

# Ausfuehren
npm start

새 도구 추가

  1. src/tools/ 아래의 적절한 파일에 핸들러 추가

  2. server.tool(name, description, zodSchema, handler) 패턴 사용

  3. 오류는 항상 formatToolError(err)로 반환

  4. ESI 호출은 적절한 캐시 TTL과 함께 esi.get() / esi.publicGet() 사용

  5. 유형 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을 수정하세요.

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