返回 MCP 目录
public公开dns本地运行

eve-online-traffic-mcp

EVE Online交通导航MCP服务器,提供星系、空间站、区域等游戏实体的名称与ID转换、系统信息查询、星门连接分析及路线计算功能,整合ESI和SDE数据源。

article

README

🚀 EVE Online流量MCP服务器

这是一个全面的《星战前夜:晨曦》(EVE Online)流量、导航和系统信息的模型上下文协议(MCP)服务器,它结合了官方ESI API和SDE数据,为玩家提供了丰富的游戏数据访问工具。

🚀 快速开始

本项目目前处于测试开发阶段,功能可能不完整、不稳定或会有重大变更。请谨慎使用,并预计未来更新中可能会有重大变化。

✨ 主要特性

本MCP服务器为《星战前夜:晨曦》的数据访问提供了全面的工具:

名称与ID转换

  • 太阳系名称转ID:将太阳系名称转换为ID,用于路线计算。
  • 空间站名称转ID:将空间站名称转换为ID,用于目标规划。
  • 星域名称转ID:将星域名称转换为ID,用于区域分析。
  • 通用名称转ID:将任何《星战前夜:晨曦》的实体名称(如星系、空间站、星域、军团、联盟等)转换为ID。

系统信息与分析

  • 太阳系信息:从ESI和SDE API获取全面的系统信息。
  • 星门信息:获取星门连接和详细信息。
  • 系统连接地图:生成显示系统之间星门链接的连接地图。

数据源

  • ESI API:来自《星战前夜:晨曦》官方API的实时数据。
  • SDE API:用于获取全面宇宙信息的静态数据导出。
  • 自动名称解析:所有ID自动解析为名称(例如,“30000142 (吉他)”)。
  • 数据整合:结合ESI和SDE数据,以实现最大的信息覆盖。

📦 安装指南

通过Smithery安装

要通过Smithery为Claude桌面自动安装eve-online-traffic-mcp,请运行以下命令:

npx -y @smithery/cli install @kongyo2/eve-online-traffic-mcp --client claude

手动安装

git clone https://github.com/kongyo2/eve-online-traffic-mcp.git
cd eve-online-traffic-mcp
npm install

💻 使用示例

开发模式

使用交互式CLI在开发模式下启动服务器:

npm run dev

生产模式

启动服务器以供生产使用:

npm run start

构建

将TypeScript编译为JavaScript:

npm run build

基础用法

# 以开发模式启动服务器
npm run dev

高级用法

# 编译TypeScript代码
npm run build
# 启动生产模式服务器
npm run start

📚 详细文档

使用注意事项

LLM指令的语言建议

当向连接到此MCP服务器的大语言模型(LLM)提供指令时,建议使用《星战前夜:晨曦》实体(太阳系、空间站、星域、军团等)的英文名称,以获得最佳结果。服务器的名称解析系统主要围绕英文实体名称设计,使用英文可确保数据检索的更高准确性和一致性。 示例

  • ✅ 推荐使用:“Jita”(吉他)、“Amarr”(艾玛)、“The Forge”(锻造星域)
  • ❌ 避免使用:其他语言的本地化名称

可用工具

名称转ID转换工具

  • solar_system_name_to_id:将太阳系名称转换为其ID。
    • 参数
      • systemNames:太阳系名称数组(最多500个)
    • 示例
{
  "systemNames": ["Jita", "Amarr", "Dodixie"]
}
  • station_name_to_id:将空间站名称转换为其ID。
    • 参数
      • stationNames:空间站名称数组(最多500个)
  • region_name_to_id:将星域名称转换为其ID。
    • 参数
      • regionNames:星域名称数组(最多500个)
  • universal_name_to_id:将任何《星战前夜:晨曦》实体名称转换为其ID。
    • 参数
      • names:实体名称数组(最多500个)
    • 支持的实体类型
      • 太阳系、空间站、星域、星座
      • 军团、联盟、角色、阵营
      • 库存类型、代理人

系统信息工具

  • solar_system_info:从ESI和SDE API获取全面的太阳系信息。
    • 参数
      • systemIds:太阳系ID数组(最多100个)
    • 返回值
      • 系统名称、安全状态、安全等级
      • 星座和星域信息(包含名称)
      • 三维坐标、恒星信息
      • 星门、空间站、行星(包含名称)
      • 数据源信息(ESI/SDE)
    • 示例
{
  "systemIds": [30000142, 30002187]
}
  • stargate_info:获取详细的星门信息和连接。
    • 参数
      • stargateIds:星门ID数组(最多50个)
    • 返回值
      • 星门名称和位置
      • 源系统和目标系统信息
      • 连接详细信息(包含名称)
  • system_connection_map:生成显示系统之间星门链接的连接地图。
    • 参数
      • systemIds:太阳系ID数组(最多50个)
    • 返回值
      • 系统安全状态和名称
      • 所有出站连接(包含星门对)
      • 目标系统名称
    • 示例
{
  "systemIds": [30000142]
}

路线计算工具

  • calculate_route:计算《星战前夜:晨曦》中两个太阳系之间的最短路线。
    • 参数
      • origin:起始太阳系名称或ID
      • destination:目标太阳系名称或ID
      • flag:(可选)shortest(默认)、secureinsecure
      • avoidSystems:(可选)要避开的系统名称或ID数组
    • 示例
{
 "origin": "Jita",
 "destination": "Amarr",
 "flag": "secure"
}
  • calculate_multiple_routes:计算从一个起始点到多个目标点的路线。
    • 参数
      • origin:起始太阳系名称或ID
      • destinations:目标系统名称或ID数组(最多20个)
      • flag:(可选)shortest(默认)、secureinsecure
      • avoidSystems:(可选)要避开的系统名称或ID数组
    • 示例
{
 "origin": "Jita",
 "destinations": ["Amarr", "Dodixie", "Rens"]
}
  • find_systems_in_range:查找从起始系统指定跳跃范围内的所有太阳系。
    • 参数
      • origin:起始太阳系名称或ID
      • maxJumps:最大跳跃次数(1 - 10)
      • flag:(可选)shortest(默认)、secureinsecure
      • avoidSystems:(可选)要避开的系统名称或ID数组
    • 示例
{
 "origin": "Jita",
 "maxJumps": 5
}

可用提示

  • eve-entity-lookup:生成《星战前夜:晨曦》实体及其ID的摘要。
  • eve-system-analysis:分析太阳系信息和连接,并提供详细的交通数据。

开发相关

测试

运行测试套件:

npm run test

代码检查

检查代码风格和格式:

npm run lint

代码格式化

自动格式化代码:

npm run format

示例输出

太阳系信息

{
  "success": true,
  "results": [{
    "system_id": 30000142,
    "name": "Jita",
    "constellation_id": 20000020,
    "constellation_name": "Kimotoro",
    "region_id": 10000002,
    "region_name": "The Forge",
    "security_status": 0.946,
    "security_class": "B",
    "stargates": [
      "50001248 (Stargate (Perimeter))",
      "50001249 (Stargate (Sobaseki))"
    ],
    "stations": [
      "60003760 (Jita IV - Moon 4 - Caldari Navy Assembly Plant)"
    ],
    "source": {
      "esi": true,
      "sde": true
    }
  }]
}

系统连接地图

{
  "success": true,
  "results": [{
    "system_id": 30000142,
    "system_name": "Jita",
    "security_status": 0.946,
    "connections": [{
      "destination_system_id": 30000144,
      "destination_system_name": "Perimeter",
      "stargate_id": 50001248,
      "stargate_name": "Stargate (Perimeter)",
      "destination_stargate_id": 50000056,
      "destination_stargate_name": "Stargate (Jita)"
    }]
  }]
}

API参考

本服务器使用多个《星战前夜:晨曦》API:

ESI API端点

  • POST /universe/ids/ - 将名称转换为ID
  • POST /universe/names/ - 将ID转换为名称
  • GET /universe/systems/ - 获取所有太阳系ID
  • GET /universe/systems/{system_id}/ - 获取太阳系信息
  • GET /universe/stargates/{stargate_id}/ - 获取星门信息

SDE API端点

  • GET /universe/solarSystems - 获取所有太阳系ID
  • GET /universe/solarSystems/{solarSystemID} - 获取太阳系信息
  • GET /universe/stargates - 获取所有星门ID
  • GET /universe/stargates/{stargateID} - 获取星门信息

特性总结

  • 无需身份验证:所有端点使用公共API。
  • 自动名称解析:ID自动解析为人类可读的名称。
  • 数据整合:将ESI实时数据与SDE静态数据相结合。
  • 错误恢复能力:即使一个API数据源失败,仍可继续运行。
  • 批量处理:高效处理多个请求。
  • 全面测试:对所有功能进行全面测试覆盖。

🔧 技术细节

API依赖

1. EVE Swagger Interface (ESI)

  • URL:https://esi.evetech.net/meta/openapi-3.0.json ESI是《星战前夜:晨曦》的官方API,可访问游戏内的各种信息,如玩家数据、角色信息、军团信息、市场数据等。

2. Static Data Export (SDE) - Jita.Space

  • URL:https://sde.jita.space/latest/swagger.json
  • 基础URL:https://sde.jita.space/latest SDE(静态数据导出)是一个由jita.space提供的第三方API,用于提供《星战前夜:晨曦》的游戏内静态数据,可访问物品信息、星系数据、NPC信息等静态数据。

3. EVE-KILL API

  • URL:https://eve-kill.com/_openapi.json
  • 基础URL:https://eve-kill.com EVE-KILL是一个用于《星战前夜:晨曦》击杀记录追踪和分析的现代应用程序,提供了一个API,可访问联盟、角色、军团、战斗、击杀记录、战役等全面数据。

推荐:MCP顺序思考工具

为了增强分析和复杂的《星战前夜:晨曦》查询能力,建议将此服务器与MCP顺序思考工具结合使用。这种组合允许通过结构化的思考过程对《星战前夜:晨曦》数据进行复杂的多步骤分析、路线规划和战略决策。

📄 许可证

本项目采用MIT许可证,详情请参阅LICENSE文件。

贡献指南

  1. 分叉仓库
  2. 创建功能分支
  3. 进行更改
  4. 为新功能添加测试
  5. 运行npm run lintnpm run test
  6. 提交拉取请求

致谢

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端