get_market_orders
Retrieve the current order book for a specific EVE Online item type, including metadata and filtered by region, system, or location, to analyze market trends and pricing.
Instructions
Returns the current order book for an item type, with metadata about the type and locations
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| locationId | No | Location ID (station, structure) to filter on | |
| regionId | No | Region ID to filter on | |
| systemId | No | System ID to filter on | |
| typeId | Yes | Item type ID |
Implementation Reference
- src/server.ts:66-86 (handler)The main handler function that constructs the API endpoint based on parameters and fetches the market orders data from evetycoon.com using the makeApiRequest helper.execute: async (args) => { let endpoint = `/v1/market/orders/${args.typeId}`; const params = new URLSearchParams(); if (args.regionId) { params.append('regionId', args.regionId.toString()); } if (args.systemId) { params.append('systemId', args.systemId.toString()); } if (args.locationId) { params.append('locationId', args.locationId.toString()); } if (params.toString()) { endpoint += `?${params.toString()}`; } const data = await makeApiRequest(endpoint); return JSON.stringify(data, null, 2); },
- src/server.ts:88-93 (schema)Zod schema defining the input parameters for the get_market_orders tool, including required typeId and optional filters.parameters: z.object({ typeId: z.number().describe("Item type ID"), regionId: z.number().optional().describe("Region ID to filter on"), systemId: z.number().optional().describe("System ID to filter on"), locationId: z.number().optional().describe("Location ID (station, structure) to filter on"), }),
- src/server.ts:59-94 (registration)Registration of the get_market_orders tool using server.addTool, including name, description, annotations, handler, and schema.server.addTool({ annotations: { openWorldHint: true, readOnlyHint: true, title: "Get Market Orders", }, description: "Returns the current order book for an item type, with metadata about the type and locations", execute: async (args) => { let endpoint = `/v1/market/orders/${args.typeId}`; const params = new URLSearchParams(); if (args.regionId) { params.append('regionId', args.regionId.toString()); } if (args.systemId) { params.append('systemId', args.systemId.toString()); } if (args.locationId) { params.append('locationId', args.locationId.toString()); } if (params.toString()) { endpoint += `?${params.toString()}`; } const data = await makeApiRequest(endpoint); return JSON.stringify(data, null, 2); }, name: "get_market_orders", parameters: z.object({ typeId: z.number().describe("Item type ID"), regionId: z.number().optional().describe("Region ID to filter on"), systemId: z.number().optional().describe("System ID to filter on"), locationId: z.number().optional().describe("Location ID (station, structure) to filter on"), }), });
- src/server.ts:12-21 (helper)Shared helper function used by all market tools to make fetch requests to the EVE Tycoon API.async function makeApiRequest(endpoint: string): Promise<any> { const url = `${BASE_URL}${endpoint}`; const response = await fetch(url); if (!response.ok) { throw new Error(`API request failed: ${response.status} ${response.statusText}`); } return response.json(); }