A Model Context Protocol Server for data of the Eve Online universe
This server has 7 tools with significant quality gaps. Tool names lack consistent verb-noun structure (e.g., 'getIncursionsInformation' vs 'getJumpInformationSecure'). Descriptions are present but minimal (10-50 chars), below the 50-200 char LLM-optimized baseline. Input schemas are visible for most tools but lack depth: parameters have descriptions but no explicit type constraints, enums, or ranges. The 'toUpperCase' tool is trivial and adds no domain value. No output schemas are documented. Error handling is absent, no recovery guidance or categorization. The server uses Spring AI MCP framework (HTTP transport, good), but lacks modern MCP patterns like tool annotations, structured error responses, and pagination support for list operations.
Get information about all active incursions
Get insecure jump route from source to destination
Get secure jump route from source to destination
Get shortes/fastest jump route from source to destination
What security level is the given security value
Get information about a solar system like security level, jumps and kills
Put the text to upper case
Inconsistent naming convention. Tools use camelCase with 'get' prefix but lack clear verb-noun structure. 'getJumpInformationSecure' vs 'getJumpInformationShort' vs 'getJumpInformationInsecure' are confusing, LLMs cannot easily distinguish when to use each. Should be 'get_jump_route_secure', 'get_jump_route_fastest', 'get_jump_route_insecure' with snake_case.
Descriptions are too short (10-50 chars) and lack context. 'Get information about all active incursions' does not explain WHEN to use this tool, what data structure is returned, or how it relates to other tools. Baseline for LLM-optimized descriptions is 50-200 chars with WHAT, WHEN, and output hints.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 41 | 2026-07-28+ | v2 |
No output schemas documented. LLMs cannot plan downstream calls or extract required fields. E.g., does getJumpInformationSecure return a list of systems, a route object, or a string? What fields are in the response? This forces LLMs to guess and wastes tokens on clarification.
No error handling or recovery guidance. If a solar system name is invalid or an incursion query fails, the server likely returns a raw exception. LLMs need actionable errors: 'System not found. Try search_systems() with a partial name.' or 'Invalid security value: must be -10.0 to 5.0.'
Parameter descriptions lack constraints. 'source solar system name' and 'destination solar system name' do not specify format, valid range, or examples. Should state: 'Solar system name (string, case-insensitive, e.g. Jita, Amarr). Must exist in EVE Online universe.'