RomM MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_HOST | No | Host to bind for HTTP transport. Native execution defaults to loopback | |
| MCP_PORT | No | Port to bind for HTTP transport | |
| ROMM_URL | Yes | RomM base URL without /api; use its nginx front door for file downloads | |
| ROMM_TOKEN | Yes | Upstream RomM bearer/client token | |
| MCP_TRANSPORT | No | Transport mode (stdio or http). Native execution defaults to stdio; CLI flags win | |
| ROMM_PASSWORD | No | Optional configured credentials for HTTP auth_mode=basic | |
| ROMM_USERNAME | No | Optional configured credentials for HTTP auth_mode=basic | |
| MCP_AUTH_TOKEN | No | Random token of at least 32 characters used for HTTP transport authentication | |
| ROMM_ALLOW_AUTH | No | Authentication/token workflows and nondefault HTTP authentication modes | false |
| ROMM_ALLOW_ADMIN | No | Administrative configuration, users, permissions, logs, and management endpoints | false |
| ROMM_ALLOW_FILES | No | Binary transfers and file-affecting operations; permits artifact read/delete | false |
| ROMM_ALLOW_TASKS | No | Task endpoints, exports, streaming mutations, refresh/redownload actions, and socket sends | false |
| MCP_ALLOWED_HOSTS | No | Comma-separated Host allowlist, including ports when used. Defaults permit loopback hosts on any port | |
| ROMM_ALLOW_WRITES | No | Master switch for state changes; registers four write tools | false |
| MCP_ALLOWED_ORIGINS | No | Comma-separated list of allowed Origin headers for HTTP transport | |
| ROMM_ALLOW_REALTIME | No | Main/netplay Socket.IO connections | false |
| ROMM_SESSION_COOKIE | No | Value only of the romm_session browser cookie, required for main Socket.IO | |
| ROMM_ALLOW_DESTRUCTIVE | No | Deletions, replacement-capable uploads, regeneration, and destructive task paths | false |
| ROMM_MAX_TRANSFER_BYTES | No | Aggregate artifact storage cap in bytes, across all clients | 67108864 |
| ROMM_TRANSFER_DIRECTORY | No | Existing parent for private temporary artifact storage (default is system temporary directory) |
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_platformsB | List library platforms and ROM counts; optional name filter. Follow next_offset. |
| search_romsB | Search ROMs by title/platform/collection/RA. Compact pages; follow next_offset. |
| get_romA | Get one ROM and synopsis. Opt into metadata, files (max 50), or progress. |
| list_collectionsB | List regular collections and counts; filter by name. Follow next_offset. |
| get_collectionA | Get a regular collection and one page of its ROMs. Follow roms.next_offset. |
| romm_api_listC | Discover every HTTP operation, required scopes and switches. Follow next_offset. |
| romm_api_describeC | Fetch one operation's schema; resolve #/components/schemas/... on demand. |
| romm_api_readC | Invoke a read operation by discovered ID. Select/paginate output with request fields. |
| romm_artifactC | Move file bytes through opaque temporary handles. Requires FILES; create/append also WRITES. |
| romm_socketC | Discover/use bounded realtime sessions. REALTIME enables connections; sends require WRITES+TASKS. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 10 tools
Most tools target distinct resources and actions: list_platforms, search_roms, get_rom, list_collections, and get_collection are clearly separable. However, romm_api_read is a generic read escape hatch that can overlap conceptually with the specific read tools, which could cause an agent to hesitate between dedicated and generic paths.
Several tools follow a clean verb_noun pattern (list_platforms, search_roms, get_rom, list_collections, get_collection). Others use a romm_ prefix with varied forms (romm_socket, romm_api_list, romm_api_describe, romm_api_read, romm_artifact), creating a mixed convention that remains readable but not fully predictable.
Ten tools is well-scoped for a ROM management server that needs library browsing, collection access, generic API discovery, realtime sessions, and artifact transfer. Each tool appears to earn its place without excessive duplication.
The surface covers reading, searching, listing, API discovery, realtime sessions, and file bytes. However, explicit create, update, and delete operations for ROMs or collections are missing; romm_api_read is read-only and romm_artifact only moves bytes, leaving notable lifecycle gaps.