Skip to main content
Glama
server.ts12.9 kB
import { FastMCP } from "fastmcp"; import { solarSystemNameToIdTool, stationNameToIdTool, regionNameToIdTool, universalNameToIdTool } from "./name-to-id-tools.js"; import { solarSystemInfoTool, stargateInfoTool, systemConnectionMapTool } from "./system-info-tools.js"; import { regionInfoTool, constellationInfoTool, regionSystemsListTool } from "./region-info-tools.js"; import { calculateRouteTool, calculateMultipleRoutesTool, findSystemsInRangeTool } from "./route-tools.js"; import { getSystemCombatStatsTool } from "./combat-stats-tools.js"; import { getStationServicesTool, getSystemStationsTool, findStationsWithServicesTool, getStationAgentsTool } from "./station-services-tools.js"; import { findNearestLandmarksTool } from "./landmark-tools.js"; import { findNearestTradeHubTool } from "./nearest-trade-hub-tool.js"; const server = new FastMCP({ name: "EVE Online Traffic MCP", version: "1.0.0", }); // Add name to ID conversion tools server.addTool(solarSystemNameToIdTool); server.addTool(stationNameToIdTool); server.addTool(regionNameToIdTool); server.addTool(universalNameToIdTool); // Add system information tools server.addTool(solarSystemInfoTool); server.addTool(stargateInfoTool); server.addTool(systemConnectionMapTool); // Add region information tools server.addTool(regionInfoTool); server.addTool(constellationInfoTool); server.addTool(regionSystemsListTool); // Add route calculation tools server.addTool(calculateRouteTool); server.addTool(calculateMultipleRoutesTool); server.addTool(findSystemsInRangeTool); // Add combat statistics tool server.addTool(getSystemCombatStatsTool); // Add station services tools server.addTool(getStationServicesTool); server.addTool(getSystemStationsTool); server.addTool(findStationsWithServicesTool); server.addTool(getStationAgentsTool); // Add landmark tools server.addTool(findNearestLandmarksTool); // Add trade hub tools server.addTool(findNearestTradeHubTool); server.addResource({ async load() { return { text: `EVE Online Traffic MCP Server This server provides tools for EVE Online traffic and navigation: Available Tools: Name to ID Conversion: - solar_system_name_to_id: Convert solar system names to IDs - station_name_to_id: Convert station names to IDs - region_name_to_id: Convert region names to IDs - universal_name_to_id: Convert any entity names to IDs System Information: - solar_system_info: Get comprehensive solar system information from ESI and SDE - stargate_info: Get stargate information and connections - system_connection_map: Generate connection maps for solar systems Station Services: - get_station_services: Get comprehensive station information including available services and agents - get_system_stations: Get all stations in specified solar systems with their services - find_stations_with_services: Find stations that offer specific services within specified areas - get_station_agents: Get detailed information about agents located at specific stations Region Information: - region_info: Get comprehensive region information including constellations and systems - constellation_info: Get constellation information including systems and boundaries - region_systems_list: Get detailed lists of all systems in specified regions Route Calculation: - calculate_route: Calculate the shortest route between two solar systems - calculate_multiple_routes: Calculate routes from one origin to multiple destinations - find_systems_in_range: Find all systems within a specified jump range Combat Statistics: - get_system_combat_stats: Get comprehensive combat statistics for a solar system - get_multiple_system_combat_stats: Get combat statistics for multiple systems - find_dangerous_systems: Find the most dangerous systems based on PvP activity Landmark Information: - find_nearest_landmarks: Find the nearest EVE Online landmarks to a specified solar system Trade Hub Information: - find_nearest_trade_hub: Find the nearest trade hub to a specified solar system with detailed route information All tools use the official EVE Online ESI API, EVE-KILL API, and SDE data. `, }; }, mimeType: "text/plain", name: "EVE Traffic MCP Info", uri: "file:///info/eve-traffic-mcp.txt", }); server.addPrompt({ arguments: [ { description: "EVE Online entity names (systems, stations, regions, etc.)", name: "names", required: true, }, ], description: "Generate a summary of EVE Online entities with their IDs", load: async (args) => { return `Please use the universal_name_to_id tool to look up these EVE Online entities and provide a summary:\n\n${args.names}`; }, name: "eve-entity-lookup", }); server.addPrompt({ arguments: [ { description: "Solar system names or IDs to analyze", name: "systems", required: true, }, ], description: "Analyze solar system information and connections", load: async (args) => { return `Please analyze these EVE Online solar systems and provide detailed information including security status, connections, and traffic data:\n\n${args.systems}\n\nUse the appropriate tools to first convert names to IDs if needed, then get system information and connection maps.`; }, name: "eve-system-analysis", }); server.addPrompt({ arguments: [ { description: "Origin solar system name or ID", name: "origin", required: true, }, { description: "Destination solar system name or ID", name: "destination", required: true, }, { description: "Route preference: shortest, secure, or insecure", name: "route_type", required: false, }, ], description: "Calculate and analyze a route between two EVE Online solar systems", load: async (args) => { const routeType = args.route_type || 'shortest'; return `Please calculate a route from ${args.origin} to ${args.destination} using ${routeType} routing. Provide detailed information about the route including:\n\n- Total jump count\n- Systems along the route\n- Security status of systems\n- Any notable waypoints or dangerous areas\n\nUse the calculate_route tool and supplement with system information as needed.`; }, name: "eve-route-planning", }); server.addPrompt({ arguments: [ { description: "Origin solar system name or ID", name: "origin", required: true, }, { description: "Maximum number of jumps to search", name: "max_jumps", required: true, }, { description: "Route preference: shortest, secure, or insecure", name: "route_type", required: false, }, ], description: "Find systems within jump range for activity planning", load: async (args) => { const routeType = args.route_type || 'shortest'; return `Please find all solar systems within ${args.max_jumps} jumps of ${args.origin} using ${routeType} routing. Provide analysis of:\n\n- Systems by jump distance\n- Security status distribution\n- Potential activities in nearby systems\n- Strategic locations\n\nUse the find_systems_in_range tool and supplement with system information as needed.`; }, name: "eve-range-analysis", }); server.addPrompt({ arguments: [ { description: "Solar system name or ID to analyze", name: "system", required: true, }, ], description: "Analyze combat activity and danger level for a solar system", load: async (args) => { return `Please analyze the combat activity and danger level for ${args.system}. Provide detailed information about:\n\n- Current PvP activity (ship and pod kills)\n- Recent killmail analysis\n- Battle history\n- Danger assessment and recommendations\n- Best times to avoid the system\n\nUse the get_system_combat_stats tool and provide actionable intelligence for pilots.`; }, name: "eve-combat-analysis", }); server.addPrompt({ arguments: [ { description: "Region ID, constellation ID, or comma-separated system IDs", name: "search_area", required: true, }, { description: "Maximum number of systems to analyze", name: "limit", required: false, }, ], description: "Find the most dangerous systems in a region or area", load: async (args) => { const limit = args.limit || '10'; return `Please find the most dangerous systems in ${args.search_area}. Analyze up to ${limit} systems and provide:\n\n- Ranking by danger level\n- Current PvP activity levels\n- Recent high-value kills\n- Threat assessment for each system\n- Recommendations for safe travel\n\nUse the find_dangerous_systems tool and provide a comprehensive threat report.`; }, name: "eve-danger-assessment", }); server.addPrompt({ arguments: [ { description: "Station names or IDs to analyze", name: "stations", required: true, }, ], description: "Analyze station services and facilities", load: async (args) => { return `Please analyze these EVE Online stations and provide detailed information about their services and facilities:\n\n${args.stations}\n\nUse the get_station_services tool to provide:\n\n- Available services at each station\n- Docking capabilities and restrictions\n- Reprocessing efficiency and fees\n- Security status of the system\n- Owner and faction information\n- Recommendations for specific activities`; }, name: "eve-station-analysis", }); server.addPrompt({ arguments: [ { description: "Required services (e.g., market, reprocessing, cloning)", name: "services", required: true, }, { description: "Search area: system names, region names, or 'nearby'", name: "location", required: true, }, { description: "Security preference: high-sec, low-sec, null-sec, or any", name: "security", required: false, }, ], description: "Find stations with specific services in a given area", load: async (args) => { const security = args.security || 'any'; return `Please find stations that offer these services: ${args.services}\n\nSearch in: ${args.location}\nSecurity preference: ${security}\n\nUse the find_stations_with_services tool and provide:\n\n- List of matching stations with their locations\n- Service availability at each station\n- Security status and travel safety\n- Distance and route information if applicable\n- Recommendations for the best options`; }, name: "eve-service-finder", }); server.addPrompt({ arguments: [ { description: "Station names or IDs to analyze for agents", name: "stations", required: true, }, { description: "Whether to include research agents (slower)", name: "include_research", required: false, }, ], description: "Analyze agents available at specific stations", load: async (args) => { const includeResearch = args.include_research === 'true' || args.include_research === 'yes'; return `Please analyze the agents available at these EVE Online stations: ${args.stations}\n\nInclude research agents: ${includeResearch}\n\nUse the get_station_agents tool and provide:\n\n- List of all agents at each station\n- Agent types and specializations\n- Agent levels and quality ratings\n- Corporation affiliations\n- Research agent identification\n- Recommendations for mission running or research`; }, name: "eve-agent-finder", }); server.addPrompt({ arguments: [ { description: "Solar system name or ID to search from", name: "system", required: true, }, { description: "Maximum number of landmarks to return (1-50)", name: "limit", required: false, }, { description: "Maximum jump distance to search", name: "max_jumps", required: false, }, ], description: "Find the nearest EVE Online landmarks to a solar system", load: async (args) => { const limit = args.limit || '10'; const maxJumps = args.max_jumps ? ` within ${args.max_jumps} jumps` : ''; return `Please find the nearest EVE Online landmarks to ${args.system}${maxJumps}. Return up to ${limit} landmarks and provide:\n\n- Landmark names and descriptions\n- Location information (system, security status, region)\n- Distance in jumps and AU\n- Route availability\n- Recommendations for exploration or navigation\n\nUse the find_nearest_landmarks tool to provide comprehensive landmark information for pilots.`; }, name: "eve-landmark-finder", }); server.start({ transportType: "stdio", });

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kongyo2/eve-online-traffic-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server