mcpwrapped MCP Server

A lightweight MCP proxy that allows users to filter MCP tools by whitelisting.

README.md

mcpwrapped

mcpwrapped is a lightweight MCP (Model Context Protocol) proxy that sits between an MCP client and server. It allows you to filter available tools, preventing context window clutter by only exposing the tools you explicitly want to use.

Features

  • Tool Filtering: Whitelist specific tools using the --visible_tools flag
  • Transparent Proxy: Forwards all other MCP protocol messages (resources, prompts, etc.) unchanged
  • Easy Integration: Works with any MCP client that supports command-based server configuration

Installation

npm install -g mcpwrapped

Usage

mcpwrapped wraps your existing MCP server command. You pass the filtering flags first, followed by the actual command to run the server.

Basic Syntax

mcpwrapped --visible_tools=tool1,tool2 <actual_command> [actual_args...]

Example: Claude Desktop Configuration

To use it with Claude Desktop, update your claude_desktop_config.json:

{
  "mcpServers": {
    "filesystem": {
      "command": "mcpwrapped",
      "args": [
        "--visible_tools=read_file",
        "npx",
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/username/Desktop"
      ]
    }
  }
}

In this example, only the read_file tool from the filesystem server would be visible to Claude, hiding write_file, list_directory, etc.

Configuration Flags

Flag Description Example
‑‑visible_tools Comma-separated list of tool names to expose ‑‑visible_tools=read,write

How It Works

┌─────────────┐         ┌──────────────┐         ┌─────────────┐
│ MCP Client  │ ◀──────▶│  mcpwrapped  │ ◀──────▶│ MCP Server  │
│ (Claude)    │         │  (Proxy)     │         │             │
│             │         │              │         │             │
└─────────────┘         └──────────────┘         └─────────────┘
                              │
                              └── Filters tool_list to only include
                                  tools specified in --visible_tools

mcpwrapped acts as a transparent proxy that:

  1. Spawns the actual MCP server with the provided command
  2. Intercepts messages from the server
  3. Filters the tools list in initialization messages to only include allowed tools
  4. Passes through all other messages unchanged (resources, prompts, tool calls, etc.)

License

MIT License - see LICENSE for details.

Try it

Use the filesystem server to read only the 'config.json' file, hiding all other directory tools.
Configure mcpwrapped to only expose the 'search' tool from my search server to keep my context clean.
Wrap my existing MCP server command with mcpwrapped to restrict available tools to a specific whitelist.

Frequently Asked Questions

What are the key features of mcpwrapped?

Whitelists specific tools using the --visible_tools flag. Acts as a transparent proxy for all other MCP protocol messages. Prevents context window clutter by limiting tool exposure. Works with any MCP client that supports command-based configuration.

What can I use mcpwrapped for?

Reducing token usage by hiding unnecessary tools from the LLM. Improving LLM performance by limiting the tool definition surface area. Securing sensitive environments by restricting access to specific server functions.

How do I install mcpwrapped?

Install mcpwrapped by running: npm install -g mcpwrapped

What MCP clients work with mcpwrapped?

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

Turn this server into reusable context

Keep mcpwrapped docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Open Conare