Skip to main content
Glama
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