Skip to main content
Glama
respawn-llc

Tool Filter MCP

by respawn-llc

tool-filter-mcp

npm version

MCP-Proxy-Server, der Tools von Upstream-MCP-Servern über eine Regex-basierte Sperrliste filtert.

Gewartet: ✅ Ja (Frühjahr/Sommer 26)

Warum sollte man dies verwenden?

Für effektives Kontext-Engineering möchten wir nutzlose Tokens minimieren. Die meisten großen Agenten derzeit (z. B. Claude Code) entfernen keine Tool-Beschreibungen aus dem Kontext. Obwohl das Tool vollständig verweigert und nicht verwendet wird, erhält das Modell dennoch die gesamte Beschreibung und versucht weiterhin, das Tool aufzurufen (und erhält Fehlermeldungen). Bei großen MCPs wie GitHub, Supabase, JetBrains IDE oder Atlassian ist dies katastrophal für den Kontext und führt zu einer Kontextverschmutzung durch 40-60k nutzlose Tokens. Wollten Sie, dass Ihr Agent Jira-Ticket-Beschreibungen sehen kann? Bitte nehmen Sie auch diese 44 nutzlosen Tools zum Bearbeiten von Bearbeitern auf Confluence-Seiten dazu.

Dieses MCP löst das Problem vollständig, ohne Overhead zu verursachen. Beiträge sind willkommen!

Related MCP server: mcp-tool-filter

Installation

# 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...]

Verwendung

Grundlegendes Beispiel (HTTP/SSE)

Filtern von Tools, die dem Muster .*_file$ entsprechen, von einem HTTP-MCP-Server:

npx @respawn-app/tool-filter-mcp \
  --upstream http://localhost:3000/sse \
  --deny ".*_file$"

Grundlegendes Beispiel (stdio)

Filtern von Tools von einem lokalen stdio-MCP-Server:

npx @respawn-app/tool-filter-mcp \
  --upstream-stdio \
  --deny "dangerous_.*" \
  -- npx my-mcp-server

Mit Umgebungsvariablen (stdio)

Übergeben von Umgebungsvariablen an den Upstream-stdio-Server:

npx @respawn-app/tool-filter-mcp \
  --upstream-stdio \
  --env "API_KEY=secret123" \
  --env "DEBUG=true" \
  --deny "admin_.*" \
  -- npx my-mcp-server

Mehrere Muster

Verwenden Sie durch Kommas getrennte Muster:

npx @respawn-app/tool-filter-mcp \
  --upstream http://localhost:3000/sse \
  --deny "get_file_text,create_new_file,replace_text"

Mit Authentifizierungs-Headern

Hinzufügen benutzerdefinierter Header für die Authentifizierung:

npx @respawn-app/tool-filter-mcp \
  --upstream http://localhost:3000/sse \
  --header "Authorization: Bearer your-token-here" \
  --header "X-API-Key: your-api-key"

Header unterstützen die Erweiterung von Umgebungsvariablen (falls noch nicht von Ihrer App erweitert):

npx @respawn-app/tool-filter-mcp \
  --upstream http://localhost:3000/sse \
  --header "Authorization: Bearer $AUTH_TOKEN"

Verfügbare Tools auflisten

Entdecken Sie, welche Tools verfügbar sind, bevor Sie Filter einrichten:

# 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

Mit Claude Code

HTTP/SSE Upstream-Server

Fügen Sie dies zu Ihrer .mcp.json hinzu:

{
  "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"
    }
  }
}

Mit Authentifizierungs-Headern (unterstützt die Erweiterung von Umgebungsvariablen):

{
  "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 Upstream-Server

{
  "mcpServers": {
    "filtered-zen": {
      "command": "npx",
      "args": [
        "@respawn-app/tool-filter-mcp",
        "--upstream-stdio",
        "--deny",
        "dangerous_.*,sensitive_.*",
        "--",
        "npx",
        "my-mcp-server"
      ],
      "type": "stdio"
    }
  }
}

Mit mehreren Argumenten für den Upstream-Server:

{
  "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"
    }
  }
}

Mit Argumenten, die mit Bindestrichen beginnen (wie 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"
    }
  }
}

Mit Umgebungsvariablen für den Upstream-stdio-Server:

{
  "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-Optionen

Tool-Liste

Drucken Sie die Liste der verfügbaren Tools, ohne einen Proxy-Server zu starten

  • --list-tools: Verfügbare Tools vom Upstream auflisten und beenden

  • --format <type>: Ausgabeformat für --list-tools (Standard: table)

    • table: Menschenlesbare Tabelle mit Beschreibungen (gekürzt auf 100 Zeichen)

    • json: Vollständige JSON-Ausgabe mit vollständigen Schemas

    • names: Durch Kommas getrennte Tool-Namen für einfaches Kopieren und Einfügen

Verbindungsmodus (schließen sich gegenseitig aus)

Um den Proxy-Server zu starten, müssen Sie genau eines der folgenden angeben:

  • --upstream <url>: Verbindung zum Upstream-HTTP/SSE-MCP-Server herstellen

  • --upstream-stdio: Upstream-stdio-MCP-Server starten und verbinden

    • Erfordert Befehl und Argumente nach dem ---Trennzeichen

    • Beispiel: --upstream-stdio -- npx zen-mcp-server

Allgemeine Optionen

  • --deny <patterns>: Durch Kommas getrennte Regex-Muster für zu filternde Tools

HTTP/SSE-Modus-Optionen

Nur anwendbar mit --upstream:

  • --header <name:value>: Benutzerdefinierter HTTP-Header, der an den Upstream-Server übergeben werden soll (kann für mehrere Header wiederholt werden)

    • Format: --header "Header-Name: value"

    • Unterstützt die Erweiterung von Umgebungsvariablen: $VAR oder ${VAR}

    • Beispiel: --header "Authorization: Bearer $TOKEN"

Stdio-Modus-Optionen

Nur anwendbar mit --upstream-stdio:

  • --env <KEY=value>: Umgebungsvariable, die an den Upstream-stdio-Server übergeben werden soll (kann für mehrere Variablen wiederholt werden)

    • Format: --env "KEY=value"

    • Beispiel: --env "API_KEY=secret" --env "DEBUG=true"

  • Geben Sie nach dem ---Trennzeichen den Befehl und alle seine Argumente an

    • Alles nach -- wird an den Upstream-Server weitergeleitet

    • Unterstützt Argumente, die mit Bindestrichen beginnen (wie --from, --config usw.)

    • Beispiel: --upstream-stdio -- uvx --from git+https://... package-name

Anforderungen

  • Node.js >= 20.0.0

  • Upstream-MCP-Server mit:

    • SSE oder Streamable HTTP-Transport (für --upstream), ODER

    • stdio-Transport (für --upstream-stdio)

Lizenz

MIT

Copyright (c) 2026 Respawn LLC

Related MCP Connectors

Related MCP Servers