MCP server/ai-tools

MCPFind MCP Server

Context-efficient MCP tool proxy with semantic search.

★ 1jcgs2503/mcpfind ↗by jcgs2503updated
Manual setup required. The maintainer's config contains paths only you know - edit the placeholders below before adding it to Claude Code.
1

Prepare the server locally

Run this once before adding it to Claude Code.

pip install mcpfind
2

Register it in Claude Code

claude mcp add mcpfind -- mcpfind serve --config /path/to/mcpfind.toml

Replace any placeholder paths in the command with the real path on your machine.

3

Make your agent remember this setup

mcpfind's config, env vars, and the gotchas you hit — recalled in every future Claude Code, Cursor, and Codex session.

npx conare@latest

Free · one command · indexes the sessions already on disk. Set up in the browser instead →

What it does

  • Semantic search over all backend tool descriptions
  • Per-agent MFU (Most Frequently Used) cache for personalized ranking
  • On-demand tool schema retrieval to save context tokens
  • Routes tool calls to the correct backend MCP server
  • Supports local embeddings for privacy

Tools 3

search_toolsFind relevant tools by natural language query.
get_tool_schemaPull the full input schema for a specific tool.
call_toolExecute a tool on a backend server.

Environment Variables

GITHUB_TOKENRequired if using the GitHub MCP server backend.
GMAIL_TOKENRequired if using the Gmail MCP server backend.
SLACK_BOT_TOKENRequired if using the Slack MCP server backend.

Try it

Search for tools that can help me create a pull request.
Find a tool to send an email via Gmail.
List all tools discovered from my backend servers.
Search for tools related to filesystem management.
Original README from jcgs2503/mcpfind

MCPFind

Context-efficient MCP tool proxy with semantic search. MCPFind sits between any MCP client and your backend MCP servers, replacing hundreds of tool schemas in the agent's context with just 3 meta-tools (~500 tokens).

Agent (Claude Desktop, Cursor, Claude Code, etc.)
  │  Sees only: search_tools, get_tool_schema, call_tool
  ▼
MCPFind Proxy
  ├── Vector search over all tool descriptions
  ├── Per-agent MFU cache for personalized ranking
  └── Routes calls to the correct backend server
  │
  ├──▶ Gmail MCP Server
  ├──▶ GitHub MCP Server
  ├──▶ Slack MCP Server
  └──▶ ... N servers

Why

As MCP toolspaces grow, every tool schema gets dumped into the agent's context:

Tools Context tokens Effect
10 ~2K Fine
50 ~10K Manageable
200 ~40K Agent picks wrong tools
1000 ~200K Unusable

MCPFind keeps context at ~500 tokens regardless of how many tools exist behind it. Agents discover tools via semantic search, pull schemas on demand, and call tools through the proxy.

Install

# With uv (recommended)
uv tool install mcpfind

# With pip
pip install mcpfind

No API key needed — MCPFind uses local embeddings by default.

Quick Start

1. Run the setup wizard

The easiest way to get started:

mcpfind setup

This walks you through choosing an embedding provider and adding popular MCP servers (GitHub, Slack, Filesystem, PostgreSQL, Brave Search, Playwright, and more). It generates a mcpfind.toml config file for you.

Or create a config file manually

Create mcpfind.toml:

[proxy]
# Uses local embeddings by default — no API key needed
embedding_provider = "local"          # or "openai"
embedding_model = "all-MiniLM-L6-v2"  # or "text-embedding-3-small" for openai
mfu_boost_weight = 0.15
mfu_persist = true
default_max_results = 5

[[servers]]
name = "github"
command = "uvx"
args = ["mcp-server-github"]
env = { GITHUB_TOKEN = "${GITHUB_TOKEN}" }

[[servers]]
name = "filesystem"
command = "uvx"
args = ["mcp-server-filesystem", "/path/to/allowed/dir"]

2. Verify your setup

# List all tools discovered from your backend servers
mcpfind list-tools --config mcpfind.toml

# Test semantic search
mcpfind search "create a pull request" --config mcpfind.toml

3. Run the proxy

mcpfind serve --config mcpfind.toml

This starts MCPFind as a stdio MCP server. Point your MCP client at it instead of individual servers.

Adding MCP Servers

Each backend server is a [[servers]] entry in your config file:

[[servers]]
name = "gmail"              # Unique name (used in search results and call_tool)
command = "uvx"              # Command to launch the server
args = ["mcp-gmail"]         # Arguments passed to the command
env = { GMAIL_TOKEN = "${GMAIL_TOKEN}" }  # Environment variables (supports ${VAR} expansion)

Examples

GitHub:

[[servers]]
name = "github"
command = "uvx"
args = ["mcp-server-github"]
env = { GITHUB_TOKEN = "${GITHUB_TOKEN}" }

Filesystem:

[[servers]]
name = "filesystem"
command = "uvx"
args = ["mcp-server-filesystem", "/home/user/documents"]

Slack:

[[servers]]
name = "slack"
command = "uvx"
args = ["mcp-server-slack"]
env = { SLACK_BOT_TOKEN = "${SLACK_BOT_TOKEN}" }

Custom / local server:

[[servers]]
name = "my-server"
command = "python"
args = ["-m", "my_mcp_server"]
env = { MY_API_KEY = "${MY_API_KEY}" }

Client Configuration

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "mcpfind": {
      "command": "mcpfind",
      "args": ["serve", "--config", "/path/to/mcpfind.toml"],
      "env": {
        "GITHUB_TOKEN": "ghp_..."
      }
    }
  }
}

Claude Code

Add to your .mcp.json:

{
  "mcpServers": {
    "mcpfind": {
      "command": "mcpfind",
      "args": ["serve", "--config", "/path/to/mcpfind.toml"]
    }
  }
}

Cursor

Add to your MCP settings:

{
  "mcpServers": {
    "mcpfind": {
      "command": "mcpfind",
      "args": ["serve", "--config", "/path/to/mcpfind.toml"]
    }
  }
}

How It Works

MCPFind exposes exactly 3 tools to the agent:

  1. search_tools — Find relevant tools by natural language query (e.g., "send an email"). Returns tool names, servers, and descriptions ranked by semantic similarity + usage frequency.

  2. get_tool_schema — Pull the full input schema for a specific tool before calling it. Keeps schemas out of context until actually needed.

  3. call_tool — Execute a tool on a backend server. MCPFind validates and routes the call to the correct server.

Agent workflow

Agent: search_tools("send an email")
  → [{"server": "gmail", "name": "send_email", "score": 0.94}, ...]

Agent: get_tool_schema(server="

Frequently Asked Questions

What are the key features of MCPFind?

Semantic search over all backend tool descriptions. Per-agent MFU (Most Frequently Used) cache for personalized ranking. On-demand tool schema retrieval to save context tokens. Routes tool calls to the correct backend MCP server. Supports local embeddings for privacy.

What can I use MCPFind for?

Managing large toolsets without exceeding LLM context limits. Consolidating multiple MCP servers into a single interface for an agent. Improving agent performance by reducing irrelevant tool schemas in context. Enabling natural language discovery of available automation capabilities.

How do I install MCPFind?

Install MCPFind by running: uv tool install mcpfind

What MCP clients work with MCPFind?

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

Conare · memory for coding agents

Turn this server into reusable context

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

Set up free$npx conare@latest