Claude Plugin
Claude Plugin Integration
By the end of this guide, you will have Indexed running as a plugin for Claude Desktop, and you will have verified the connection with a test query.
How It Works
When you add Indexed to Claude Desktop's config, Claude Desktop launches indexed mcp run as a subprocess each time it starts. Claude then has access to MCP tools that query your index over stdio (no network port is opened by default).
What Claude Can Do
Once connected, Claude can:
- Call
searchwith a query to search across all collections - Call
search_collectionwith a collection name and query to target one collection - Use collection metadata to see what is indexed
Claude typically invokes these tools when your questions match content you have indexed.
Prerequisites
- Indexed installed — confirm the CLI works (
indexed --help) - At least one collection created (for example
indexed index create files -c my-docs -p ./documents) - Claude Desktop installed
Find Your Config File
~/Library/Application Support/Claude/claude_desktop_config.json~/.config/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonIf the file doesn't exist, create it. If it exists and already has an mcpServers key, add the indexed entry alongside the existing entries.
Add the Indexed Entry
{
"mcpServers": {
"indexed": {
"command": "indexed",
"args": ["mcp", "run"]
}
}
}Save the file.
Using local storage (optional)
By default, Indexed uses your global store under ~/.indexed/. To scope the MCP server to project-local .indexed/ (same as using --local on other commands), pass the top-level --local flag before mcp — it is not an argument to mcp run:
{
"mcpServers": {
"indexed": {
"command": "indexed",
"args": ["--local", "mcp", "run"]
}
}
}You can instead set persistent storage mode in config (see Configuration Guide):
[general]
storage_mode = "local"If you use local storage, run or open Claude Desktop from the directory that contains your .indexed/ folder so the server resolves the same workspace.
Restart Claude Desktop
Fully quit and relaunch Claude Desktop — a reload is not sufficient to pick up MCP config changes.
Test the Connection
Try these prompts to verify Indexed is working:
- "What tools do you have available from Indexed?" — Claude should list the
searchandsearch_collectiontools. - "Search my indexed documents for the deployment process." — Claude should call
searchand return results from your collection. - "Search the my-docs collection for authentication setup." — Claude should call
search_collection("my-docs", "authentication setup").
A working response includes document names, chunk positions, scores, and excerpts from your local index.
Troubleshooting
Indexed not listed under tools — Confirm the binary is on PATH: which indexed on macOS and Linux, where indexed on Windows (Command Prompt or PowerShell). Validate claude_desktop_config.json is valid JSON (no trailing commas, matching braces). Fully quit Claude Desktop (menu bar, not only closing the window) and reopen.
"command not found" in Claude logs — GUI apps often inherit a minimal PATH. Use the absolute path from which indexed (macOS/Linux) or where indexed (Windows) as "command":
{
"mcpServers": {
"indexed": {
"command": "/Users/you/.local/bin/indexed",
"args": ["mcp", "run"]
}
}
}No collections / empty results — Run indexed index inspect. If you use --local or storage_mode = "local", create collections from the same project directory and ensure Claude spawns the server with a cwd that sees that .indexed/ folder. Test the index from a terminal: indexed index search "your query".
Slow first response — The embedding model loads on the first query. Later queries in the same session are faster.
Debug logging — Raise MCP log verbosity (see indexed mcp run --help):
{
"mcpServers": {
"indexed": {
"command": "indexed",
"args": ["mcp", "run", "--log-level", "DEBUG"]
}
}
}Then check Claude Desktop’s MCP or developer logs for the Indexed process.