Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

shutup-mcp

Experimental MCP tool-list filtering proxy for large tool catalogs.

shutup-mcp sits between an MCP client and one or more MCP servers. It aggregates tool definitions and exposes only the top-k tools that match the current intent.

This repository is an alpha implementation seed. It is useful for experimenting with tool-list compression, but it is not yet a full production MCP gateway.


What It Does

  • Reads a Claude Desktop-style MCP config.
  • Discovers configured MCP servers.
  • Fetches and prefixes upstream tools.
  • Builds a hybrid retrieval index over tool names and descriptions.
  • Filters tools/list results using:
    • explicit CLI intent;
    • a runtime shutup__set_intent tool;
    • fallback behavior when no intent is known.
  • Routes tools/call to the correct upstream server.
  • Supports local embedding backends:
    • sentence-transformers;
    • ollama.

What It Does Not Yet Do

This alpha does not yet provide:

  • full MCP request proxying for every capability;
  • persistent upstream sessions for every server;
  • guaranteed client-side dynamic intent detection across all MCP clients;
  • production authentication or sandboxing;
  • benchmark-backed token or latency claims.

Earlier README versions included strong reduction metrics. Those are removed until reproducible benchmarks are added.


Install

pip install shutup-mcp

For local development:

pip install -e ".[dev]"

CLI Usage

One-shot tool filtering

shutup \
  --config ~/Library/Application\ Support/Claude/claude_desktop_config.json \
  --intent "read and write local files" \
  --top-k 5

This prints a JSON array of filtered tool definitions.

Run as MCP proxy

shutup \
  --config ~/Library/Application\ Support/Claude/claude_desktop_config.json \
  --intent "work with GitHub issues" \
  --serve \
  --top-k 5

If --intent is supplied, tools/list returns only top-k tools matching that intent.

If no intent is supplied, the proxy exposes a small control tool:

shutup__set_intent

Calling this tool updates the current intent, after which tools/list can be filtered.


Claude Desktop Configuration

Example:

{
  "mcpServers": {
    "shutup": {
      "command": "shutup",
      "args": [
        "--config",
        "/absolute/path/to/claude_desktop_config.json",
        "--serve",
        "--intent",
        "work with GitHub issues",
        "--top-k",
        "5"
      ]
    }
  }
}

Example MCP Server Config

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"]
    },
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"]
    }
  }
}

Embedder Options

Backend Description Privacy Setup
sentence-transformers Local model such as all-MiniLM-L6-v2 Local after download Downloads model on first use
ollama Ollama embedding model Local Requires Ollama running
fake Deterministic lightweight test embedder Local For tests and CI only

Command Options

shutup --config PATH [--intent TEXT] [--top-k K] [--embedder BACKEND] [--serve]
Option Description Default
--config Path to Claude Desktop MCP config required
--intent Current user task intent none
--top-k Number of tools to expose 5
--embedder sentence-transformers, ollama, or fake sentence-transformers
--serve Run as an MCP stdio proxy false

Runtime Intent Tool

The proxy exposes a control tool:

shutup__set_intent

Input:

{
  "intent": "create and triage GitHub issues"
}

Output:

{
  "ok": true,
  "intent": "create and triage GitHub issues"
}

This provides an explicit client-controlled intent update path.


Testing

pip install -e ".[dev]"
pytest -q

Tests use the lightweight fake embedder and do not download embedding models.


Security Notes

shutup-mcp reads and launches MCP servers from a config file. Treat that config file as executable configuration.

Do not use untrusted server configs.

This project filters tool visibility; it does not enforce policy, authorization, sandboxing, or data-loss prevention.


License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

shutup_mcp-0.3.0a1.tar.gz (14.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

shutup_mcp-0.3.0a1-py3-none-any.whl (13.2 kB view details)

Uploaded Python 3

File details

Details for the file shutup_mcp-0.3.0a1.tar.gz.

File metadata

  • Download URL: shutup_mcp-0.3.0a1.tar.gz
  • Upload date:
  • Size: 14.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for shutup_mcp-0.3.0a1.tar.gz
Algorithm Hash digest
SHA256 5e836e4b58ec3f15f0cbe73ee927ab0ca92d7d0e19c8700430d6599e210b7ee4
MD5 035b7d8d03409809e2f8839efc160e10
BLAKE2b-256 13bee48b02bac578c49e2580b381e8e44218c5e3e1e7add9cdf26e5042577516

See more details on using hashes here.

Provenance

The following attestation bundles were made for shutup_mcp-0.3.0a1.tar.gz:

Publisher: release.yml on hjs-spec/shutup-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file shutup_mcp-0.3.0a1-py3-none-any.whl.

File metadata

  • Download URL: shutup_mcp-0.3.0a1-py3-none-any.whl
  • Upload date:
  • Size: 13.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for shutup_mcp-0.3.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 25e13f55b699ede08a702cc88d0c9cef5a03a0b88edf0067a8ee3754835f968e
MD5 b3e7e9d095889579c94a96df115733fc
BLAKE2b-256 0660e50ad330d294e2c9999d181ee93b6e2c6b2c93f7b3363cfaaeee61fb10e3

See more details on using hashes here.

Provenance

The following attestation bundles were made for shutup_mcp-0.3.0a1-py3-none-any.whl:

Publisher: release.yml on hjs-spec/shutup-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.3.0a1 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page