Tool Filter MCP
tool-filter-mcp
MCP-прокси-сервер, который фильтрует инструменты от вышестоящих MCP-серверов с помощью списка запрещенных регулярных выражений.
Поддерживается: ✅ Да (весна/лето 26)
Зачем это нужно?
Для эффективного проектирования контекста мы хотим минимизировать бесполезные токены. Большинство современных крупных агентов (например, Claude Code) НЕ удаляют описания инструментов из контекста. Даже если инструмент полностью запрещен и не используется, модель все равно получит его полное описание и все равно попытается вызвать этот инструмент (и получит сообщения об ошибках). Для больших MCP, таких как github, supabase, jetbrains IDE, atlassian, это катастрофично для контекста и приводит к его загрязнению на 40-60 тысяч бесполезных токенов. Вы хотели, чтобы ваш агент мог видеть описания тикетов jira? Пожалуйста, получите также эти 44 бесполезных инструмента для редактирования исполнителей на страницах confluence.
Этот MCP полностью решает проблему без каких-либо накладных расходов. Вклад сообщества приветствуется!
Related MCP server: mcp-tool-filter
Установка
# For HTTP/SSE MCP servers
npx @respawn-app/tool-filter-mcp --upstream <url> --deny <patterns>
# For stdio MCP servers
npx @respawn-app/tool-filter-mcp --upstream-stdio --deny <patterns> -- <command> [args...]Использование
Базовый пример (HTTP/SSE)
Фильтрация инструментов, соответствующих шаблону .*_file$ от HTTP MCP-сервера:
npx @respawn-app/tool-filter-mcp \
--upstream http://localhost:3000/sse \
--deny ".*_file$"Базовый пример (stdio)
Фильтрация инструментов от локального stdio MCP-сервера:
npx @respawn-app/tool-filter-mcp \
--upstream-stdio \
--deny "dangerous_.*" \
-- npx my-mcp-serverС переменными окружения (stdio)
Передача переменных окружения вышестоящему stdio-серверу:
npx @respawn-app/tool-filter-mcp \
--upstream-stdio \
--env "API_KEY=secret123" \
--env "DEBUG=true" \
--deny "admin_.*" \
-- npx my-mcp-serverНесколько шаблонов
Используйте шаблоны, разделенные запятыми:
npx @respawn-app/tool-filter-mcp \
--upstream http://localhost:3000/sse \
--deny "get_file_text,create_new_file,replace_text"С заголовками аутентификации
Добавление пользовательских заголовков для аутентификации:
npx @respawn-app/tool-filter-mcp \
--upstream http://localhost:3000/sse \
--header "Authorization: Bearer your-token-here" \
--header "X-API-Key: your-api-key"Заголовки поддерживают раскрытие переменных окружения (если они еще не были раскрыты вашим приложением):
npx @respawn-app/tool-filter-mcp \
--upstream http://localhost:3000/sse \
--header "Authorization: Bearer $AUTH_TOKEN"Список доступных инструментов
Узнайте, какие инструменты доступны, перед настройкой фильтров:
# Default table format
npx @respawn-app/tool-filter-mcp \
--upstream http://localhost:3000/sse \
--list-tools
# Get comma-separated names for copy-paste
npx @respawn-app/tool-filter-mcp \
--upstream http://localhost:3000/sse \
--list-tools --format=names
# Get full JSON with schemas
npx @respawn-app/tool-filter-mcp \
--upstream http://localhost:3000/sse \
--list-tools --format=json
# Preview filtered results
npx @respawn-app/tool-filter-mcp \
--upstream http://localhost:3000/sse \
--deny ".*_file$" \
--list-tools --format=namesС Claude Code
Вышестоящий HTTP/SSE сервер
Добавьте в ваш .mcp.json:
{
"mcpServers": {
"filtered-http-server": {
"command": "npx",
"args": [
"@respawn-app/tool-filter-mcp",
"--upstream",
"http://localhost:3000/sse",
"--deny",
"dangerous_tool_1,dangerous_tool_2"
],
"type": "stdio"
}
}
}С заголовками аутентификации (поддерживается раскрытие переменных окружения):
{
"mcpServers": {
"filtered-http-server": {
"command": "npx",
"args": [
"@respawn-app/tool-filter-mcp",
"--upstream",
"http://localhost:3000/sse",
"--header",
"Authorization: Bearer ${API_TOKEN}",
"--header",
"X-Custom-Header: $CUSTOM_VALUE",
"--deny",
"sensitive_.*"
],
"type": "stdio"
}
}
}Вышестоящий Stdio сервер
{
"mcpServers": {
"filtered-zen": {
"command": "npx",
"args": [
"@respawn-app/tool-filter-mcp",
"--upstream-stdio",
"--deny",
"dangerous_.*,sensitive_.*",
"--",
"npx",
"my-mcp-server"
],
"type": "stdio"
}
}
}С несколькими аргументами для вышестоящего сервера:
{
"mcpServers": {
"filtered-stdio-server": {
"command": "npx",
"args": [
"@respawn-app/tool-filter-mcp",
"--upstream-stdio",
"--deny",
"admin_.*",
"--",
"node",
"my-mcp-server.js",
"--config=config.json",
"--verbose"
],
"type": "stdio"
}
}
}С аргументами, начинающимися с тире (например, uvx):
{
"mcpServers": {
"filtered-uvx-server": {
"command": "npx",
"args": [
"@respawn-app/tool-filter-mcp",
"--upstream-stdio",
"--deny",
"test_.*",
"--",
"uvx",
"--from",
"git+https://github.com/BeehiveInnovations/zen-mcp-server.git",
"zen-mcp-server"
],
"type": "stdio"
}
}
}С переменными окружения для вышестоящего stdio-сервера:
{
"mcpServers": {
"filtered-server-with-env": {
"command": "npx",
"args": [
"@respawn-app/tool-filter-mcp",
"--upstream-stdio",
"--env",
"API_KEY=${MY_API_KEY}",
"--env",
"DEBUG=true",
"--deny",
"admin_.*",
"--",
"npx",
"my-mcp-server"
],
"type": "stdio"
}
}
}Параметры CLI
Список инструментов
Вывод списка доступных инструментов без запуска прокси-сервера
--list-tools: Вывести список доступных инструментов от вышестоящего сервера и завершить работу--format <type>: Формат вывода для--list-tools(по умолчанию:table)table: Читабельная таблица с описаниями (обрезаны до 100 символов)json: Полный вывод в формате JSON с полными схемамиnames: Имена инструментов, разделенные запятыми, для удобного копирования
Режим подключения (взаимоисключающие)
Чтобы запустить прокси-сервер, необходимо указать ровно один из следующих параметров:
--upstream <url>: Подключение к вышестоящему HTTP/SSE MCP-серверу--upstream-stdio: Запуск и подключение к вышестоящему stdio MCP-серверуТребует команду и аргументы после разделителя
--Пример:
--upstream-stdio -- npx zen-mcp-server
Общие параметры
--deny <patterns>: Разделенные запятыми регулярные выражения для фильтрации инструментов
Параметры режима HTTP/SSE
Применимы только при использовании --upstream:
--header <name:value>: Пользовательский HTTP-заголовок для передачи вышестоящему серверу (можно повторять для нескольких заголовков)Формат:
--header "Header-Name: value"Поддерживает раскрытие переменных окружения:
$VARили${VAR}Пример:
--header "Authorization: Bearer $TOKEN"
Параметры режима Stdio
Применимы только при использовании --upstream-stdio:
--env <KEY=value>: Переменная окружения для передачи вышестоящему stdio-серверу (можно повторять для нескольких переменных)Формат:
--env "KEY=value"Пример:
--env "API_KEY=secret" --env "DEBUG=true"
После разделителя
--укажите команду и все ее аргументыВсе, что идет после
--, передается вышестоящему серверуПоддерживаются аргументы, начинающиеся с тире (например,
--from,--configи т.д.)Пример:
--upstream-stdio -- uvx --from git+https://... package-name
Требования
Node.js >= 20.0.0
Вышестоящий MCP-сервер с:
Транспортом SSE или Streamable HTTP (для
--upstream), ИЛИТранспортом stdio (для
--upstream-stdio)
Лицензия
MIT
Copyright (c) 2026 Respawn LLC
This server cannot be deployed
Maintenance
Related MCP Connectors
Security & DLP proxy for MCP: tool-poisoning scans, PII redaction on tool args/results. Beta.
Find, vet, and run MCP tools through a secure audited gateway with prompt-injection risk scoring
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
MCP enforcement layer that intercepts AI agent actions and blocks rule violations before execution.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA 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.MIT
- AlicenseNot gradedqualityDmaintenanceA generic MCP proxy that filters which tools are exposed from a remote MCP server, reducing context window token usage by only loading the tools you actually need.7 npm1MIT
- AlicenseNot gradedqualityCmaintenanceReduces AI token consumption by optimizing MCP tool definitions and responses, with a probe for measurement and a gate for filtered tool exposure and cost reduction.MIT
- AlicenseNot gradedqualityBmaintenanceReduces token costs from MCP tool schemas by analyzing bloat, compressing descriptions, and selecting only relevant tools for AI agents.MIT