Skip to main content
Glama
HammoTime

eve-online-mcp

by HammoTime

EVE Online MCP library

Shared, runtime-independent TypeScript source for the local eve-online-mcp application and the future eve-online-hosted-mcp Workers service. This public repository is consumed as a Git submodule pinned to a reviewed commit, not as an independently published npm package. Licensed AGPL-3.0-only; extracted from HammoTime/eve-online-mcp at 05ca567.

Runtime boundary

  • src/openapi.ts owns the read-only operation catalog and manually reviewed safe POST allowlist; openapi/esi-openapi.json is the canonical pinned schema.

  • src/esi-client.ts owns validated ESI requests, response limits, pagination, freshness metadata and bounded per-client caching. Protected cache keys vary by a SHA-256 digest of the access token. Public requests never obtain tokens.

  • src/auth.ts and src/token-identity.ts provide token contracts, refresh and rotation callbacks, scope inspection, and verified EVE SSO identities.

  • src/server.ts registers transport-independent MCP tools/resources/prompts.

  • Skill catalogs, dependency graphs, planning, entity resolution, character context and market snapshots are shared here.

The runtime uses Web APIs and has no Node filesystem, process, HTTP listener, browser-launch, or Cloudflare binding dependency. File loading, SSO callbacks, credential persistence, archive extraction, scheduling, and static-data storage belong to each application. Schema maintenance scripts currently live in the local application and update this submodule's pinned document.

Related MCP server: eve-online-mcp

Integration

git submodule add https://github.com/HammoTime/eve-online-mcp-lib.git lib
git submodule update --init --recursive

Import the source directly and compile/bundle it with your application:

import { OperationCatalog } from "./lib/src/openapi.js";
import { EsiClient } from "./lib/src/esi-client.js";
import { createEveServer } from "./lib/src/server.js";

const catalog = new OperationCatalog(pinnedDocument);
const client = new EsiClient(catalog, sessionTokenProvider, {
  userAgent: "my-eve-service/1.0 (contact@example.com)",
});
const server = createEveServer(catalog, client, {
  identity: { name: "my-eve-service", version: "1.0.0" },
  authentication: sessionCharacterAuthentication,
  staticData: applicationStaticDataSource,
});

Applications supply @modelcontextprotocol/server, jose, and zod using the compatible ranges in package.json. The .js imports resolve to .ts source during TypeScript compilation. Build the submodule with the consumer; no npm workspace, sibling checkout, or separately published artifact is required.

Create a separate EsiClient, token provider, authentication adapter and MCP server for each user session. Never use a global mutable default character or credential store across users. Authorization handles are bound to their client instance. The in-memory ESI cache is instance-local and credential-sensitive; this library does not provide persistent Workers caching or hosted sessions. Refresh providers must receive an identity-verification callback and a durable rotation callback in authenticated applications.

StaticDataSource.initialize() returns one validated SkillCatalog and its freshness status for a plan. A D1 adapter and the four-hour ETag-only update check will be implemented in the hosted application in the next stage. They are not implemented here.

Development

Use .devcontainer/devcontainer.json, or the equivalent Docker environment:

docker build --target development -f .devcontainer/Dockerfile -t eve-online-mcp-lib-dev .
docker run --rm --user node -v "$PWD:/workspace" -w /workspace eve-online-mcp-lib-dev sh -lc "npm ci && npm run validate"

Validation includes formatting, strict lint, typechecking, runtime compilation without Node globals, coverage tests, a browser-target bundle check, and a build. Publish library commits before updating a consumer's Git submodule pointer.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    このMCPサーバーは、EVE Onlineのマーケットデータにアクセスするためのインターフェースを提供します。ESI(EVE Swagger Interface)APIを使用して、リアルタイムの市場データを取得できます。
    10
    1,070
    9
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    This MCP server allows you to interact with the EVE Tycoon API to retrieve market data, price statistics, order books, and historical pricing information for EVE Online items across different regions.
    6
    4
    MIT

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/HammoTime/eve-online-mcp-lib'

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