CICADA

io.github.wende由 GitHub 帳號 wende 發布v0.6.4更新於 Oct 24, 2026

Code intelligence MCP server for 17+ programming languages.

已驗證STDIO僅桌面知識與記憶開發者工具

概覽

AI 產生的概覽

CICADA 是本地執行的程式碼智慧 MCP 伺服器,為程式碼庫建立索引,讓助理查詢模組、函式、呼叫點與 Git 歷史。

可以做什麼
  • 以關鍵字或樣式檢索索引,可依可見性、時間、路徑與結果類型篩選
  • 檢視模組 API:函式、簽章、規格、文件,以及誰呼叫它、它呼叫誰
  • 找出函式定義與所有呼叫點,可附上使用範例並依測試程式碼篩選
  • 追蹤 Git 歷史:單行或區間的 blame、提交、PR 以及函式演進
  • 展開查詢結果,並對索引執行自訂 jq 查詢
適用情境
適合希望助理在較大或多語言儲存庫中瀏覽、而不必把整份檔案塞進上下文的場合,也適合需要 blame 或 PR 溯源時。作者已停止維護此專案,並建議不要使用它或類似的程式碼智慧工具。
執行需求
以 stdio 在本機執行,可用 uv tool install 安裝或以 uvx 隨需執行。Python 索引需要 Node.js,因為首次索引時會透過 npm 安裝 scip-python。儲存庫需先建立索引。選用的 PR 功能需要 GitHub CLI(gh)並已登入。選用的語意搜尋依賴本機 Ollama。
安裝前請注意
README 標明專案已停止維護,並建議不要使用。安裝會在儲存庫中寫入編輯器 MCP 設定檔,並在使用者家目錄下產生索引資料。選用的 PR 索引會使用既有的 GitHub CLI OAuth 權杖,並受 GitHub API 速率限制影響。工具被描述為對索引唯讀。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 CICADA,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

[圖片]

CICADA

[!WARNING] ⚠️ Disclaimer — Today's AI agents operate completely differently from when this project was conceived. In current benchmarks, using a code intelligence tool yields little to no advantage for frontier models. CICADA is discontinued, and I'd advise against using it or any other "code intelligence" tool.


Code Intelligence: Contextual Analysis, Discovery, and Attribution

Context compaction for AI code assistants – Give your AI structured, token-efficient access to 17+ languages including Elixir, Python, TypeScript, JavaScript, Rust, and more.

Up to 50% less waiting · Up to 70% less tokens · Up to 99% less explanations to do Tighter context = Better Quality

[Python Version] [License: MIT] [codecov] [MCP Compatible]

[Elixir Support] [Python Support] [TypeScript Support] [JavaScript Support] [Rust Support] [+12 More]

[Install MCP Server]

Quick Install · Security · Developers · AI Assistants · Docs


Why CICADA?

The core problem: AI code assistants waste context on blind searches. Grep dumps entire files when you only need a function signature, leaving less room for actual reasoning.

The Context Compaction Approach

Instead of raw text dumps, CICADA gives your AI structured, pre-indexed knowledge:

Traditional SearchCICADA
Grep dumps entire filesReturns only signatures + call sites
Misses aliased importsTracks all reference types
No semantic understandingKeyword search finds verify_credentials when you ask for "authentication"

What You Get

  • AST-level indexing – Module/function/class definitions with signatures, specs, docs
  • 17+ language support – Elixir, Python, TypeScript, JavaScript, Rust, Go, Java, Kotlin, Scala, C/C++, Ruby, C#, Visual Basic, Dart, PHP, Erlang (beta)
  • Complete call-site tracking – Aliases, imports, dynamic references across all supported languages
  • Semantic search – Find code by concept with keyword extraction or embeddings (Ollama integration)
  • Git + PR attribution – Surface why code exists, not just what
  • Dependency analysis – Bidirectional tracking (what calls this, what does this call)
  • Automatic language detection – Works seamlessly across polyglot codebases

Install

bash
# 1. Install uv (if needed)# curl -LsSf https://astral.sh/uv/install.sh | shuv tool install cicada-mcp
# In your repocicada claude   # or: cicada cursor, cicada vs, cicada gemini, cicada codex, cicada opencode, cicada zed
Try before installing permanently Runs CICADA on demand (worse indexing quality, but zero install).
bash
uvx cicada-mcp claude   # or cursor, vs

or

claude mcp add cicada uvx cicada-mcp
gemini mcp add cicada uvx cicada-mcp
codex mcp add cicada uvx cicada-mcp
kimi mcp add --transport stdio cicada -- cicada-mcp

Uses your editor's built-in MCP management to install CICADA.

Available commands after installation:

  • cicada [claude|cursor|vs|gemini|codex|opencode|zed] - One-command interactive setup per project
  • cicada-mcp - MCP server (auto-started by editor)
  • cicada serve - Start REST API server for HTTP access to all MCP tools
  • cicada status - Show index status, PR index, link status, agent files, MCP configs
  • cicada stats [repo] - Display usage statistics (tool calls, tokens, execution times)
  • cicada watch - Watch for file changes and automatically reindex
  • cicada index - Re-index code with custom options (-f/--force, --keywords, --embeddings, --watch)
  • cicada index-pr - Index pull requests for PR attribution
  • cicada run [tool] - Execute any of the 7 MCP tools directly from CLI
  • cicada agents install - Install Claude Code agents to ./.claude/ directory
  • cicada link [parent_dir] - Links current repository to an existing index
  • cicada clean - Completely removes cicada integration from your folder as well as all settings

Ask your assistant:

# Elixir"Show me the functions in MyApp.User""Where is authenticate/2 called?"
# Python"Show me the AuthService class methods""Where is login() used in the codebase?"
# Both languages"Find code related to API authentication"

Privacy & Security

  • 100% local: parsing + indexing happen on your machine; no external access.
  • No telemetry: CICADA doesn't collect usage or any telemetry.
  • Read-only tools: MCP endpoints only read the index; they can't change your repo.
  • Optional GitHub access: PR features rely on gh and your existing OAuth token.
  • Data layout:
    ~/.cicada/projects/<repo_hash>/├─ index.json      # modules, functions, call sites, metadata├─ config.yaml     # indexing options + mode├─ hashes.json     # incremental indexing cache└─ pr_index.json   # optional PR metadata + reviews
    Your repo only gains an editor config (.mcp.json, .cursor/mcp.json, .vscode/settings.json, .gemini/settings.json, .codex/mcp.json, or .opencode.json).

For Developers

Wire CICADA into your editor once, and every assistant session inherits the context.

Install & Configure

bash
cd /path/to/projectcicada claude   # or cicada cursor / cicada vs / cicada gemini / cicada codex / cicada opencode / cicada zed

Enable PR Attribution (optional)

bash
brew install gh    # or apt install ghgh auth logincicada index-pr .     # incrementalcicada index-pr . --clean   # full rebuild

Unlocks questions like "Which PR introduced line 42?" or "What did reviewers say about billing.ex?"

Automatic Re-indexing with Watch Mode

Enable automatic reindexing when files change by starting the MCP server with the --watch flag:

** .mcp.json**

json
{  "mcpServers": {    "cicada": {      "command": "cicada-mcp",      "args": ["--watch"],      "env": {        "CICADA_CONFIG_DIR": "/home/user/.cicada/projects/<hash>"      }    }  }}

When watch mode is enabled:

  • A separate process monitors .ex, .exs (Elixir) and .py (Python) files for changes
  • Changes are automatically reindexed (incremental, fast)
  • 2-second debounce prevents excessive reindexing during rapid edits
  • The watch process stops automatically when the MCP server stops
  • Excluded directories: deps, _build, node_modules, .git, assets, priv, .venv, venv

CLI Cheat Sheet

Note: Language detection is automatic – CICADA detects Elixir (mix.exs) and Python (pyproject.toml) projects automatically.

CommandPurposeRun When
cicada claudeConfigure MCP + incremental re-indexFirst setup, after local changes
cicada statusCheck index health, link status, agent filesAfter setup, troubleshooting
cicada statsView usage statistics and token metricsMonthly reviews, optimization
cicada watchMonitor files and auto-reindex on changesDuring active development
cicada index --keywords .Rebuild with keyword indexingAfter large refactors or enabling keywords mode
cicada index --embeddings .Rebuild with embeddings (semantic search)When you want Ollama-powered semantic analysis
cicada index-pr .Sync PR metadata/reviewsAfter new PRs merge

Troubleshooting

"Index file not found"

Run the indexer first:

bash
cicada index /path/to/project

Ensure indexing completed successfully. Check for ~/.cicada/projects/<hash>/index.json.

"Module not found"

Use the exact module name as it appears in code (e.g., MyApp.User, not User).

If module was recently added, re-index:

bash
cicada index .
MCP Server Won't Connect

Troubleshooting checklist:

  1. Verify configuration file exists:

    bash
    # For Claude Codels -la .mcp.json
    # For Cursorls -la .cursor/mcp.json
    # For VS Codels -la .vscode/settings.json
  2. Check paths are absolute:

    bash
    cat .mcp.json# Should contain: /absolute/path/to/project# Not: ./project or ../project
  3. Ensure index exists:

    bash
    ls -la ~/.cicada/projects/# Should show directory for your project
  4. Restart editor completely (not just reload window)

  5. Check editor MCP logs:

    • Claude Code: --debug
    • Cursor: Settings → MCP → View Logs
    • VS Code: Output panel → MCP
PR Features Not Working

Setup GitHub CLI:

bash
# Install GitHub CLIbrew install gh  # macOSsudo apt install gh  # Ubuntu# or visit https://cli.github.com/
# Authenticategh auth login
# Index PRscicada index-pr

Common issues:

  • "No PR index found" → Run cicada index-pr .
  • "Not a GitHub repository" → Ensure repo has GitHub remote
  • Slow indexing → First-time indexing fetches all PRs; subsequent runs are incremental
  • Rate limiting → GitHub API has rate limits; wait and retry if you hit limits

Force rebuild:

bash
cicada index-pr --clean
Keyword Search Not Working

Error: "Keyword search not available"

Cause: Index was built without keyword extraction.

Solution:

bash
# Re-index with keyword extractioncicada index .  # or --keywords

Verify:

bash
cat ~/.cicada/projects/<hash>/config.yaml# Should show:# indexing:#   mode: keywords

More detail: PR Indexing, Incremental Indexing.

Python Indexing

Requirements:

  • Node.js (for scip-python indexer)
  • Python project with pyproject.toml

First-time setup: CICADA automatically installs scip-python via npm on first index. This may take a minute.

Known limitations (Beta):

  • First indexing may be slower than Elixir (SCIP generation step)
  • Large virtual environments (.venv) are automatically excluded
  • Some dynamic Python patterns may not be captured

Performance tips:

bash
# Ensure .venv is excludedecho "/.venv/" >> .gitignore
# Use keywords mode for quickest indexingcicada index --keywords .

Report issues: GitHub Issues with "Python" label


For AI Assistants

CICADA ships 7 focused MCP tools designed for efficient code exploration across Elixir, Python, and Erlang codebases.

🧭 Which Tool Should You Use?

NeedToolNotes
Start exploringquery🚀 START HERE - Smart discovery with keywords/patterns + filters (scope, recent, path)
View a module's complete APIsearch_moduleFunctions, signatures, specs, docs. Use what_calls_it/what_it_calls for bidirectional analysis
Find where a function is usedsearch_functionDefinition + all call sites. Supports wildcards (*) and OR (|) patterns
Track git historygit_historyUnified tool: blame, commits, PRs, function evolution (replaces 4 legacy tools)
Drill down into resultsexpand_resultAuto-expands modules or functions from query results
Advanced index queriesquery_jqCustom jq queries for power users

Want to see these tools in action? Check out Complete Workflow Examples with pro tips and real-world scenarios.

Core Tools

query - Smart code discovery (your starting point)

  • Automatically detects keywords vs patterns
  • Filters: scope (public/private), recent (last 14 days), filter_type (modules/functions), match_source (docs/strings)
  • Returns snippets with smart next-step suggestions
  • Use path_pattern to filter by location

search_module - Deep module analysis

  • View complete API: functions, signatures, specs, docs
  • For Python: Shows classes with method counts and signatures
  • For Elixir: Shows functions with arity notation
  • Bidirectional analysis:
    • what_calls_it=true → See who uses this module (impact analysis)
    • what_it_calls=true → See what this module depends on
  • Supports wildcards (Elixir: MyApp.*, Python: api.handlers.*) and OR patterns (MyApp.User|MyApp.Post)
  • Filter by visibility (public/private/all)

search_function - Function usage tracking

  • Find definitions and all call sites
  • what_calls_it=true (default) → See all callers
  • what_it_calls=true → See all dependencies
  • Include code examples with include_usage_examples=true
  • Filter by usage_type: source, tests, or all

Git History (Unified Tool)

git_history - All git operations in one tool

  • Single line: git_history("file.ex", start_line=42) → blame + PR
  • Line range: git_history("file.ex", start_line=40, end_line=60) → grouped blame
  • Function tracking: git_history("file.ex", function_name="create_user") → evolution
  • File history: git_history("file.ex") → all PRs/commits
  • Time filtering: recent=true (14d), recent=false (>14d), recent=null (all)
  • Author filtering: author="john"
  • Automatic PR index integration when available

Additional Tools

expand_result - Drill down from query results

  • Auto-detects module vs function
  • Shows complete details with usage examples
  • Configure what to include: code, dependencies, callers
  • Convenient wrapper around search_module and search_function

query_jq - Advanced index queries

  • Direct jq queries against the index
  • Schema discovery with | schema
  • Compact (default) or pretty output
  • Sample mode for large results

Detailed parameters + output formats: MCP_TOOLS_REFERENCE.md.

Token-Friendly Responses

All tools return structured Markdown/JSON snippets (signatures, call sites, PR metadata) instead of full files, keeping prompts lean.

New in v0.5.1: All tools now use compact output by default to minimize token usage. Use verbose=true for detailed output with full docs and specs.



Documentation

Deep Dives:


Roadmap

Current Status

Production Ready:

  • ✅ Elixir (tree-sitter)
  • ✅ Python (SCIP)
  • ✅ TypeScript (SCIP)
  • ✅ JavaScript (SCIP)
  • ✅ Rust (SCIP)

Beta:

  • 🚧 Erlang (tree-sitter)
  • 🚧 Go (SCIP)
  • 🚧 Java/Kotlin/Scala (SCIP)
  • 🚧 C/C++ (SCIP)
  • 🚧 Ruby (SCIP)
  • 🚧 C#/Visual Basic (SCIP)
  • 🚧 Dart (SCIP)
  • 🚧 PHP (SCIP)

Comparison to Alternatives

FeatureCICADASerenaCodicil (Elixir-only)
Analysis MethodSCIP (static index)LSP (real-time server)LLM summaries + embeddings
Code Editing❌✅❌
Git Context✅ PR history, blame, evolution❌❌
Resource UsageLow (read from disk)High (persistent server processes)Medium (API calls)
Privacy100% local100% localRequires external LLM APIs
Semantic SearchLocal Ollama or keywords❌OpenAI/Anthropic embeddings
Call GraphBidirectional with alias resolutionLSP-based❌

When to choose CICADA: You want local-first operation with rich git context (PR attribution, blame, function evolution tracking) and efficient token usage.

When to choose Serena: You need code editing capabilities through LSP and can accept higher resource usage.

When to choose Codicil: You have an Elixir project and prefer LLM-powered semantic summaries (Elixir-only).


Contributing

bash
git clone https://github.com/wende/cicada.gitcd cicadauv syncpytest

Before submitting a PR:

  • Run black cicada tests
  • Ensure tests + coverage pass (pytest --cov=cicada --cov-report=term-missing)
  • Update docs if behaviour changes

We welcome issues/PRs for:

  • New language grammars
  • Tool output improvements
  • Better onboarding docs and tutorials

License

MIT – see LICENSE.

Stop wasting context on blind searches. Give your AI CICADA.

Get Started · Report Issues

來源:README.md,提交 5fbd626

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.6.4最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分