EE

eastlondoner/emceepee

Developer tools

Эта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал

21 stars 4 forks Качество 70 Тренд 10MIT

MCP server to dynamically connect to other MCP servers & exposes the entire MCP protocol via tool calls.

Обзор

Most MCP clients only connect to servers at startup. Want to connect to a new server mid-session? Restart everything. MCP has rich features—resources, prompts, notifications, sampling, elicitations—but many clients only implement tools. Those features? Inaccessible. It's a proxy that exposes the entire MCP protocol as tools. Any client that supports tool calling can now: - Connect to new MCP servers dynamically (HTTP or stdio) - Spawn and manage MCP server processes with automatic crash recovery - Access resources and resource templates - Use prompts - Receive notifications and logs (with source filtering) - Handle sampling requests (bidirectional LLM calls) - Handle elicitations (user input requests) "Connect to http://localhost:3001/mcp and show me what it can do" The LLM will use emceepee's tools to connect, explore, and interact with the server. emceepee exposes a that never change.

README

Показан фрагмент оригинального README. Открыть оригинал.

emceepee

Connect to any MCP server, anytime. Access the full MCP protocol through tools.

npx emceepee

Why?

Problem 1: Static connections. Most MCP clients only connect to servers at startup. Want to connect to a new server mid-session? Restart everything.

Problem 2: Incomplete protocol support. MCP has rich features—resources, prompts, notifications, sampling, elicitations—but many clients only implement tools. Those features? Inaccessible.

emceepee solves both. It’s a proxy that exposes the entire MCP protocol as tools. Any client that supports tool calling can now:

  • Connect to new MCP servers dynamically (HTTP or stdio)
  • Spawn and manage MCP server processes with automatic crash recovery
  • Access resources and resource templates
  • Use prompts
  • Receive notifications and logs (with source filtering)
  • Handle sampling requests (bidirectional LLM calls)
  • Handle elicitations (user input requests)

Quick Start

1. Add to your MCP client

Claude Code / Claude Desktop (.mcp.json):

{
  "mcpServers": {
    "emceepee": {
      "command": "npx",
      "args": ["emceepee"]
    }
  }
}

Other clients — point to the HTTP server:

npx emceepee-http  # runs on http://localhost:8080/mcp

2. Connect to servers mid-session

Ask your LLM:

“Connect to http://localhost:3001/mcp and show me what it can do”

The LLM will use emceepee’s tools to connect, explore, and interact with the server.


How It Works

┌────────────┐     ┌───────────┐     ┌──────────────┐
│ MCP Client │────▶│ emceepee  │────▶│ MCP Server 1 │
│            │     │           │     └──────────────┘
│ (tools     │◀────│  (proxy)  │────▶┌──────────────┐
│   only)    │     │           │     │ MCP Server 2 │
└────────────┘     └───────────┘     └──────────────┘

emceepee exposes a static set of tools that never change. These tools provide access to the full MCP protocol, letting any tool-capable client use features it doesn’t natively support.

Server Transports

emceepee supports two transport types for connecting to backend MCP servers:

HTTP/SSE Transport

Connect to remote MCP servers over HTTP with Server-Sent Events:

add_server(name: "myserver", url: "http://localhost:3001/mcp")

Stdio Transport (Process Management)

Spawn and manage MCP servers as child processes communicating via stdin/stdout:

add_server(name: "myserver", command: "node", args: ["server.js"])

Stdio features:

  • Automatic crash recovery with exponential backoff restart
  • Stderr capture for debugging (exposed via get_logs with source: "stderr")
  • Lifecycle events for monitoring process state
  • Configurable restart behavior (max attempts, delays, backoff multiplier)
Открыть полный README на GitHub

Установка

npx emceepee
Новичок в MCP? Начните с руководства на mcpskill.org →

Конфигурация

{ "mcpServers": { "emceepee": { "command": "npx", "args": ["emceepee"] } } }