MCP server/other

mcp-0ne MCP Server

A standalone MCP Gateway that multiplexes N backend MCP servers

ahostbr/mcp-0ne ↗by ahostbrupdated
1

Add it to Claude Code

claude mcp add --transport http mcp-0ne http://127.0.0.1:8150/mcp
2

Make your agent remember this setup

mcp-0ne's config, env vars, and the gotchas you hit — recalled in every future Claude Code, Cursor, and Codex session.

npx conare@latest

Free · one command · indexes the sessions already on disk. Set up in the browser instead →

What it does

  • Multiplexes multiple backend MCP servers behind a single endpoint
  • Supports both HTTP and stdio transport protocols
  • Allows dynamic management of backends at runtime
  • Organizes tools using configurable namespace prefixes
  • Provides a REST API for backend management

Tools 7

0ne__discoverList all backends with state and tool counts
0ne__healthHealth check all backends with latency
0ne__addRegister a new backend at runtime
0ne__removeDisconnect and unregister a backend
0ne__enableEnable a disabled backend
0ne__disableDisable a backend without removing it
0ne__refreshForce reconnect and re-enumerate tools

Environment Variables

MCP_0NE_HOSTServer bind address
MCP_0NE_PORTServer port
MCP_0NE_CONFIGConfig file path
MCP_0NE_LOG_LEVELLog level

Try it

List all currently connected MCP backends and their status.
Check the health and latency of all registered MCP servers.
Add a new HTTP-based MCP backend with the prefix 'myapp'.
Refresh the connection to the 'myapp' backend to re-enumerate its tools.
Disable the 'legacy-server' backend temporarily.
Original README from ahostbr/mcp-0ne

mcp-0ne

One MCP server to rule them all.

A standalone MCP Gateway that multiplexes N backend MCP servers behind a single endpoint. Connect your MCP client once, manage backends dynamically at runtime.

MCP Client  ──(HTTP)──>  mcp-0ne (:8150)
                              │
              ┌───────────────┼───────────────┐
              │               │               │
         (HTTP client)   (stdio spawn)   (stdio spawn)
              │               │               │
         HTTP MCP         stdio MCP       stdio MCP
         server           server          server

Quickstart

# Install
pip install -e .

# Start with empty backends
python -m mcp_0ne.server

# Verify
curl http://127.0.0.1:8150/health

Connect Claude Code

Add to your .mcp.json:

{
  "mcpServers": {
    "0ne": {
      "type": "http",
      "url": "http://127.0.0.1:8150/mcp"
    }
  }
}

Add Backends

Via MCP tool (from Claude Code)

Call 0ne__add:

{
  "id": "myapp",
  "type": "http",
  "prefix": "myapp",
  "url": "http://127.0.0.1:8100/mcp",
  "description": "My App MCP Server"
}

Via REST API

curl -X POST http://127.0.0.1:8150/api/backends/myapp \
  -H "Content-Type: application/json" \
  -d '{"type":"http","prefix":"myapp","url":"http://127.0.0.1:8100/mcp"}'

Via config file

Edit backends.json:

{
  "backends": {
    "myapp": {
      "type": "http",
      "url": "http://127.0.0.1:8100/mcp",
      "prefix": "myapp",
      "enabled": true,
      "description": "My App MCP Server"
    }
  },
  "settings": {
    "separator": "__",
    "lazy_connect": true,
    "tool_cache_ttl": 60,
    "log_level": "info"
  }
}

Backend Types

HTTP

Connects to an existing MCP server over HTTP JSON-RPC 2.0.

Field Required Description
type yes "http"
prefix yes Tool namespace prefix
url yes MCP endpoint URL
health_url no Health check URL
timeout no Request timeout (default: 30s)
description no Human-readable description
enabled no Auto-connect (default: true)

Stdio

Spawns a subprocess and communicates via MCP SDK stdio transport.

Field Required Description
type yes "stdio"
prefix yes Tool namespace prefix
command yes Executable path
args no Command arguments
env no Environment variables
timeout no Operation timeout (default: 60s)
description no Human-readable description
enabled no Auto-connect (default: true)

Admin Tools

Available as MCP tools (prefix 0ne__):

Tool Description
0ne__discover List all backends with state and tool counts
0ne__health Health check all backends with latency
0ne__add Register a new backend at runtime
0ne__remove Disconnect and unregister a backend
0ne__enable Enable a disabled backend
0ne__disable Disable a backend without removing it
0ne__refresh Force reconnect and re-enumerate tools

REST API

Method Path Description
GET /api/backends List all backends
POST /api/backends/{id} Add a new backend
DELETE /api/backends/{id} Remove a backend
PATCH /api/backends/{id} Update backend config
POST /api/backends/{id}/refresh Reconnect and refresh

Environment Variables

Variable Default Description
MCP_0NE_HOST 127.0.0.1 Server bind address
MCP_0NE_PORT 8150 Server port
MCP_0NE_CONFIG ./backends.json Config file path
MCP_0NE_LOG_LEVEL info Log level

Tool Namespacing

Tools from backends are exposed with a namespace prefix:

{prefix}__{original_tool_name}

For example, a backend with prefix myapp exposing a tool search becomes myapp__search. The separator __ is configurable in settings.

Frequently Asked Questions

What are the key features of mcp-0ne?

Multiplexes multiple backend MCP servers behind a single endpoint. Supports both HTTP and stdio transport protocols. Allows dynamic management of backends at runtime. Organizes tools using configurable namespace prefixes. Provides a REST API for backend management.

What can I use mcp-0ne for?

Consolidating multiple MCP servers into a single connection for Claude. Managing MCP backends dynamically without restarting the gateway. Exposing local stdio-based MCP servers over an HTTP endpoint. Organizing tools from different sources using custom namespaces.

How do I install mcp-0ne?

Install mcp-0ne by running: pip install -e .

What MCP clients work with mcp-0ne?

mcp-0ne works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Conare · memory for coding agents

Turn this server into reusable context

Keep mcp-0ne docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Set up free$npx conare@latest