shutup-mcp
Aggregates and filters tools from an upstream GitHub MCP server, routing tool calls to it so clients can work with GitHub issues and other repositories via intent-based tool selection (e.g. intent "work with GitHub issues").
Uses a locally running Ollama instance as an embedding backend to build the hybrid retrieval index over tool names and descriptions, which powers the top-k tool filtering.
Click on "Deploy 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., "@shutup-mcpset my intent to read and write local files, keep top 5 tools"
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.
shutup-mcp
Experimental MCP tool-list filtering proxy for large tool catalogs.
Scope
This is an independent, general-purpose MCP experiment hosted in the HJS organization. It does not create or validate JEP events, TSTO objects, signatures or the JEP/TSTO binding. It is not a dependency or optional conformance requirement of that protocol path. For protocol work use the JEP/TSTO integration directory.
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.
Related MCP server: MCPico
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/listresults using:explicit CLI intent;
a runtime
shutup__set_intenttool;fallback behavior when no intent is known.
Routes
tools/callto 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-mcpFor 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 5This 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 5If --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_intentCalling 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 |
| Local model such as | Local after download | Downloads model on first use |
| Ollama embedding model | Local | Requires Ollama running |
| 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 |
| Path to Claude Desktop MCP config | required |
| Current user task intent | none |
| Number of tools to expose | 5 |
|
|
|
| Run as an MCP stdio proxy | false |
Runtime Intent Tool
The proxy exposes a control tool:
shutup__set_intentInput:
{
"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 -qTests 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
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for progressive tool usage at any scale (see https://klavis.ai)
AI Reasoning Cache & Consensus Layer with 11 MCP tools via Streamable HTTP.
Remote MCP server exposing SMI Aware tools, resources, and skills over Streamable HTTP.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnterprise-grade dynamic MCP proxy that eliminates token bloat by lazy-loading tool schemas based on semantic intent, enabling efficient orchestration of multiple backend tools from a single endpoint.MIT
- FlicenseNot gradedqualityCmaintenanceMCP proxy that bundles flat tool lists into hierarchical subcommand groups to reduce context token usage, supporting multi-server aggregation and auto-generated help from tool schemas.-
- AlicenseAqualityDmaintenanceAggregates tools from multiple MCP servers, acting as a proxy to provide unified access to various AI agents and tools.1015 npm3MIT
- AlicenseNot gradedqualityDmaintenanceActs as a proxy/router for multiple downstream MCP servers, exposing only meta-tools to the host to reduce token usage, enabling efficient search and invocation of tools from a fleet of servers.8 npmMIT