cicada

cicada

An MCP server offering AST-level code intelligence for Elixir and Python projects.

13
Stars
2
Forks
0
Releases

Overview

CICADA is an MCP server that provides AST-level knowledge of your codebase for Elixir and Python (Beta). It exposes module and function definitions with signatures, specs, docs, and owning files; Python classes and methods; and Elixir module/function tracking. It delivers complete call-site tracking across aliases, imports, and dynamic references, enabling accurate usage graphs. Semantic/keyword search enables querying by concepts such as "authentication" even when the symbol name differs. Git history and PR attribution surface why code exists, tying changes to specific merges and reviews. It includes dead-code detection and module dependency views to support safe refactors. The server automatically detects the language of the project and indexes accordingly. It ships 7 focused MCP tools—query, search_module, search_function, git_history, find_dead_code, expand_result, and query_jq—providing structured Markdown/JSON outputs to keep prompts lean. Indexing can be incremental and watch-mode enabled for automatic reindexing; PR indexing can be refreshed via gh. CICADA runs locally with no telemetry, storing data under ~/.cicada/projects and optionally integrating with GitHub for PRs. It aims to reduce token usage and improve AI answer quality by offering structured context.

Details

Owner
wende
Language
Python
License
MIT License
Updated
2025-12-07

Features

AST-level code knowledge

Expose module and function definitions with signatures, specs, docs, and owning files (Elixir) or class/method tracking (Python).

Complete call-site tracking

Track call sites across aliases, imports, and dynamic references for accurate usage graphs.

Semantic/keyword search

Search by concepts and keywords, returning results even when symbol names differ.

Git history & PR attribution

Surface why code exists by linking changes to commits and PRs.

Dead-code detection & dependencies

Identify potentially unused functions and provide module dependency views to aid safe refactors.

Automatic language detection

Automatically detects Elixir vs Python and indexes accordingly.

Multi-language support (Elixir/Python Beta)

Production-ready Elixir support with full features; Python support in Beta with SCIP indexer.

Incremental indexing & watch mode

Incrementally reindex changes with a debounced watch process for rapid development cycles.

Audience

AI AssistantsProvide structured, token-efficient access to code context for Elixir and Python using MCP tools.
DevelopersHelp developers explore code, track function call sites, and attribute changes across PRs.
Code EditorsIntegrate into editors/IDEs to index and query code within the project.

Tags

ElixirPythonCode IntelligenceASTCall-site TrackingSemantic SearchPR AttributionGit HistoryDead-code DetectionLocal IndexingMCP-Compatible