eve-fit
by remandorsn
README.md
# eve-fit-mcp
**English** | [Русский](README.ru.md)
MCP server for EVE Online ship fitting. Lets your AI agent pick real ship modules, validate a fit against fitting limits and compute real numbers instead of hallucinating them.
Powered by official CCP data (SDE) and live market prices.
## Tools
| Tool | What it does |
|------|--------------|
| `eve_search_items` | Find items (ships, modules, rigs, charges, drones) by name → typeId |
| `eve_get_item` | Full attribute dump for one item: CPU/PWG, slots, damages, resistances, skill requirements |
| `eve_evaluate_fit` | Validate a fit and compute stats: fitting limits, DPS per weapon group and drones, EHP per damage type, resistances, shield regen, capacitor stability, speed/agility |
| `eve_price_fit` | Jita 4-4 prices (min sell / max buy), cached ~30 min |
Skills are assumed All-5 unless overridden via the `skills` parameter.
## Requirements
- [Node.js](https://nodejs.org) **22.5 or newer** (any current LTS is fine)
- [git](https://git-scm.com)
- Any MCP-capable agent: OpenCode, Claude Code, Codex, etc.
## Install
### The easy way: let your agent do it
Paste this into your agent:
```
Install the MCP server from https://github.com/remandorsn/eve-fit-mcp:
1. git clone https://github.com/remandorsn/eve-fit-mcp.git ~/eve-fit-mcp
2. cd ~/eve-fit-mcp && npm install && npm run build
3. Register it as a local MCP server named "eve-fit" in your own config:
command: node, args: [~/eve-fit-mcp/dist/index.js] (use the absolute path)
On first start the server downloads the EVE SDE (~100 MB, a few minutes) automatically.
After that, verify it works by searching for "Rifter" via eve_search_items.
```
### Manual setup
```bash
git clone https://github.com/remandorsn/eve-fit-mcp.git
cd eve-fit-mcp
npm install
npm run build
```
**Note:** on first start the server downloads and imports the EVE SDE into `data/` (~100 MB download, a few minutes). You only do nothing — it happens by itself. To refresh data after a game expansion, run `npm run sde:update`.
Then point your client at `node <path-to-repo>/dist/index.js`:
#### OpenCode
`opencode.json` in your project (or global config):
```json
{
"mcp": {
"eve-fit": {
"type": "local",
"command": ["node", "/absolute/path/to/eve-fit-mcp/dist/index.js"]
}
}
}
```
#### Claude Code
```bash
claude mcp add eve-fit -- node /absolute/path/to/eve-fit-mcp/dist/index.js
```
or a `.mcp.json` in the project root:
```json
{
"mcpServers": {
"eve-fit": { "command": "node", "args": ["/absolute/path/to/eve-fit-mcp/dist/index.js"] }
}
}
```
#### Codex
`~/.codex/config.toml`:
```toml
[mcp_servers.eve-fit]
command = "node"
args = ["/absolute/path/to/eve-fit-mcp/dist/index.js"]
```
#### Any other MCP client
The server speaks standard MCP over stdio, so any client with a JSON config works:
```json
{ "command": "node", "args": ["/absolute/path/to/eve-fit-mcp/dist/index.js"] }
```
## Example prompts
- «Собери фиты на Rifter под 15 млн ISK, нужно 80+ DPS»
- "Compare an Ishtar heavy-drone boat vs a VNI for Abyssal Decks, include EHP and DPS"
- "Price this Hyperion fit at Jita and tell me the cheapest alternative for the mods"
## Development
```bash
npm test # unit + integration tests of the dogma engine
npm run dev # run the server from source (tsx)
npm run sde:update
```
## License
[MIT](LICENSE)
TDQS
A4.2/5.0
Scored across 4 tools
Disambiguation5/5
Each tool has a distinct purpose: searching items, retrieving item attributes, evaluating fits, and pricing fits. There is no overlap in their functionality.
Naming Consistency5/5
All tools follow the same eve_verb_noun pattern (eve_search_items, eve_get_item, eve_evaluate_fit, eve_price_fit). Minor singular/plural variance is inconsequential.
Tool Count5/5
Four tools is well-scoped for a dedicated EVE fitting server. Each tool covers a distinct part of the fitting workflow without redundancy or bloat.
Completeness5/5
The toolset covers the complete core workflow: search items, inspect item details, evaluate a fit, and price a fit. No critical operations are missing for the stated purpose.
Maintenance
ActivityMaintained
ResponsivenessNo issues