EVE Online ESI MCP Server
This is an MCP (Model Context Protocol) server for the EVE Online ESI API that supports both local (stdio) and remote (OAuth-enabled) connections.
Features
- Remote MCP Support: Compatible with geelen/mcp-remote specification
- OAuth 2.0 Authentication: Secure authentication with PKCE support
- Multiple Transport Options: SSE (Server-Sent Events) and HTTP
- Dynamic Client Registration: Automatic OAuth client registration
- Full ESI API Coverage: Access to all EVE Online ESI endpoints
Installation
Installing via Smithery
To install EVE Online ESI Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @kongyo2/eveonlineesi-mcp --client claude
Manual Installation
npm install
Configuration
Create a .env
file with the following variables:
# EVE Online ESI API Key (for ESI authentication)
EVE_ONLINE_APIS_API_KEY=your_eve_api_key
# OAuth Configuration (optional - will use defaults if not provided)
OAUTH_CLIENT_ID=eve-online-esi-mcp
OAUTH_CLIENT_SECRET=your_oauth_secret
JWT_SECRET=your_jwt_secret
# Server Port (default: 3001)
PORT=3001
Running the Server
Local Mode (stdio)
For direct local connections:
npm start
Remote Mode (SSE/HTTP)
For remote connections with OAuth:
npm run start:sse
Using with geelen/mcp-remote
To connect to this server using geelen/mcp-remote, configure your MCP client (e.g., Claude Desktop, Cursor) with:
{
"mcpServers": {
"eve-online-esi": {
"command": "npx",
"args": [
"mcp-remote",
"http://localhost:3001/sse"
]
}
}
}
Or if deploying to a remote server:
{
"mcpServers": {
"eve-online-esi": {
"command": "npx",
"args": [
"mcp-remote",
"https://your-server.com/sse"
]
}
}
}
Available Tools
The server provides access to all EVE Online ESI endpoints, including:
- Alliance: Get alliance information and corporations
- Character: Access character data (location, mail, wallet, etc.)
- Corporation: Corporation details and history
- Market: Market prices, orders, and groups
- Universe: Regions, systems, structures
- Killmails: Kill reports
- And many more...
OAuth Flow
- When connecting via mcp-remote, you'll be redirected to authorize
- Approve access to grant permissions
- The server will issue an access token
- All subsequent requests will use this token
Transport Strategies
When using mcp-remote, you can specify transport strategies:
# SSE only
npx mcp-remote http://localhost:3001/sse --transport sse-only
# HTTP only
npx mcp-remote http://localhost:3001/mcp --transport http-only
# Try SSE first, fallback to HTTP
npx mcp-remote http://localhost:3001/sse --transport sse-first
Endpoints
- SSE:
GET /sse
- Server-Sent Events transport - HTTP:
POST /mcp
- HTTP transport - OAuth:
POST /oauth/register
- Dynamic client registrationGET /oauth/authorize
- Authorization endpointPOST /oauth/token
- Token endpoint
- Health:
GET /health
- Health check
Development
To list all available tools:
npm run list-tools
Security
- OAuth tokens expire after 1 hour
- PKCE is supported for enhanced security
- All API requests require valid authentication
- Client secrets are stored securely
License
MIT