使用说明
EVE在线市场MCP服务器
这个MCP服务器EVE Online中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。ESI(EVE Swagger Interface)API中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。
认证和速率限制
此服务器当前仅获取公共市场数据ESI不需要认证。但有以下限制和规范:
-
汇率限制
- ESI有每分钟的错误限制
- 服务器自动监视速率限制,如果达到限制则返回错误
- 页眉
x-esi-error-limit-remain打开x-esi-error-limit-reset中查看连接状态
-
用户代理
- ESI中描述的场景,使用下列步骤创建明细表,以便在概念设计中分析体量的周长
- 形式:
eve-online-mcp/1.0 (github.com/your-username/eve-online-mcp)
-
错误处理
- API错误将被正确捕获,并以简单易懂的消息形式返回
- ESI中描述的相应参数的值
机能
服务器提供以下三个主要功能:
-
获取市场价格 (
get-market-prices)- EVE Online中描述的场景,使用下列步骤创建明细表,以便在概念设计中分析体量的周长
- 返回值为
type_id、adjusted_price、average_price包括
-
获取市场订单 (
get-market-orders)- 获取特定区域的市场订单
- 可选的特定项目类型或订单类型(买/卖)可过滤
- 每个订单都包含价格、数量、地点等信息
-
获取市场历史记录 (
get-market-history)- 获取特定区域中特定项目的市场历史记录
- 每天可获得最高价格、最低价格、平均价格、交易量等
-
获取分组市场数据 (
get-market-groups)- 获取特定区域和特定项目类型的分组市场数据
- 提供采购订单和销售订单各自的统计信息(平均价格、最高/最低价格、交易量等)
-
构造体の市场注文取得 (
get-structure-orders)- 获得特定结构(工作站、西塔戴尔等)的所有市场订单
- 可高效获取大量数据以支持分页
-
地域の取引所统计取得 (
get-market-stats)- 获取特定区域的市场统计信息
- 提供交易量、价格趋势、市场活性度等指标
-
结构的特定项目订单获取 (
get-structure-type-orders)- 获取特定结构中特定项目类型的所有市场订单
- 可以进行更详细的市场分析
安装,安装
通过Smithery安装
通过以下方式自动安装克劳德桌面版eve在线mcp 史密瑟里:
npx -y @smithery/cli install @kongyo2/eve-online-mcp --client claude
-
安装从属软件包:
npm install -
项目构建:
npm run build -
启动服务器:
npm start
VS Code统合
这个项目VS Code的设置:
.vscode/settings.json: MCP服务器设置.vscode/tasks.json:构建和运行任务
以下任务可用:
- "Build EVE Online Market MCP Server": 构建项目
- "Run EVE Online Market MCP Server": MCP启动服务器
使用例
- 市场价格:
// すべてのアイテムの価格を取得
const prices = await callTool("get-market-prices");
- 获得市场订单:
// The Forge(リージョンID: 10000002)のTritanium(タイプID: 34)の注文を取得
const orders = await callTool("get-market-orders", {
region_id: 10000002,
type_id: 34,
order_type: "all"
});
- 获取市场历史记录:
// The ForgeのTritaniumの市場履歴を取得
const history = await callTool("get-market-history", {
region_id: 10000002,
type_id: 34
});
- 获取分组市场数据:
// The ForgeのTritaniumのグループ化された市場データを取得
const marketGroups = await callTool("get-market-groups", {
region_id: 10000002,
type_id: 34
});
- 构造体の市场注文取得:
// 構造体ID: 1234567890 の全市場注文を取得
const structureOrders = await callTool("get-structure-orders", {
structure_id: 1234567890,
page: 1
});
- 地域の取引所统计取得:
// The Forgeの市場統計情報を取得
const marketStats = await callTool("get-market-stats", {
region_id: 10000002
});
- 结构的特定项目订单获取:
// 構造体ID: 1234567890 におけるTritaniumの全市場注文を取得
const typeOrders = await callTool("get-structure-type-orders", {
structure_id: 1234567890,
type_id: 34,
page: 1
});
认证设定
EVE Online SSO设定
-
EVE在线开发者门户在中注册应用程序
-
请求以下范围:
esi-markets.structure_markets.v1esi-markets.read_character_orders.v1
-
获取的客户端ID密封剂
.env设置为文件:cp .env.example .env # .envファイルを編集して認証情報を設定
验证流程
- 验证URL获取:
const authUrlResponse = await callTool("get-auth-url", {
state: "unique-state-string"
});
// ユーザーをauthUrlResponseのURLにリダイレクト
- 交换验证代码:
const authResponse = await callTool("authenticate", {
code: "authorization-code-from-callback"
});
// 返されたトークンを保存
- 更新标记:
const refreshResponse = await callTool("refresh-token", {
refresh_token: "saved-refresh-token"
});
// 新しいトークンで更新
结构访问
访问需要认证的结构的市场数据时:
- 获取具有适当作用域的标记
- makeESIRequest调用时指定标记:
const structureOrders = await callTool("get-structure-orders", {
structure_id: 1234567890,
page: 1,
token: "your-access-token"
});
注意事项
-
结构相关端点
- 具有访问与结构相关的端点的适当权限ESI需要令牌
- 无法获取没有访问权限的结构的数据
-
分页
- 返回大量数据的端点使用分页
page可以通过参数指定特定页面(从1开始)
-
高速缓存
- ESI的响应在服务器端缓存
- 高速缓存期间因端点而异
- 可以在响应标题中查看缓存信息