Skip to main content
Glama
apettey

eve-esi-mcp

by apettey

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
EVE_SCOPESNoDefault scopes for character_login.standard
EVE_CONTACTNoEmail or Discord handle added to the User-Agent, as CCP asks.
EVE_FIT_CWDNoWorking directory for EVE_FIT_COMMAND.
EVE_FIT_DIRNoeve-fit-mcp checkout. Launched as .venv Python -m eve_fit_mcp.server for accurate stats.sibling ../eve-fit-mcp if present
EVE_FIT_ARGSNoArguments for EVE_FIT_COMMAND, separated by spaces or given as a JSON array.
EVE_CLIENT_IDYesClient ID of your EVE application (required for login).
EVE_FIT_COMMANDNoCommand that starts eve-fit over stdio. Overrides EVE_FIT_DIR. Set it to off to disable the integration.
EVE_CALLBACK_URLNoMust match the application's callback URL.http://localhost:8642/callback
EVE_ESI_MCP_HOMENoData directory (characters, SDE index, name cache).~/.eve-esi-mcp
EVE_OPEN_BROWSERNoSet to false to only return the login URL.true
EVE_CLIENT_SECRETNoOptional; set it to use the confidential-client flow instead of PKCE.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
characters_listA

Lists every EVE character authorized with this server, which one is active (used by default by all character tools), their corporation/alliance and granted scopes. Call this first when the user refers to a character by name.

character_loginA

Starts EVE SSO login. Opens the user's browser (and returns the URL) so they can pick a character and approve scopes; waits for completion up to wait_seconds. Use again to add more characters or to re-authorize with more scopes. Scope presets: 'standard' (default: personal data read + fittings/mail/waypoint write), 'readonly', 'full' (adds corporation scopes).

character_selectA

Makes a logged-in character the default for all character tools. Accepts a name (or unique part of it) or id.

character_logoutA

Revokes the SSO refresh token for a character and removes it from this server. Only do this when the user asks.

character_overviewA

One-call snapshot of a character: corp/alliance, security status, online state, current system/station, active ship, wallet, SP and what's training, clones and implants (with clone-jump availability), jump fatigue and loyalty points. Sections the character has no scope for are reported under 'unavailable' rather than failing.

character_skillsA

A character's skills grouped by skill group (names and levels, not ids), attributes, and the training queue with finish times. Use 'filter' to look at specific skills or groups (e.g. 'Gunnery', 'drone', 'Caldari').

skill_checkA

Checks whether a character can use items (ships, modules, ammo, drones) or a whole EFT fit. Includes all prerequisite skills, missing levels, SP needed and estimated training time (from the character's attributes), and a training order. Can compare several characters at once.

assetsA

A character's assets with names and locations resolved (stations, structures, containers, ships). Modes: 'summary' (per location: item count, estimated value, ships there), 'search' (find items by name/category, with location and container path, plus totals per item), 'ships' (every assembled ship with its name and location). Values use CCP's universe average price. ESI caches assets for up to an hour.

fittings_listA

Lists a character's saved in-game fittings with ship names and module counts. Filter by fit name or ship. Set include_eft to get every fit as EFT text in the same call.

fitting_getA

Full detail for saved fittings, by id, name or ship: modules per slot by name, loaded charges, drones/cargo, CPU/PG/calibration usage vs ship output, hardpoints, ship stats and bonuses, attributes of every module, a skill check against the character (missing skills + training time), plus EFT (ready for in-game import or Pyfa) and DNA.

ship_fittingA

Reads how a real ship in the character's assets is fitted (default: the ship they are flying) and returns the same rich output as fitting_get: named modules/charges per slot, drones, cargo, resources, attributes, skill check, EFT and DNA. Note ESI caches assets for up to an hour, so very recent refits may not show yet.

fitting_analyzeA

Parses any EFT text (from the user, Pyfa, zKillboard, ...) and returns the same rich breakdown as fitting_get: resolved names, resource usage, ship stats/bonuses, module attributes, skill check against a character and DNA, plus engine stats (EHP, DPS, cap, speed, real CPU/PG) when eve-fit is configured. Does not save anything.

fitting_saveA

Saves an EFT fit to the character's in-game saved fittings (requires esi-fittings.write_fittings.v1). Names are resolved from static data. ESI cannot store charges per slot, so loaded charges are dropped (with a warning) unless they are also in the cargo section. Returns the new fitting_id. Confirm with the user before saving.

fitting_deleteA

Deletes one saved in-game fitting by id or exact name. Only do this when the user explicitly asks.

search_itemsA

Fuzzy search over every published EVE item (ships, modules, ammo, materials, skills, ...) using the local static data. Accepts several queries at once and common shorthand (mwd, dc, lse, scram, web, ...). Blueprints/SKINs are hidden unless asked for. Use item_info for full details on a match.

item_infoA

Everything about one or more items in one call: category/group, meta level, volume, description, formatted attributes (grouped, with units), required skills (checked against the character if logged in, with training time for gaps), ship bonuses, variants (T1/T2/faction/...), manufacturing blueprint materials, and optionally Jita prices.

lookupB

Resolves names or ids of characters, corporations, alliances, factions, systems, regions, constellations, stations and items to their counterpart, with public details (corp/alliance of a character, ticker/members of a corp, security of a system, ...).

system_infoA

Details for a solar system: security, constellation/region, NPC stations, gate neighbours with security, sovereignty, ship/pod/NPC kills and jumps in the last hour, and jump distance to the major trade hubs. Use 'current' for the character's location. For wormhole (J-space) systems: class, system effect with its modifiers, and static wormholes with destination, mass and lifetime.

wormhole_typeA

Looks up wormhole types by their signature code (e.g. K162, H296, D845): destination class, max mass per jump, total mass, mass regeneration, lifetime, and the classes of systems that have it as a static.

route_planA

Plans a stargate route and returns every system with security and region, a security breakdown, and recent kills along the way. Origin defaults to the character's current system. Optionally sets the in-game autopilot destination.

market_pricesA

Best buy/sell, spread, order counts and volumes for up to 20 items at a market (default Jita 4-4; also amarr, dodixie, rens, hek, any region/system/station name, or a structure id), with optional 7/30-day regional history and order book depth.

server_statusA

EVE server status (players online, version, start time) and the SDE/static data build this server is using.

walletB

A character's ISK balance, income/expense breakdown by type over recent days, latest journal entries (with party names) and latest market transactions (item, quantity, price, location, counterparty).

market_ordersA

A character's open market orders with item and location names, remaining volume, expiry and escrow — and whether each order is currently the best price at its station or has been undercut/outbid (and by how much). Optionally recent order history.

appraiseA

Values free-form item text at a market (default Jita 4-4): EFT fits, in-game inventory/cargo copy-paste (tab separated), 'Item x10', '10 Item' lines. Returns per-item buy/sell unit and totals, volume, and unrecognized lines.

contractsB

A character's contracts (issued to/by them) with names for issuer/assignee/acceptor, start/end locations, prices, courier details and the items in each item-exchange/auction contract.

industryB

A character's industry jobs (activity, blueprint, product, runs, facility, time left) and/or blueprints (BPO/BPC, ME/TE, runs, location). Filter blueprints by name.

planetsA

A character's PI colonies with planet names and types, extractor products and expiry times (soonest first), factory schematics, and storage contents. ESI only updates PI data when the colony is viewed in game.

mail_listA

Recent EVE mail headers with sender/recipient names, labels and read state. Use mail_read for bodies.

mail_readA

Full text of one or more mails (HTML converted to plain text) with sender and recipient names.

mail_sendA

Sends an in-game EVE mail from the character. Recipients are names of characters, corporations, alliances or the character's mailing lists. This sends a real message: always confirm recipients, subject and body with the user first.

notificationsA

Recent in-game notifications (structure attacks, war declarations, kill reports, sov, corp applications, ...) with the YAML payload parsed and ids resolved to names. Filter by type substring (e.g. 'Structure', 'War', 'Kill').

killmailsA

A character's recent killmails with victim/attacker names, ships, system and security, and zKillboard links. For losses (or any kill with include_fit) the victim's fit is rebuilt as EFT with dropped/destroyed items.

esi_requestA

Escape hatch for any ESI route not covered by a dedicated tool (see https://developers.eveonline.com/api-explorer). Paths may use {character_id}, {corporation_id} and {alliance_id}, filled from the selected character. Authentication, compatibility date, caching and pagination are handled; id fields in the response get *_name siblings. Non-GET methods change game state: confirm with the user first.

ui_actionA

Acts on the running EVE client of the character (must be logged in to the game): set autopilot destination or add a waypoint (system, NPC station or structure), open the market window for an item, or open the show-info window for an item/character/corporation/alliance.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.6/5.0

Scored across 35 tools

Disambiguation4/5

Most tools target clearly distinct resources/actions (mail_list vs mail_read vs mail_send, market_prices vs market_orders vs appraise). The main overlap is the fitting trio (fitting_get, ship_fitting, fitting_analyze), which return near-identical rich output and are separated only by input source; character_overview also aggregates data from wallet, skills, and assets. Descriptions do enough to steer selection, but the fitting trio is a real source of confusion.

Naming Consistency3/5

All names are snake_case, but conventions are mixed: bare nouns (assets, wallet, contracts, industry, planets), noun_verb (characters_list, mail_list), verb_noun (search_items, route_plan, fitting_save), and noun_noun (item_info, market_prices). Prefixes like character_, fitting_, mail_, market_ help group tools but are not applied uniformly. Readable, but not a predictable pattern.

Tool Count3/5

35 tools is heavy for any single server, and an agent must scan a large surface to find the right call. However, the EVE ESI domain genuinely spans many independent resources (characters, fittings, market, mail, industry, PI, contracts, killmails, static data, navigation), so most tools earn their place. It sits at the upper bound rather than being gratuitously bloated.

Completeness4/5

Coverage is broad and lifecycle-aware: fittings support list/get/analyze/save/delete, mail supports list/read/send, and assets, contracts, industry, planets, notifications, killmails, wallet, and market are all covered. Minor gaps remain—no fitting update for an existing fit, and no market order create/cancel or contract actions—but esi_request serves as a general escape hatch. Agents can complete nearly all typical workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues