mcp-server-wrapper
v1.0.0
Published
Meta-MCP server that dynamically invokes any MCP server without restarting Claude Code
Maintainers
Readme
MCP Server Wrapper
A meta-MCP server that dynamically invokes any MCP server without restarting Claude Code. Add, remove, and invoke MCP servers on-the-fly.
Features
- Dynamic Server Management: Add/remove MCP servers at runtime
- Multiple Transports: Support for stdio, SSE, and HTTP streaming
- Persistent Configuration: Server configs saved to disk
- Connection Pooling: Efficient connection reuse
- Zero Restart: No need to restart Claude Code when adding new MCPs
Installation
Via npm (recommended)
npx mcp-server-wrapperVia Claude Code
claude mcp add mcp-wrapper -- npx mcp-server-wrapperManual Configuration
Add to your Claude Code configuration (~/.claude.json):
{
"mcpServers": {
"mcp-wrapper": {
"command": "npx",
"args": ["mcp-server-wrapper"]
}
}
}Tools
mcp_list_servers
List all registered MCP servers and their connection status.
mcp_add_server
Add a new MCP server configuration.
Parameters:
id(required): Unique identifiername(required): Human-readable nametransport(required):stdio,sse, orhttp-streamcommand: Command for stdio transportargs: Command arguments for stdiourl: URL for SSE/HTTP transportenv: Environment variablesheaders: HTTP headersenabled: Enable/disable serverpersist: Save to config file (default: true)
Example - stdio:
{
"id": "context7",
"name": "Context7",
"transport": "stdio",
"command": "npx",
"args": ["-y", "@upstash/context7-mcp@latest"]
}Example - HTTP stream:
{
"id": "deepwiki",
"name": "Deepwiki",
"transport": "http-stream",
"url": "https://mcp.deepwiki.com/mcp"
}mcp_remove_server
Remove an MCP server configuration.
Parameters:
server(required): Server ID to removepersist: Remove from config file (default: true)
mcp_list_tools
List available tools from an MCP server.
Parameters:
server: Server ID (lists all if not specified)pattern: Filter tools by name pattern
mcp_invoke
Invoke any tool from any registered MCP server.
Parameters:
server(required): Server IDtool(required): Tool namearguments: Tool argumentstimeout: Timeout in milliseconds
Usage Examples
Add and use Context7
1. mcp_add_server: id=context7, transport=stdio, command=npx, args=["-y", "@upstash/context7-mcp@latest"]
2. mcp_list_tools: server=context7
3. mcp_invoke: server=context7, tool=resolve-library-id, arguments={libraryName: "react"}Add and use Deepwiki
1. mcp_add_server: id=deepwiki, transport=http-stream, url=https://mcp.deepwiki.com/mcp
2. mcp_invoke: server=deepwiki, tool=ask_question, arguments={repoName: "facebook/react", question: "What is useEffect?"}Supported Transports
| Transport | Description | Use Case |
|-----------|-------------|----------|
| stdio | Standard I/O | Local MCP servers (npx, uvx) |
| sse | Server-Sent Events | Legacy remote servers |
| http-stream | HTTP Streaming | Modern remote servers |
Configuration File
Server configurations are persisted to:
- Windows:
%USERPROFILE%\Documents\Project\MCP\mcp-wrapper\config\servers.json - macOS/Linux:
~/Documents/Project/MCP/mcp-wrapper/config/servers.json
Development
# Clone repository
git clone https://github.com/veithly/mcp-server-wrapper.git
cd mcp-server-wrapper
# Install dependencies
pnpm install
# Build
pnpm run build
# Development mode
pnpm run devRequirements
- Node.js >= 18
- Claude Code or any MCP-compatible client
License
MIT
Author
Rick ([email protected])
