mcp-proxy
Exposes remote Blender and QGIS MCP servers locally over SSH tunnels, with graceful degradation when backends are unreachable.
README
mcp-akiko-proxy
MCP stdio proxy over SSH, exposing remote MCP servers (bound to localhost on a
remote machine) as tools on the local machine.
Establishes SSH tunnels using your existing ~/.ssh/config host alias, connects
to the remote MCP servers over streamable-http through the tunnel, and exposes
their tools aggregated behind one local stdio MCP server.
Default targets (configurable):
| name | local port | remote url | exposes |
|---|---|---|---|
| blender | 8001 | http://127.0.0.1:8001/ |
Blender MCP (blender-mcp daemon on the remote) |
| qgis | 8000 | http://127.0.0.1:8000/mcp |
QGIS MCP (qgis-mcp daemon on the remote) |
Graceful degradation
If the tunnel is down or a backend is unreachable, that backend's tools vanish
from tools/list (or their calls return a clear error). The proxy keeps running
and retries periodically — it never crashes because a backend is missing.
Usage
# run (stdio; opencode/claude/any MCP client will spawn it):
npx -y github:gbastkowski/mcp-proxy
# or clone + npm install + npm start
Configuration (env vars)
| var | default | purpose |
|---|---|---|
MCP_PROXY_HOST |
akiko |
ssh host alias from ~/.ssh/config |
MCP_PROXY_TUNNELS |
blender+qgis defaults | JSON [{ name, localPort, remotePort, url }] |
MCP_PROXY_TUNNEL_RETRY_MS |
15000 |
reconnect/retry interval for dead backends |
MCP_PROXY_CONNECT_TIMEOUT_MS |
10000 |
wait for a tunnel/backend port |
MCP_PROXY_SSH_TIMEOUT_MS |
5000 |
ssh ConnectTimeout |
MCP_PROXY_NO_TUNNEL |
unset | truthy: skip ssh, talk to localhost directly (testing) |
Example: opencode on a Macbook using Blender+QGIS on the akiko box
{
"mcp": {
"akiko": {
"type": "local",
"command": ["npx", "-y", "github:gbastkowski/mcp-proxy"]
}
}
}
Run MCP_PROXY_HOST=akiko npx -y github:gbastkowski/mcp-proxy — the host is
read from your normal ssh config, keys from your agent.
Requirements
- Node >= 18
sshwith a configured host alias for the remote machine + working key auth- On the remote: the target MCP servers bound to
127.0.0.1(they are not exposed to the network; the SSH tunnel is the only bridge)
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.