Skip to main content
Glama
32n1

EVE Online Companion MCP Server

by 32n1

EVE Online Companion — MCP 服务器

一个用于 Claude Code 的 MCP (Model Context Protocol) 服务器,作为你的个人 EVE Online 伴侣。它让 Claude 能够通过自然语言直接访问角色数据、市场价格、击杀板情报、维基知识等。

它能做什么?

“我能驾驶伊什塔级吗?” — 检查你的技能,并显示缺失的技能及训练时间。

“吉他 (Jita) 的跃迁扰频器 II 多少钱?” — 从 ESI 获取实时市场数据。

“飞行员 XY 有多危险?” — 检查 zKillboard 统计数据、危险等级和常用舰船。

“给我看看我的毒蜥级配置” — 以 EFT 格式列出已保存的配置。

“给我解释一下虫洞机制” — 搜索 EVE University 维基。

全部 29 个工具

分类

工具

描述

认证

eve_auth_login

SSO 登录(阻塞直到回调)

eve_auth_start

SSO 登录(非阻塞,打开 localhost:8834)

eve_auth_status

认证状态 + 角色信息

角色

eve_character_info

姓名、军团、联盟、钱包、技能点、位置、舰船

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

价格查询(默认为吉他,支持其他地区)

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. 应用程序类型:Authentication & API Access

  4. 回调 URL:http://localhost:8834/callback

  5. 从下方的列表中选择所有必要的 Scopes

  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 集成

将 MCP 服务器添加到你的 Claude Code 设置中。

选项 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"

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

错误限制 Header

Expires-Header + 自定义 TTL

zKillboard

zkillboard.com/api

10 req/s

10 分钟

EVE Tycoon

evetycoon.com/api/v1

Expires-Header

5 分钟

Wiki

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 (Error Limit) 将被抛出为 RateLimitError

Token 安全性

  • Token 存储在 ~/.eve-mcp/tokens.json

  • 如果设置了 EVE_MCP_TOKEN_PASSPHRASE:使用 AES-256-GCM 加密,并采用 scrypt 密钥派生

  • 无密码短语:明文存储(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 调用通过 esi.get() / esi.publicGet() 并配合适当的缓存 TTL

  5. 类型 ID 使用 resolveTypeName() / resolveTypeId() 进行解析

故障排除

"Config not found" — 创建 ~/.eve-mcp/config.json 或设置 EVE_MCP_CLIENT_ID

"Authentication required" — 调用 eve_auth_logineve_auth_start

"Token refresh failed" — 刷新令牌已过期。请重新登录。

"ESI error limit reached" — 错误请求过多。系统会自动等待。

端口 8834 被占用 — 在 config.json 中设置其他端口,并在 CCP 开发者后台更新回调 URL。

Install Server
F
license - not found
A
quality
Not graded
maintenance - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer

  • Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.

  • MCP server giving Claude AI access to 22+ NYC public-record databases for real estate due diligence

View all MCP Connectors

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