🚀 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
高级用法
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。
- 参数:
- 支持的实体类型:
- 太阳系、空间站、星域、星座
- 军团、联盟、角色、阵营
- 库存类型、代理人
系统信息工具
solar_system_info
:从ESI和SDE API获取全面的太阳系信息。
- 参数:
systemIds
:太阳系ID数组(最多100个)
- 返回值:
- 系统名称、安全状态、安全等级
- 星座和星域信息(包含名称)
- 三维坐标、恒星信息
- 星门、空间站、行星(包含名称)
- 数据源信息(ESI/SDE)
- 示例:
{
"systemIds": [30000142, 30002187]
}
stargate_info
:获取详细的星门信息和连接。
- 参数:
stargateIds
:星门ID数组(最多50个)
- 返回值:
- 星门名称和位置
- 源系统和目标系统信息
- 连接详细信息(包含名称)
system_connection_map
:生成显示系统之间星门链接的连接地图。
- 参数:
- 返回值:
- 系统安全状态和名称
- 所有出站连接(包含星门对)
- 目标系统名称
- 示例:
{
"systemIds": [30000142]
}
路线计算工具
calculate_route
:计算《星战前夜:晨曦》中两个太阳系之间的最短路线。
- 参数:
origin
:起始太阳系名称或ID
destination
:目标太阳系名称或ID
flag
:(可选)shortest
(默认)、secure
或insecure
avoidSystems
:(可选)要避开的系统名称或ID数组
- 示例:
{
"origin": "Jita",
"destination": "Amarr",
"flag": "secure"
}
calculate_multiple_routes
:计算从一个起始点到多个目标点的路线。
- 参数:
origin
:起始太阳系名称或ID
destinations
:目标系统名称或ID数组(最多20个)
flag
:(可选)shortest
(默认)、secure
或insecure
avoidSystems
:(可选)要避开的系统名称或ID数组
- 示例:
{
"origin": "Jita",
"destinations": ["Amarr", "Dodixie", "Rens"]
}
find_systems_in_range
:查找从起始系统指定跳跃范围内的所有太阳系。
- 参数:
origin
:起始太阳系名称或ID
maxJumps
:最大跳跃次数(1 - 10)
flag
:(可选)shortest
(默认)、secure
或insecure
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文件。
贡献指南
- 分叉仓库
- 创建功能分支
- 进行更改
- 为新功能添加测试
- 运行
npm run lint
和npm run test
- 提交拉取请求
致谢