mcp-romm
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ROMM_URL | No | Your RomM instance URL | http://localhost:3000 |
| ROMM_PASSWORD | Yes | RomM password | |
| ROMM_USERNAME | Yes | RomM username | |
| ROMM_TLS_VERIFY | No | Verify TLS certificates | true |
| ROMM_REQUEST_TIMEOUT | No | Default request timeout (seconds) | 30 |
| ROMM_REQUEST_TIMEOUT_LONG | No | Timeout for slow endpoints | 60 |
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": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| romm_statusA | Check RomM MCP server configuration and reachability. |
| romm_statsA | Get library statistics — platform count, ROM count, saves, total size. |
| romm_platformsA | List platforms with ROM counts. |
| romm_library_itemsA | Browse ROMs — filter by platform, search term, or favorites. Paginated. platform_id: Filter to a single platform (use romm_platforms to find IDs). 0 = all. search: Text search in ROM names. favorite: Show only favorites (default: false). limit: Items per page (default 25, max 100). offset: Skip this many items (default 0). order_by: Sort field — "name", "fs_size_bytes", "updated_at" (default: name). order_dir: "asc" or "desc" (default: asc). |
| romm_recentA | Recently added or updated ROMs. limit: Number of results (default 20, max 100). |
| romm_get_itemA | Get full detail for a single ROM — metadata, user status, saves. rom_id: The ROM's ID (from romm_library_items or romm_search). |
| romm_searchA | Search ROMs by name across the library. query: Search term (required). platform_id: Filter to a single platform (0 = all). limit: Max results (default 20). |
| romm_search_by_hashC | Identify a ROM by file hash. Provide at least one hash value. crc_hash: CRC32 hash string. md5_hash: MD5 hash string. sha1_hash: SHA1 hash string. |
| romm_filtersA | Get available filter values for ROM browsing — genres, regions, languages, tags. |
| romm_collectionsB | List user-curated collections. |
| romm_collection_detailA | List ROMs in a specific collection. collection_id: The collection's ID (from romm_collections). |
| romm_smart_collectionsA | List auto-generated smart collections (rule-based). |
| romm_savesA | List save files. Filter by ROM or platform. rom_id: Filter to a specific ROM (0 = all). platform_id: Filter to a specific platform (0 = all). |
| romm_user_profileA | Browse ROMs by user status — favorites, now playing, backlogged, completed. status_filter: Filter by user status. Options: "now_playing", "backlog", "wishlist", "completed", "retired", "" (shows favorites). |
| romm_rom_notesA | View notes on a ROM. rom_id: The ROM's ID (from romm_library_items or romm_search). |
| romm_firmwareB | List BIOS/firmware files. Optionally filter by platform. platform_id: Filter to a specific platform (0 = all). |
| romm_devicesA | List registered devices (handhelds, emulators, etc.). |
| romm_tasksA | Check running and scheduled task status. |
| romm_scan_libraryA | Trigger a library rescan to discover new ROMs and platforms. This is a background task — it returns immediately. New ROMs will appear in the library as the scan progresses. |
| romm_set_statusA | Set your personal play status on a ROM. Modifies only your own user data. Provide only the fields you want to change; omitted fields are left as-is. rom_id: The ROM's ID (from romm_search or romm_library_items). status: Play status — one of "incomplete", "finished", "completed_100", "retired", "never_playing". Empty = leave unchanged. backlogged: true/false to mark/unmark backlogged. Omit to leave unchanged. now_playing: true/false to mark/unmark as currently playing. Omit to leave unchanged. rating: 0-10 rating. -1 (default) = leave unchanged. completion: 0-100 percent complete. -1 (default) = leave unchanged. mark_played: Set the last-played timestamp to now. clear_played: Clear the last-played timestamp (mutually exclusive with mark_played). |
| romm_favoriteA | Add or remove a ROM from your Favorites. In RomM, favorites are a special collection. This finds (or creates) your favorites collection and adds/removes the ROM. rom_id: The ROM's ID. favorite: True to favorite (default), False to unfavorite. |
| romm_add_noteA | Add a note to a ROM. The note belongs to you. rom_id: The ROM's ID. title: Note title (required). content: Note body in markdown (optional). tags: Optional list of tag strings. is_public: Whether other RomM users can see the note (default: false). |
| romm_update_noteA | Edit an existing note. Only the fields you provide are changed. rom_id: The ROM's ID. note_id: The note's ID (from romm_rom_notes). title: New title (empty = unchanged). content: New body (empty = unchanged). tags: New tag list (omit to leave unchanged). is_public: New visibility (omit to leave unchanged). |
| romm_delete_noteA | Permanently delete a note. This cannot be undone. rom_id: The ROM's ID. note_id: The note's ID (from romm_rom_notes). |
| romm_create_collectionA | Create a new user collection. name: Collection name (required). description: Optional description. |
| romm_add_to_collectionA | Add one or more ROMs to a collection (without replacing the existing list). collection_id: The collection's ID (from romm_collections). rom_ids: List of ROM IDs to add. |
| romm_remove_from_collectionA | Remove one or more ROMs from a collection (without deleting the collection). collection_id: The collection's ID (from romm_collections). rom_ids: List of ROM IDs to remove. |
| romm_delete_collectionA | Permanently delete a collection. This cannot be undone. The ROMs themselves are not deleted — only the collection grouping. collection_id: The collection's ID (from romm_collections). |
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 28 tools
Each tool has a clearly distinct purpose, e.g., adding notes, managing collections, browsing library, searching, etc. There is minimal overlap; even similar tools like romm_library_items and romm_search differ in scope (browse vs. search).
All tools start with 'romm_' and follow a consistent verb_noun pattern (e.g., romm_add_note, romm_create_collection) or noun-only for list operations (e.g., romm_platforms, romm_saves). The naming is predictable and clear.
With 28 tools, the server covers a broad domain including library browsing, collections, notes, user status, scanning, and system tasks. While slightly high, each tool serves a clear function and the count is justified by the comprehensive feature set.
The tools cover core CRUD operations for collections and notes, plus browsing, searching, user status, and system utilities. Minor gaps exist (e.g., no update for collections, no direct ROM deletion), but the surface is largely complete for a user-facing ROM manager.