Context7
Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.
Description from the maker (original English)
Semantic code search over a local repository, with AST-based chunks and incremental re-indexing.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
COCOINDEX_CODE_ROOT_PATHYou need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"cocoindex-code": {
"command": "uvx",
"args": [
"cocoindex-code",
"serve"
],
"env": {
"COCOINDEX_CODE_ROOT_PATH": "your-value"
}
}
}
}Run this in your terminal
claude mcp add cocoindex-code --env COCOINDEX_CODE_ROOT_PATH=your-value -- uvx cocoindex-code serveFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"cocoindex-code": {
"command": "uvx",
"args": [
"cocoindex-code",
"serve"
],
"env": {
"COCOINDEX_CODE_ROOT_PATH": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"cocoindex-code": {
"type": "stdio",
"command": "uvx",
"args": [
"cocoindex-code",
"serve"
],
"env": {
"COCOINDEX_CODE_ROOT_PATH": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
COCOINDEX_CODE_ROOT_PATH envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 6, 2026
The registry name was verified with the GitHub account cocoindex-io, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.2.43) reached the registry today.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) on your computer.
In the same category: Context7, Codebase Memory, Exa
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Connect AI agents to Exa for web search, content fetching, and multi-step research.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
AST-based semantic code search
CocoIndex Code provides AST-based semantic search for your codebase, built on the CocoIndex Rust data transformation engine. Use it from the CLI or connect Claude, Codex, Cursor, and other coding agents through a Skill or MCP.
Star CocoIndex if you find it useful.
Deutsch | English | Español | français | 日本語 | 한국어 | Português | Русский | 中文
Using pipx:
pipx install 'cocoindex-code[full]' # batteries included (local embeddings)
pipx upgrade cocoindex-code # upgrade
Using uv:
uv tool install --upgrade 'cocoindex-code[full]'
Two install styles — they mirror the Docker image variants of the same names:
cocoindex-code[full] — batteries-included. Pulls in sentence-transformers so local embeddings (no API key required) work out of the box. The ccc init interactive prompt defaults to Snowflake/snowflake-arctic-embed-xs.cocoindex-code (slim) — LiteLLM-only; requires a cloud embedding provider and API key. Use when you don't want the local-embedding deps (~1 GB of torch + transformers).Next, set up your coding agent integration — or jump to Manual CLI Usage if you prefer direct control.
This repository is a single plugin marketplace (.claude-plugin/marketplace.json) consumed by both Claude Code and Grok — same plugin id cocoindex-code, same ccc skill. Grok optionally activates the bundled hooks and MCP server with --trust; Claude Code users can install the same marketplace and rely on the skill alone or load hooks/MCP from the plugin as needed.
Install the ccc skill so your coding agent automatically uses semantic search when needed:
npx skills add cocoindex-io/cocoindex-code
The skill teaches the agent to handle initialization, indexing, and searching, so you don't need to run ccc init or ccc index yourself. The agent keeps the index up to date as you work.
The agent uses semantic search automatically when it would be helpful. You can also nudge it explicitly — just ask it to search the codebase, e.g. *"find how user sessions are managed"*, or type /ccc to invoke the skill directly.
Works with Claude Code and other skill-compatible agents.
For Claude Code users, this repository is also a plugin marketplace. Install the skill from inside Claude Code with:
/plugin marketplace add cocoindex-io/cocoindex-code
/plugin install cocoindex-code@cocoindex-code
This bundles the same ccc skill, with version pinning and /plugin marketplace update for updates. The repository also ships hooks/hooks.json and .mcp.json for Grok (and Claude Code plugin installs that load those files); Claude users who want skill-only search can rely on the skill alone and add MCP manually in the MCP Server section below instead of using the bundled .mcp.json.
For Grok users, install via Grok's plugin system. The plugin bundles three components:
| Component | Purpose |
|---|---|
Skill (skills/ccc/) | Agent runs ccc search / ccc index via the CLI (same as Claude Code above) |
Hook (hooks/hooks.json) | SessionStart + PostToolUse (Edit/Write/…) → incremental ccc index when .cocoindex_code/settings.yml exists (never in the directory holding ccc's user settings, ~ by default) |
MCP (.mcp.json) | ccc mcp stdio server — search tool with refresh_index=true by default |
Grok does not import Claude's enabledPlugins or plugin cache; install separately even if you already use cocoindex in Claude Code.
Full install (skill + hook + MCP):
grok plugin marketplace add cocoindex-io/cocoindex-code
grok plugin install cocoindex-io/cocoindex-code --trust grok plugin enable cocoindex-code
Prefer the GitHub shorthand (cocoindex-io/cocoindex-code) for install — grok plugin install cocoindex-code can fail when no marketplace plugin matches that bare name.
--trust is required so Grok activates the plugin's hooks and MCP server (skills load when the plugin is enabled).
Skill-only (match Claude Code — no auto-index hook, no MCP tool):
Install and enable as above, then disable the optional components:
/hooks, select the SessionStart / PostToolUse hooks from cocoindex-code, press Space to disable./mcps, select cocoindex-code, press Space to disable; or persist in ~/.grok/config.toml:[mcp_servers.cocoindex-code]
enabled = false
The agent still owns indexing via the ccc skill (ccc index / ccc search --refresh when stale), same as Claude Code.
To avoid importing MCP servers from your Claude/Cursor user config (unrelated to this plugin):
[compat.claude]
mcps = false
[compat.cursor] mcps = false
Oh My Pi reads .omp-plugin/marketplace.json (preferred) and falls back to .claude-plugin/marketplace.json.
omp plugin marketplace add cocoindex-io/cocoindex-code
omp plugin install cocoindex-code@cocoindex-code --scope project
Then restart the session (/reload-plugins does not reload extensions). Requires ccc on PATH (uv tool install --upgrade 'cocoindex-code[full]').
| Component | Purpose |
|---|---|
Skill (skills/ccc/) | Agent runs ccc search / ccc index via the CLI |
Hook (extensions/ccc-index.ts via package.json#omp.extensions) | session_start + post-edit tool_result → incremental ccc index when .cocoindex_code/settings.yml exists (never in the directory holding ccc's user settings, ~ by default) |
MCP (.mcp.json) | ccc mcp stdio server |
OMP does not execute Claude hooks/hooks.json command hooks. The TypeScript extension is the OMP equivalent of the Claude/Grok SessionStart + PostToolUse pair.
Skill-only (no MCP, no auto-index): install the skill via npx skills add cocoindex-io/cocoindex-code, or run ccc search / ccc index from the shell.
Alternatively, use ccc mcp to run as an MCP server:
Claude Code
claude mcp add cocoindex-code -- ccc mcp
Codex
codex mcp add cocoindex-code -- ccc mcp
OpenCode
opencode mcp add
Enter MCP server name: cocoindex-code Select MCP server type: local Enter command to run: ccc mcp
Or use opencode.json:
{
"$schema": "https://opencode.ai/config.json", "mcp": { "cocoindex-code": { "type": "local", "command": [ "ccc", "mcp" ] } } }
</details>
Kilo Code
Add a local MCP server in ~/.config/kilo/kilo.jsonc, kilo.jsonc, or .kilo/kilo.jsonc:
{
"mcp": { "cocoindex-code": { "type": "local", "command": ["ccc", "mcp"], "enabled": true } } }
</details>
Oh My Pi
Prefer the marketplace install above. Manual project MCP (.omp/mcp.json):
{
"mcpServers": { "cocoindex-code": { "command": "ccc", "args": ["mcp"] } } }
</details>
Once configured, the agent can use semantic search to find code by description, explore unfamiliar codebases, and locate implementations without exact names.
Note: The
cocoindex-codecommand (without subcommand) still works as an MCP server for backward compatibility. It auto-creates settings from environment variables on first run.
MCP Tool Reference
When running as an MCP server (ccc mcp), the following tool is exposed:
`search` — Search the codebase using semantic similarity.
search(
query: str, # Natural language query or code snippet limit: int = 5, # Maximum results (1-100) offset: int = 0, # Pagination offset refresh_index: bool = True, # Refresh index before querying languages: list[str] | None = None, # Filter by language (e.g. ["python", "typescript"]) paths: list[str] | None = None, # Filter by path glob (e.g. ["src/utils/*"]) )
Returns matching code chunks with file path, language, code content, line numbers, and similarity score.
You can also use the CLI directly — useful for manual control, running indexing after changing settings, checking status, or searching outside an agent.
ccc init # initialize project (creates settings)
ccc index # build the index ccc search "authentication logic" # search!
The background daemon starts automatically on first use.
Tip: You can skip
ccc initand go straight toccc index— it auto-initializes new projects with default settings. If global settings are missing too (first use on the machine), it walks you through the same model setup asccc initwhen run interactively; non-interactive runs (scripts, hooks) still require a
Only the beginning is shown; read the rest in the repo