mcp-tool-filter
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-tool-filteronly allow get_issue and update_issue from Linear server"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-tool-filter
A generic MCP proxy that filters which tools are exposed from a remote MCP server. Reduces context window token usage by only loading the tools you actually need.
The Problem
Remote MCP servers (Linear, GitHub, Notion, etc.) expose all their tools to your AI coding assistant. A single server can blast 20,000+ tokens of tool definitions into your context window — even if you only use 5 of them. That's 10% of your context gone before you type a single message.
Related MCP server: Lightweight GitHub MCP
The Solution
mcp-tool-filter sits between your AI client and the remote MCP server as a lightweight stdio proxy. It fetches all tools from upstream but only exposes the ones you whitelist. Everything else is filtered out, saving thousands of tokens per conversation.
┌─────────────┐ stdio ┌──────────────────┐ HTTP ┌──────────────┐
│ Claude Code │ ◄────────────► │ mcp-tool-filter │ ◄──────────► │ Remote MCP │
│ (6 tools) │ │ (filters tools) │ │ (29 tools) │
└─────────────┘ └──────────────────┘ └──────────────┘Quick Start
Interactive Setup (Recommended)
npx mcp-tool-filter addThis walks you through:
Enter the upstream MCP server URL
Confirm the server name
Authenticate (if needed — opens browser automatically)
Select which tools to expose from the full list
Choose where to save the config
Manual Setup
Add to your .mcp.json:
{
"mcpServers": {
"linear": {
"command": "npx",
"args": [
"-y", "mcp-tool-filter",
"--url", "https://mcp.linear.app/mcp",
"--tools", "get_issue", "update_issue", "create_issue"
]
}
}
}Or with the Claude Code CLI:
claude mcp add linear -- npx -y mcp-tool-filter \
--url https://mcp.linear.app/mcp \
--tools get_issue update_issue create_issueUsage
mcp-tool-filter --url <upstream-mcp-url> [--name <server-name>] [--tools <tool1> <tool2> ...]Options
Flag | Required | Description |
| Yes | The upstream MCP server URL |
| No | Space-separated list of tool names to expose. If omitted, all tools are passed through |
| No | Server name for token storage. Auto-derived from URL if not provided |
Updating Tool Selection
Need to add or remove tools from an existing server? Run update with the server name from your .mcp.json:
npx mcp-tool-filter update linearThis will:
Read the existing config from your
.mcp.jsonConnect to the upstream server
Show all available tools with your current selection pre-checked
Update the config with your new selection
Pass-through Mode
Omit --tools to proxy all tools without filtering (useful if you only need the OAuth/auth handling):
{
"mcpServers": {
"linear": {
"command": "npx",
"args": ["-y", "mcp-tool-filter", "--url", "https://mcp.linear.app/mcp"]
}
}
}Authentication
mcp-tool-filter handles OAuth automatically:
First run: The upstream server returns 401, the proxy opens your browser for OAuth login, waits for the callback, and saves the tokens
Subsequent runs: Stored tokens are reused automatically — no browser needed
Tokens are persisted in ~/.mcp-tool-filter/<server-name>.json.
To re-authenticate, delete the token file:
rm ~/.mcp-tool-filter/linear.jsonServers Without OAuth
If the upstream server doesn't require authentication, the proxy connects directly — no OAuth flow needed.
Examples
Linear (6 tools instead of 29)
{
"mcpServers": {
"linear": {
"command": "npx",
"args": [
"-y", "mcp-tool-filter",
"--url", "https://mcp.linear.app/mcp",
"--tools", "get_issue", "update_issue", "create_issue",
"list_issues", "list_issue_labels", "get_project"
]
}
}
}Multiple Filtered Servers
{
"mcpServers": {
"linear": {
"command": "npx",
"args": [
"-y", "mcp-tool-filter",
"--url", "https://mcp.linear.app/mcp",
"--tools", "get_issue", "update_issue"
]
},
"another-server": {
"command": "npx",
"args": [
"-y", "mcp-tool-filter",
"--url", "https://another-mcp-server.com/mcp",
"--tools", "read_document", "search"
]
}
}
}How It Works
Starts as a stdio MCP server (what your AI client connects to)
Connects to the upstream server via Streamable HTTP (with SSE fallback)
On
tools/list— fetches all tools from upstream, returns only the allowed onesOn
tools/call— forwards the call to upstream, returns the response unchangedHandles OAuth automatically with token persistence
Transport Support
Transport | Status |
Streamable HTTP | Supported (preferred) |
Server-Sent Events (SSE) | Supported (fallback) |
stdio upstream | Not supported (use for local servers directly) |
Compatibility
Works with any MCP client that supports stdio servers:
Claude Code
Claude Desktop
Cursor
Windsurf
Any MCP-compatible client
Development
git clone https://github.com/kais-radwan/mcp-tool-filter.git
cd mcp-tool-filter
npm install
npm run buildTest locally:
{
"mcpServers": {
"linear": {
"command": "node",
"args": [
"/path/to/mcp-tool-filter/dist/index.js",
"--url", "https://mcp.linear.app/mcp",
"--tools", "get_issue"
]
}
}
}License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityDmaintenanceActs as a proxy for multiple MCP servers, reducing context window usage from 15,000+ tokens to ~500 tokens by dynamically loading servers on-demand and exposing only 3 tools instead of all tool definitions.Last updated5GPL 3.0
- Alicense-qualityDmaintenanceA configurable proxy that filters GitHub MCP server tools via YAML whitelist, reducing context consumption from 100+ tools to only the ones you need while providing meta-tools to discover available functionality.Last updatedMIT
- Alicense-qualityDmaintenanceA lightweight proxy that allows users to filter MCP tools by whitelisting specific ones, preventing context window clutter. It sits between an MCP client and server to control tool visibility while transparently forwarding other protocol messages.Last updated385MIT
- Alicense-qualityAmaintenanceA proxy server that wraps existing MCP servers to significantly reduce token consumption by compressing tool descriptions into a two-step interface. It enables users to integrate extensive toolsets without exceeding context limits or incurring high API costs.Last updated104Apache 2.0
Related MCP Connectors
Hosted MCP endpoint with realistic fake data for prototyping agents. 12 tools, no setup.
MCP server exposing the Backtest360 engine API as tools for AI agents.
Markdown-first MCP server for Notion API with 8 composite tools and 39 actions.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/kais-radwan/mcp-tool-filter'
If you have feedback or need assistance with the MCP directory API, please join our Discord server