Skip to main content
Glama
veithly

mcp-server-wrapper

by veithly

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

Related MCP server: Fastn Server

Installation

npx mcp-server-wrapper

Via Claude Code

claude mcp add mcp-wrapper -- npx mcp-server-wrapper

Manual 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 identifier

  • name (required): Human-readable name

  • transport (required): stdio, sse, or http-stream

  • command: Command for stdio transport

  • args: Command arguments for stdio

  • url: URL for SSE/HTTP transport

  • env: Environment variables

  • headers: HTTP headers

  • enabled: Enable/disable server

  • persist: 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 remove

  • persist: 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 ID

  • tool (required): Tool name

  • arguments: Tool arguments

  • timeout: 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 dev

Requirements

  • Node.js >= 18

  • Claude Code or any MCP-compatible client

License

MIT

Author

Rick (veithly@live.com)

Available Tools

5 tools
mcp_add_serverA

Add a new MCP server configuration. Use this to register MCP servers that can then be invoked via mcp_invoke.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesUnique identifier for the server
cwdNoWorking directory (for stdio)
envNoEnvironment variables (for stdio)
urlNoURL (required for sse/http-stream)
argsNoCommand arguments (for stdio)
nameYesHuman-readable name
tagsNoTags for categorization
commandNoCommand to run (required for stdio)
enabledNoWhether server is enabled
headersNoHTTP headers (for sse/http-stream)
persistNoSave to config file
transportYesTransport type
descriptionNoDescription of the server

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It only states 'Add a new MCP server configuration' without disclosing important behaviors: whether it overwrites existing configurations, validates the configuration, or starts the server. This lack of transparency is a significant gap for a registration tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences that are front-loaded with the action. Every word is necessary, with no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 13 parameters, no output schema, and no annotations, the description is somewhat sparse. It explains the purpose but omits return values, error conditions, or lifecycle details. The schema is self-documenting for parameters, but the overall context is minimally adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description does not add meaning beyond the schema; it merely restates the tool's purpose. Thus, it meets the baseline but does not enhance parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Add a new MCP server configuration' with a specific verb and resource. It also distinguishes the tool from siblings by noting that registered servers can be invoked via mcp_invoke, contrasting with removal (mcp_remove_server) and listing (mcp_list_servers).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use the tool: 'Use this to register MCP servers that can then be invoked via mcp_invoke.' It provides clear context for usage, though it does not explicitly state when not to use it or mention alternatives like mcp_list_servers or mcp_remove_server.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mcp_invokeA

Invoke any tool from any registered MCP server. First use mcp_list_servers to see available servers and mcp_list_tools to see available tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
toolYesTool name to invoke
serverYesServer ID to use
timeoutNoTimeout in milliseconds
argumentsNoArguments to pass to the tool

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must cover behavioral traits. It only states 'invoke' without mentioning side effects, return values, error handling, or whether execution is synchronous. The timeout parameter hints at timing, but no explicit disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core action ('Invoke any tool'), followed by a prerequisite. No unnecessary words, efficiently structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a generic invoke tool without output schema, the description with schema coverage provides enough context to use it correctly. It omits behavioral details like error handling, but given the tool's nature, it is fairly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with each parameter described. The description adds workflow context ('first use mcp_list_servers') but does not add meaning beyond the schema's parameter descriptions, so it meets the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool invokes any tool from any registered MCP server, with a specific verb ('invoke') and resource ('any tool from any registered MCP server'). It distinguishes from sibling tools which focus on server management and listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly advises using mcp_list_servers and mcp_list_tools first, providing clear workflow context. It doesn't state when not to use, but for a generic invocation tool, this is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mcp_list_serversA

List all registered MCP servers and their connection status

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description fully discloses that this is a read-only listing operation. It mentions output includes connection status, which is sufficient for this straightforward tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the key action and resource. Every word is valuable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity (no parameters, no output schema, no annotations), the description fully covers what the tool does and what it returns. No gaps for an agent to interpret.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so baseline 4 applies. The description adds no param info, which is acceptable since none exist.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' and the resource 'registered MCP servers' with additional detail about 'connection status'. It distinctly separates from sibling tools like mcp_add_server, mcp_invoke, mcp_list_tools, and mcp_remove_server.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

While no explicit when-to-use-or-not is given, the tool's purpose is self-evident and unique among siblings. The context is clear for a simple list operation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mcp_list_toolsA

List available tools from MCP servers. If server is specified, connects to that server and lists its tools. Otherwise lists tools from all connected servers.

ParametersJSON Schema
NameRequiredDescriptionDefault
serverNoServer ID to list tools from
patternNoFilter tools by name pattern

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must convey behavioral traits. It mentions connection and listing but lacks details on side effects, permissions, error handling, or caching behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no wasted words, effectively communicating core functionality.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity and full schema coverage, the description is nearly complete. It could mention the return format (list of tools with names/descriptions) since no output schema is provided.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with both parameters described. The description adds no extra meaning beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists available tools from MCP servers and specifies conditional behavior based on the server parameter. It distinguishes from sibling tools like mcp_add_server, mcp_invoke, etc., which have different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by describing conditional behavior but does not explicitly state when to use versus alternatives, nor does it provide exclusions or guidance on when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mcp_remove_serverB

Remove an MCP server configuration

ParametersJSON Schema
NameRequiredDescriptionDefault
serverYesServer ID to remove
persistNoRemove from config file

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, and the description merely states 'Remove' without explaining effects, reversibility, permissions, or consequences. The agent gets no insight into behavioral traits beyond the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with zero extraneous words, front-loading the core action efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema or annotations, the description fails to explain return values, error handling, or what happens when the server ID does not exist. The tool performs a destructive action, yet behavioral context is lacking.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters have descriptions. The description does not add meaning beyond the schema, so baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Remove' and the resource 'MCP server configuration', clearly distinguishing it from sibling tools like mcp_add_server, mcp_invoke, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool instead of alternatives, nor any conditions or prerequisites for removal.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updatesv1.0.0
    • First observedmcp_add_server
    • First observedmcp_invoke
    • First observedmcp_list_servers
    • First observedmcp_list_tools
    • First observedmcp_remove_server

TDQS

A4/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a distinct purpose: adding, listing, invoking, and removing servers or tools. There is no ambiguity between them.

Naming Consistency5/5

All tools follow a consistent pattern: mcp_<verb>_<object> (e.g., mcp_add_server, mcp_invoke, mcp_list_servers). The naming is predictable and uniform.

Tool Count5/5

With 5 tools, the set is well-scoped for managing MCP server configurations and tool invocation. It is neither too sparse nor too heavy.

Completeness4/5

The tools cover the core lifecycle: add, list, invoke, and remove. However, there is no update or get detailed server info, which may be a minor gap for maintenance tasks.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    MCP server that builds itself by creating new tools as needed based on user requests (Requires restart of Claude Desktop to use newly created tools).
    4
    25
    -
  • A
    license
    Not graded
    quality
    F
    maintenance
    An MCP server that enables dynamic tool registration and execution based on API definitions, providing seamless integration with services like Claude.ai and Cursor.ai.
    23
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    A meta-server that allows Claude to install other MCP servers from npm or PyPi, enabling easy expansion of Claude's capabilities with external tools.
    2
    145
    1
    MIT
  • A
    license
    B
    quality
    A
    maintenance
    A meta-MCP server that manages and aggregates other MCP servers, enabling LLMs to dynamically extend their own capabilities by searching for, adding, and configuring tool servers.
    16
    142
    AGPL 3.0