
CICADA
io.github.wende由 GitHub 账号 wende 发布v0.6.4更新于 Oct 24, 2026
Code intelligence MCP server for 17+ programming languages.
概览
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。
安装
在 SourceWeft 中
- 打开 控制台中的 CICADA,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
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]
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:
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
or
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 projectcicada-mcp- MCP server (auto-started by editor)cicada serve- Start REST API server for HTTP access to all MCP toolscicada status- Show index status, PR index, link status, agent files, MCP configscicada stats [repo]- Display usage statistics (tool calls, tokens, execution times)cicada watch- Watch for file changes and automatically reindexcicada index- Re-index code with custom options (-f/--force,--keywords,--embeddings,--watch)cicada index-pr- Index pull requests for PR attributioncicada run [tool]- Execute any of the 7 MCP tools directly from CLIcicada agents install- Install Claude Code agents to./.claude/directorycicada link [parent_dir]- Links current repository to an existing indexcicada clean- Completely removes cicada integration from your folder as well as all settings
Ask your assistant:
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
ghand your existing OAuth token. - Data layout:
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
Enable PR Attribution (optional)
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**
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.
Troubleshooting
"Index file not found"
Run the indexer first:
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:
MCP Server Won't Connect
Troubleshooting checklist:
-
Verify configuration file exists:
-
Check paths are absolute:
-
Ensure index exists:
-
Restart editor completely (not just reload window)
-
Check editor MCP logs:
- Claude Code: --debug
- Cursor: Settings → MCP → View Logs
- VS Code: Output panel → MCP
PR Features Not Working
Setup GitHub CLI:
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:
Keyword Search Not Working
Error: "Keyword search not available"
Cause: Index was built without keyword extraction.
Solution:
Verify:
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:
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?
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_patternto 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 callerswhat_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
- Codebook – Complete feature reference and user guides
- Workflows – Real-world examples chaining tools together
- Installation – Step-by-step setup for all editors
- Contributing – Development guidelines and architecture
- CHANGELOG.md – Release notes
Deep Dives:
- Keyword Extraction Analysis – Semantic search internals
- PR Indexing – GitHub integration details
- MCP Tool Call Benchmarking – Token/time benchmarks
- Tool Discoverability – UX improvements research
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
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
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.
来源:README.md,提交 5fbd626
工具
0版本历史
1- v0.6.4最新Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分