MCP Vector Proxy MCP Server

Local setup required. This server has to be cloned and prepared on your machine before you register it in Claude Code.
1

Set the server up locally

Run this once to clone and prepare the server before adding it to Claude Code.

Run in terminal
npm install
npm run build
2

Register it in Claude Code

After the local setup is done, run this command to point Claude Code at the built server.

Run in terminal
claude mcp add -e "MCPR_TOKEN=${MCPR_TOKEN}" mcp-vector-proxy -- node "<FULL_PATH_TO_SIMPLE_MCP_PROXY>/dist/index.js"

Replace <FULL_PATH_TO_SIMPLE_MCP_PROXY>/dist/index.js with the actual folder you prepared in step 1.

Required:MCPR_TOKEN+ 4 optional
README.md

A semantic MCP proxy that reduces AI agent token usage by exposing 4 tools.

MCP Vector Proxy

A semantic MCP proxy that sits between AI agents and MCP Router, exposing only 4 tools instead of hundreds. Uses local vector embeddings to find the right tool on demand — no OpenAI key required.

Why

When you have 150+ MCP tools, passing all of them to an AI agent costs ~30,000 tokens per request. This proxy exposes just 4 tools (discover_tools, execute_tool, batch_execute, refresh_tools). The agent searches semantically for what it needs, then calls it — reducing token usage by ~93%.

Without proxy:  151 tools × ~200 tokens = 30,860 tokens per request
With proxy:     4 tool definitions + search results = ~500 tokens

Architecture

MCP Router (all your servers)
        │ stdio
        ▼
mcp-vector-proxy  (tray-managed background process, port 3456)
  - Local embeddings: EmbeddingGemma-300M q8 (~150MB, runs offline)
  - LanceDB vector store (persistent, handles 1M+ tools, no server)
  - Hybrid search: dense vector + BM25 keyword + RRF fusion
  - Auto-syncs when tools change (MCP notifications + polling)
  - HTTP: Streamable HTTP + SSE legacy
        │
        ├── Claude Code / other agents  (HTTP → :3456/mcp)
        │
        └── Claude Desktop              (stdio-bridge → HTTP)

System tray  (node dist/tray.js, auto-starts on login)
  - Green  = connected, N tools indexed
  - Yellow = MCP Router reconnecting
  - Red    = proxy down / crashed (auto-restarts)
  - Right-click → Restart Proxy / Open Health URL / Exit

Requirements

  • All platforms: Node.js 18+, MCP Router installed and running
  • Windows: Windows 10/11
  • macOS: macOS 10.15+
  • Linux: Any desktop with a system tray (GNOME, KDE, etc.)

First run: EmbeddingGemma-300M (~150MB) downloads automatically on first startup and is cached to .model-cache/. Subsequent starts are instant.

Setup

1. Configure your token

cp .env.example .env
# Edit .env and replace "your-mcp-router-token-here" with your real MCPR_TOKEN

The .env file is gitignored. Alternatively, set MCPR_TOKEN as a system environment variable — it takes precedence over the .env file.

2. Install dependencies and build

npm install
npm run build

3. Register auto-start and launch the tray

Windows:

npm run setup
# or: powershell -ExecutionPolicy Bypass -File setup.ps1

macOS / Linux:

npm run setup
# or: bash setup.sh

This registers the tray to start on every login and launches it immediately.

4. Connect your AI clients

Claude Code (~/.claude.json):

{
  "mcpServers": {
    "mcp-vector-proxy": {
      "type": "http",
      "url": "http://127.0.0.1:3456/mcp"
    }
  }
}

Claude Desktop (%APPDATA%\Claude\claude_desktop_config.json on Windows, ~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "mcp-vector-proxy": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-proxy/dist/stdio-bridge.js"],
      "env": { "PROXY_URL": "http://127.0.0.1:3456/mcp" }
    }
  }
}

Any other agent — point it at http://127.0.0.1:3456/mcp (Streamable HTTP) or http://127.0.0.1:3456/sse (SSE legacy).

Environment Variables

Variable Default Description
MCPR_TOKEN (from .env) MCP Router auth token — required
HTTP_PORT (none = stdio mode) Port for HTTP server
HTTP_HOST 127.0.0.1 Bind address
POLL_INTERVAL_MS 15000 Tool change polling interval
DISCOVER_LIMIT 10 Default max results from discover_tools

Tools Exposed to Agents

Tool Description
discover_tools Hybrid semantic + keyword search — find relevant tools by natural language query
execute_tool Execute any MCP tool by exact name with arguments
batch_execute Execute multiple MCP tools in parallel in a single call
refresh_tools Force re-index all tools from MCP Router immediately

npm Scripts

npm run build          # Compile TypeScript → dist/
npm run setup          # Register auto-start + launch tray (platform-detected)
npm run update         # Build + restart tray (platform-detected)

Updating

After changing source code:

npm run update

This rebuilds everything and restarts the tray (which restarts the proxy).

Health Check

GET http://127.0.0.1:3456/health
{
  "status": "ok",
  "routerConnected": true,
  "tools": 151,
  "indexedAt": "2026-02-17T15:51:21.620Z",
  "sessions": { "streamable": 1, "sse": 0 }
}

Status is "ok" when MCP Router is connected and tools are indexed. "disconnected" means the proxy is up but MCP Router is unreachable (it will auto-reconnect).

File Reference

src/
  index.ts          — Main proxy server (HTTP + stdio modes, hybrid vector search)
  stdio-bridge.ts   — Thin stdio→HTTP forwarder for Claude Desktop
  launch-rout

Tools (4)

discover_toolsHybrid semantic and keyword search to find relevant tools by natural language query.
execute_toolExecute any MCP tool by exact name with arguments.
batch_executeExecute multiple MCP tools in parallel in a single call.
refresh_toolsForce re-index all tools from MCP Router immediately.

Environment Variables

MCPR_TOKENrequiredMCP Router auth token
HTTP_PORTPort for HTTP server
HTTP_HOSTBind address
POLL_INTERVAL_MSTool change polling interval
DISCOVER_LIMITDefault max results from discover_tools

Configuration

claude_desktop_config.json
{"mcpServers": {"mcp-vector-proxy": {"command": "node", "args": ["/absolute/path/to/mcp-proxy/dist/stdio-bridge.js"], "env": { "PROXY_URL": "http://127.0.0.1:3456/mcp" }}}}

Try it

Find a tool that can help me manage my local database files.
Execute the tool for listing files in my current directory.
Refresh the tool index to ensure I have the latest tools from MCP Router.
Search for tools related to git operations and execute the status check tool.

Frequently Asked Questions

What are the key features of MCP Vector Proxy?

Reduces AI agent token usage by ~93% by exposing only 4 core tools.. Uses local EmbeddingGemma-300M vector embeddings for offline semantic search.. Supports hybrid search combining dense vectors and BM25 keyword matching.. Auto-syncs tool definitions via MCP notifications and polling.. Includes a system tray application for monitoring and health checks..

What can I use MCP Vector Proxy for?

Users with 150+ MCP tools who want to reduce token costs for AI agents.. Developers needing a local, offline-capable semantic search for their tool library.. Teams using MCP Router who want to streamline tool discovery for Claude Desktop or Claude Code..

How do I install MCP Vector Proxy?

Install MCP Vector Proxy by running: npm install && npm run build

What MCP clients work with MCP Vector Proxy?

MCP Vector Proxy works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep MCP Vector Proxy docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare