Eve Online Mcp

Eve Online Mcp

🚀 EVE Online市场MCP服务器

本MCP服务器为访问EVE Online的市场数据提供接口。借助ESI(EVE Swagger Interface)API,能够获取实时的市场数据。

Ask DeepWiki smithery badge

🚀 快速开始

认证与速率限制

此服务器目前仅获取公共市场数据,因此无需ESI认证。不过,存在以下限制和规范:

  1. 速率限制
    • ESI有每分钟的错误限制。
    • 服务器会自动监控速率限制,若达到限制则返回错误。
    • 可通过x-esi-error-limit-remainx-esi-error-limit-reset头部信息查看限制状态。
  2. 用户代理
    • 遵循ESI的建议,设置了合适的用户代理。
    • 格式为:eve-online-mcp/1.0 (github.com/your-username/eve-online-mcp)
  3. 错误处理
    • 能够妥善捕获API错误,并以清晰易懂的消息形式返回。
    • 还包含ESI的详细错误信息。

✨ 主要特性

服务器提供以下三项主要功能:

  1. 获取市场价格 (get-market-prices)
    • 获取EVE Online中所有物品的调整价格和平均价格。
    • 返回值包含type_idadjusted_priceaverage_price
  2. 获取市场订单 (get-market-orders)
    • 获取特定区域的市场订单。
    • 可选择性地按特定物品类型或订单类型(买入/卖出)进行过滤。
    • 每个订单包含价格、数量、位置等信息。
  3. 获取市场历史 (get-market-history)
    • 获取特定区域内特定物品的市场历史。
    • 可获取每日的最高价格、最低价格、平均价格、交易量等信息。
  4. 获取分组市场数据 (get-market-groups)
    • 获取特定区域和特定物品类型的分组市场数据。
    • 提供买入订单和卖出订单各自的统计信息(平均价格、最高/最低价格、交易量等)。
  5. 获取结构体的市场订单 (get-structure-orders)
    • 获取特定结构体(空间站、要塞等)的所有市场订单。
    • 支持分页,可高效获取大量数据。
  6. 获取区域交易市场统计信息 (get-market-stats)
    • 获取特定区域的市场统计信息。
    • 提供交易量、价格趋势、市场活跃度等指标。
  7. 获取结构体特定物品的订单 (get-structure-type-orders)
    • 获取特定结构体中特定物品类型的所有市场订单。
    • 可进行更详细的市场分析。

📦 安装指南

通过Smithery安装

要通过Smithery为Claude Desktop自动安装eve-online-mcp,可执行以下命令:

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

手动安装步骤

  1. 安装依赖包:
npm install
  1. 构建项目:
npm run build
  1. 启动服务器:
npm start

💻 使用示例

基础用法

1. 获取市场价格

// 获取所有物品的价格
const prices = await callTool("get-market-prices");

2. 获取市场订单

// 获取The Forge(区域ID: 10000002)的Tritanium(类型ID: 34)的订单
const orders = await callTool("get-market-orders", {
region_id: 10000002,
type_id: 34,
order_type: "all"
});

3. 获取市场历史

// 获取The Forge的Tritanium的市场历史
const history = await callTool("get-market-history", {
region_id: 10000002,
type_id: 34
});

4. 获取分组市场数据

// 获取The Forge的Tritanium的分组市场数据
const marketGroups = await callTool("get-market-groups", {
region_id: 10000002,
type_id: 34
});

5. 获取结构体的市场订单

// 获取结构体ID: 1234567890 的所有市场订单
const structureOrders = await callTool("get-structure-orders", {
structure_id: 1234567890,
page: 1
});

6. 获取区域交易市场统计信息

// 获取The Forge的市场统计信息
const marketStats = await callTool("get-market-stats", {
region_id: 10000002
});

7. 获取结构体特定物品的订单

// 获取结构体ID: 1234567890 中Tritanium的所有市场订单
const typeOrders = await callTool("get-structure-type-orders", {
structure_id: 1234567890,
type_id: 34,
page: 1
});

📚 详细文档

认证设置

EVE Online SSO设置

  1. EVE Online开发者门户注册应用程序。
  2. 请求以下范围:
    • esi-markets.structure_markets.v1
    • esi-markets.read_character_orders.v1
  3. 将获取的客户端ID和密钥设置到.env文件中:
cp .env.example .env
# 编辑.env文件以设置认证信息

认证流程

  1. 获取认证URL:
const authUrlResponse = await callTool("get-auth-url", {
state: "unique-state-string"
});
// 将用户重定向到authUrlResponse中的URL
  1. 交换认证代码:
const authResponse = await callTool("authenticate", {
code: "authorization-code-from-callback"
});
// 保存返回的令牌
  1. 更新令牌:
const refreshResponse = await callTool("refresh-token", {
refresh_token: "saved-refresh-token"
});
// 使用新令牌进行更新

结构体访问

若要访问需要认证的结构体的市场数据:

  1. 获取具有适当范围的令牌。
  2. 在调用makeESIRequest时指定令牌:
const structureOrders = await callTool("get-structure-orders", {
structure_id: 1234567890,
page: 1,
token: "your-access-token"
});

⚠️ 注意事项

  1. 结构体相关的端点
    • 访问结构体相关的端点需要具有适当权限的ESI令牌。
    • 无法获取无访问权限的结构体的数据。
  2. 分页
    • 返回大量数据的端点使用分页功能。
    • 可通过page参数指定特定页面(从1开始)。
  3. 缓存
    • ESI的响应会在服务器端进行缓存。
    • 缓存期限因端点而异。
    • 可通过响应头查看缓存信息。

📄 许可证

文档中未提及许可证相关信息。

  • 0 关注
  • 0 收藏,6 浏览
  • system 提出于 2025-09-22 01:15

相似服务问题