hydra-bridge
Enables AI agents to control Hydra Launcher programmatically — search games, manage downloads, configure Proton, organize library, and more via 46 MCP tools.
README
Hydra MCP Bridge
46 MCP tools to control Hydra Launcher programmatically — search games, manage downloads, configure Proton, organize your library, and more.
npx hydra-bridge
Works with Claude Desktop, Claude Code, OpenCode, OpenClaw, Hermes Agent, Cursor, VS Code, Cline / Roo Code, Continue.dev, and any MCP-compatible agent.
How It Works
Hydra Launcher is an Electron app. Every Electron app exposes a Chrome DevTools Protocol (CDP) port when started with --remote-debugging-port=9222. This bridge:
- Connects to the running Hydra window via CDP
- Calls
window.electron.*IPC methods directly — the same ones Hydra's own UI uses - Exposes them as 46 MCP tools over stdio
No reverse engineering, no patching, no API keys. If Hydra is running, this works.
Prerequisites
- Hydra Launcher installed and running (
/opt/Hydra/hydralauncheror your OS equivalent) - Node.js 18+ (for the bridge)
The bridge auto-starts Hydra with the CDP flag if it isn't already running, so you don't need to configure anything special.
Quick Start
# Install globally
npm install -g hydra-bridge
# Or run directly
npx hydra-bridge
That's it. The bridge connects to your running Hydra instance and exposes tools on stdio. Configure it as an MCP server in your agent (see below).
From Source
git clone https://github.com/KleirRampage45/hydra-bridge.git
cd hydra-bridge
npm install
npm run build
node dist/index.js
Agent Configuration
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"hydra-bridge": {
"command": "npx",
"args": ["hydra-bridge"]
}
}
}
Claude Code
claude mcp add hydra-bridge -- npx hydra-bridge
Or in ~/.claude/settings.json:
{
"mcpServers": {
"hydra-bridge": {
"command": "npx",
"args": ["hydra-bridge"]
}
}
}
OpenCode
In ~/.config/opencode/opencode.json:
{
"mcpServers": {
"hydra-bridge": {
"command": "npx",
"args": ["hydra-bridge"]
}
}
}
OpenClaw
openclaw mcp add hydra-bridge \
--command npx \
--arg hydra-bridge
Verify it's working:
openclaw mcp probe hydra-bridge --json
Hermes Agent
In ~/.hermes/config.yaml:
mcpServers:
hydra-bridge:
command: npx
args: ["hydra-bridge"]
Restart the gateway:
systemctl --user restart hermes-gateway
Cursor
In Cursor settings → MCP Servers:
{
"mcpServers": {
"hydra-bridge": {
"command": "npx",
"args": ["hydra-bridge"]
}
}
}
VS Code (via Continue.dev or VS Code Agents)
In .continuerc.json or VS Code MCP settings:
{
"mcpServers": {
"hydra-bridge": {
"command": "npx",
"args": ["hydra-bridge"]
}
}
}
Cline / Roo Code
In cline_mcp_settings.json:
{
"mcpServers": {
"hydra-bridge": {
"command": "npx",
"args": ["hydra-bridge"]
}
}
}
Continue.dev
In config.json:
{
"experimental": {
"mcpServers": {
"hydra-bridge": {
"command": "npx",
"args": ["hydra-bridge"]
}
}
}
}
Note: All agents use the same
npx hydra-bridgeinvocation. The bridge auto-connects to Hydra and exposes all 46 tools automatically.
Tool Reference
Search & Catalogue (7 tools)
| Tool | Description | Use Case |
|---|---|---|
hydra_search_games |
Search the catalogue by title | "Find Factorio on Hydra" |
hydra_get_repacks |
List all download sources for a game | "What repacks are available for Elden Ring?" |
hydra_get_random_game |
Get a random game from the catalogue | "Surprise me with something to play" |
hydra_get_game_stats |
Player count, download count, rating | "How popular is Baldur's Gate 3 right now?" |
hydra_get_game_shop_details |
Full Steam store page data | "Show me the store description and requirements for Cyberpunk" |
hydra_get_game_assets |
Cover art, icon, logo, hero URLs | "Download the cover art for this game" |
hydra_get_achievements |
List unlocked achievements for a game | "What achievements have I unlocked in Hollow Knight?" |
Download Management (7 tools)
| Tool | Description | Use Case |
|---|---|---|
hydra_start_download |
Start a new download from a repack URI | "Download Factorio with the preinstalled repack" |
hydra_pause_download |
Pause an active download | "Pause the Factorio download, I need bandwidth" |
hydra_resume_download |
Resume a paused download (with conflict strategy) | "Resume Factorio, interrupt the current download if needed" |
hydra_cancel_download |
Cancel an active or queued download | "Cancel the Stardew Valley download, I picked the wrong one" |
hydra_get_download_queue |
Full queue state with enriched game info | "What's downloading and what's queued?" |
hydra_reorder_download |
Move a download between hero/queue/paused areas | "Move Cyberpunk to the top of the queue" or "Move this to paused" |
hydra_add_to_queue |
Queue a download without starting it | "Add Doom to the queue but don't start yet" |
Library Management (8 tools)
| Tool | Description | Use Case |
|---|---|---|
hydra_get_library |
List all installed games | "Show me my library" |
hydra_get_game_details |
Full details for one game (executable, Proton, playtime) | "What executable does Factorio use?" |
hydra_favorite_game |
Add or remove a game from favorites | "Favorite Hollow Knight" |
hydra_toggle_pin |
Pin or unpin a game in the library | "Pin Stardew Valley to the top" |
hydra_assign_collection |
Assign a game to collections | "Add all my RPGs to the 'RPG' collection" |
hydra_remove_game |
Remove from library (optionally delete files) | "Remove that game I don't play anymore, and delete its files" |
hydra_import_game |
Add a custom game by executable path | "I have a GOG copy of Witcher 3, add it to my library" |
hydra_scan_library |
Rescan for newly installed games | "I just moved some game folders, scan for changes" |
Launch & Proton Configuration (7 tools)
| Tool | Description | Use Case |
|---|---|---|
hydra_launch_game |
Launch a game (auto-detects native Linux vs Proton) | "Launch Factorio" |
hydra_set_executable_path |
Set or clear the game binary path | "The exe is at /home/me/Games/Factorio/bin/x64/factorio" |
hydra_set_proton_path |
Set which Proton version a game uses | "Use GE-Proton10-25 for this Windows game" |
hydra_set_launch_options |
Set launch flags and environment variables | "Add --windowed --no-audio to the launch options" |
hydra_get_proton_versions |
List all installed Proton versions | "What Proton versions do I have installed?" |
hydra_get_game_launch_proton |
Check which Proton a game would use | "What Proton does Elden Ring launch with?" |
hydra_create_shortcut |
Create desktop or start menu shortcut | "Put a Factorio shortcut on my desktop" |
Extraction (3 tools)
| Tool | Description | Use Case |
|---|---|---|
hydra_extract_game |
Force re-extraction of a game archive | "The extraction failed halfway, try again" |
hydra_get_installer_action |
Check what action is needed (install vs ready) | "Is this game ready to play or does it need setup?" |
hydra_open_game_installer |
Open the game installer to run setup steps | "I need to run the installer for this game" |
Settings & Hardware (6 tools)
| Tool | Description | Use Case |
|---|---|---|
hydra_get_preferences |
Get all Hydra user preferences | "Show me my current Hydra settings" |
hydra_update_preferences |
Update Hydra settings | "Change the default download path to /mnt/hdd/Games" |
hydra_get_default_downloads_path |
Get the OS default download path | "Where does Hydra save by default?" |
hydra_get_disk_free_space |
Check free space on a path | "How much space is left on /home?" |
hydra_get_available_drives |
List all drives and partitions | "What drives are available to move games to?" |
hydra_transfer_game |
Move installed game to another drive | "Move Cyberpunk from my SSD to the HDD" |
Download Sources (4 tools)
| Tool | Description | Use Case |
|---|---|---|
hydra_get_download_sources |
List configured download sources | "What repack sites do I have set up?" |
hydra_add_download_source |
Add a new download source URL | "Add this new repack site" |
hydra_remove_download_source |
Remove a download source | "Remove that dead source" |
hydra_sync_sources |
Force sync all sources for new repacks | "Check all sources for new repacks now" |
LevelDB Direct Access (2 tools)
| Tool | Description | Use Case |
|---|---|---|
hydra_leveldb_get |
Read any key from Hydra's internal LevelDB | "What's stored in the game entry for Factorio?" |
hydra_leveldb_values |
List all keys in a LevelDB sublevel | "Show me every game in the database" |
Auth & Automation (2 tools)
| Tool | Description | Use Case |
|---|---|---|
hydra_get_auth |
Check Hydra Cloud login status | "Am I logged into Hydra Cloud?" |
hydra_auto_download |
Fully autonomous: search → score → download | "I want Factorio, figure it out and get it" |
Example Workflows
"I want to download Factorio, set it up with Proton, and play it"
The agent orchestrates across multiple tools:
1. hydra_search_games("Factorio") → find steam:427520
2. hydra_get_repacks("steam", "427520") → find the best repack
3. hydra_start_download(...) → download it
4. hydra_get_download_queue(...) → wait for completion
5. hydra_get_game_details("steam", "427520") → check if executable is set
6. hydra_set_executable_path("steam", "427520", "/path/to/factorio")
7. hydra_launch_game("steam", "427520") → play
"Move Cyberpunk to my HDD to free up SSD space"
1. hydra_get_available_drives() → see /mnt/hdd has 800GB free
2. hydra_transfer_game("steam", "1091500", "/mnt/hdd/Games")
3. hydra_get_game_details("steam", "1091500") → verify new path
"Clean up my library"
1. hydra_get_library() → list all games
2. hydra_remove_game("steam", "old-game", deleteFiles: true)
3. hydra_scan_library() → refresh
"Set up this Windows game with the right Proton config"
1. hydra_get_proton_versions() → see GE-Proton10-25 is installed
2. hydra_set_proton_path("steam", "123456", "/path/to/GE-Proton10-25")
3. hydra_set_launch_options("steam", "123456", "PROTON_USE_WINED3D=1 %command%")
4. hydra_launch_game("steam", "123456") → test it
Architecture
┌──────────────┐ CDP (9222) ┌──────────────┐ stdio ┌──────────┐
│ Hydra │ ◄───────────────► │ hydra-bridge │ ◄──────────► │ Agent │
│ Launcher │ │ (MCP Server) │ │ (Claude,│
│ (Electron) │ │ │ │ OpenCode,│
└──────────────┘ └──────────────┘ │ etc.) │
└──────────┘
- Hydra runs as a normal desktop app with
--remote-debugging-port=9222 - bridge connects via CDP, calls
window.electron.*IPC methods - Agent communicates with the bridge via MCP stdio protocol
The bridge auto-starts Hydra if it's not already running, so a typical flow is:
hydra-bridge & # starts Hydra + bridge
# Agent connects and starts issuing tool calls
Security
- The CDP port is bound to localhost only — not exposed to the network
- The bridge uses Hydra's existing IPC — no API keys needed
- All LevelDB reads are read-only from the bridge (no write operations exposed for safety)
- The bridge only calls methods that Hydra's own UI already exposes
Platform Support
| Platform | Status |
|---|---|
| Linux | ✅ Fully tested (Arch, KDE Plasma 6) |
| Windows | ✅ Should work — Hydra IPC is cross-platform |
| macOS | ✅ Should work — same CDP mechanism |
The bridge works wherever Hydra Launcher runs. The CDP port, IPC handler names, and LevelDB schema are consistent across platforms.
Troubleshooting
"Cannot connect to Hydra CDP" → Make sure Hydra is running. The bridge waits up to 30s for it to start. → Check that port 9222 isn't blocked by a firewall.
"Downloader failed silently"
→ The downloader parameter is a numeric enum (0-13), not a string. Passing "Torrent" instead of 1 will silently fail. Use the numeric values from the tool's input schema.
"KIO blocks launching on KDE"
→ The bridge's smart launcher (hydra_launch_game) detects native ELF binaries and spawns them directly via child_process.execFile() — bypassing KIO entirely.
"Tool returned empty results"
→ Some Hydra IPC methods require the app to be fully loaded (download sources synced, library scanned). Try hydra_sync_sources or hydra_scan_library first.
Development
# Build
npm run build
# Watch mode
npm run watch
# Test against running Hydra
node dist/index.js
# Test specific tools
node -e "
const { connectToHydra } = require('./dist/hydra-cdp');
const { HydraAPI } = require('./dist/hydra-api');
(async () => {
const cdp = await connectToHydra();
const api = new HydraAPI(cdp);
console.log(await api.getInstalledProtonVersions());
await cdp.close();
})();
"
Upstream
This bridge is an independent project that uses Hydra Launcher's existing IPC surface. It is not affiliated with or endorsed by the Hydra Launcher project.
- Hydra Launcher — the game download manager this bridge controls
License
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。