# CICADA

Parses codebases into AST indexes across 17+ languages to deliver compact symbol signatures. Cuts down token waste during assistant searches.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 40
- Author: wende
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/wende/cicada
- Updated: 2026-09-20
- HTML: https://affpapa.org/en/nevibecode/mcp/cicada

## What it does

CICADA builds a local syntax tree index, capturing code definitions and call sites. Instead of reading entire files with text search, the assistant inspects compact signatures and references. It runs completely offline. All index files and symbol hashes live inside `~/.cicada/` without telemetry tracking.

The server handles more than 17 programming languages. For semantic discovery, it relies on keyword extraction or local embeddings through Ollama. Running the tool requires Python 3.10+ alongside the Astral `uv` package manager. Pull request attribution depends on the external `gh` CLI utility.

The author has discontinued development. Benchmark results showed that modern frontier models derive minimal benefit from separate code intelligence layers.

## Requirements
- Needs: Python and uv (commands run via uvx)

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add cicada -- uvx cicada-mcp
```
uvx runs the command named after the package; if the README names another one, use uvx --from cicada-mcp <command>

### Codex

**Platform CLI**
```bash
codex mcp add cicada -- uvx cicada-mcp
```
uvx runs the command named after the package; if the README names another one, use uvx --from cicada-mcp <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "cicada": {
            "command": "uvx",
            "args": [
                "cicada-mcp"
            ]
        }
    }
}
```
uvx runs the command named after the package; if the README names another one, use uvx --from cicada-mcp <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "cicada": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "cicada-mcp"
            ]
        }
    }
}
```
uvx runs the command named after the package; if the README names another one, use uvx --from cicada-mcp <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add cicada uvx cicada-mcp
```
uvx runs the command named after the package; if the README names another one, use uvx --from cicada-mcp <command>

## When to use it
- retrieve function signatures without dumping whole files into context
- locate cross-language call sites and module references
- trace code origins back to GitHub pull requests via `gh`
- query codebase symbols using Ollama embeddings

## Example prompts
- Where is the authenticate function called across the codebase?
- Show me all method signatures inside the AuthService class.
- Find the pull request that introduced this error handling logic.

## Similar
- [REA](https://affpapa.org/en/nevibecode/mcp/rea.md) — MCP server · ★ 386989
- [GitHub](https://affpapa.org/en/nevibecode/mcp/github.md) — MCP server · ★ 33918
- [Netdata](https://affpapa.org/en/nevibecode/mcp/netdata.md) — MCP server · ★ 81115
- [browser-use](https://affpapa.org/en/nevibecode/mcp/browser-use.md) — MCP server · ★ 119160
- [Codebase Memory](https://affpapa.org/en/nevibecode/mcp/codebase-memory.md) — MCP server · ★ 47392
- [mcp-server](https://affpapa.org/en/nevibecode/mcp/mcp-server.md) — MCP server · ★ 43872

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
