mcptool
by kspatel29
README.md
# mcptool
**Use 100+ MCP tools without blowing your context window.**
A drop-in MCP proxy that sits between your AI client (Claude Desktop, Cursor, VS Code) and multiple backend MCP servers. Instead of exposing all tool definitions (100+ tools, 50K+ tokens), MCPtool exposes just **2 meta-tools**:
- **`search_tools(query)`** — find relevant tools by keyword (BM25 search)
- **`call_tool(name, arguments)`** — invoke the tool on the correct backend server
## Why
| Without MCPtool | With MCPtool |
|---|---|
| 100+ tools in every request | 2 tools always |
| 50,000+ tokens per call | ~500 tokens per call |
| Context window blown | Context window intact |
## Install
```bash
npx mcptool --config mcptool.json
```
Or install globally:
```bash
npm install -g mcptool
mcptool --config mcptool.json
```
## Configuration
Create a `mcptool.json` file:
```json
{
"servers": [
{
"name": "github",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": { "GITHUB_TOKEN": "your-token-here" }
},
{
"name": "filesystem",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/docs"]
}
]
}
```
## Claude Desktop Setup
Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
```json
{
"mcpServers": {
"mcptool": {
"command": "npx",
"args": ["mcptool", "--config", "/path/to/mcptool.json"]
}
}
}
```
## How it works
1. **Startup**: MCPtool connects to all configured backend MCP servers and calls `tools/list` on each
2. **Indexing**: All tool names + descriptions are indexed with BM25 for keyword search
3. **Runtime**: Your AI client sees only `search_tools` and `call_tool`
4. **Discovery**: LLM calls `search_tools("create github issue")` → gets back relevant tools
5. **Execution**: LLM calls `call_tool("create_issue", {...})` → MCPtool routes to the right backend
## Development
```bash
git clone https://github.com/kspatel29/mcptool
cd mcptool
npm install
npm run build
npm test
```
## License
MIT