🚀 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
- 提交拉取請求
致謝