Codanna Codebase Intelligence
Codanna indexes your codebase and provides semantic search, call graphs, and dependency analysis via MCP tools. Use codanna before grep/find - it understands code structure, not just text patterns.
When to Use
- Finding code: "Where do we handle authentication?" →
semantic_search_docs - Understanding dependencies: "What calls this function?" →
find_callers - Impact analysis: "What breaks if I change this?" →
analyze_impact - Exploring symbols: "Show me the Parser struct" →
find_symbol
Core Tools
Discovery
# Natural language search - finds code by intent, not keywords
semantic_search_docs query:"error handling patterns" limit:5
# Search symbols by name/pattern
search_symbols query:"parse" kind:"function"
# Get full details on a specific symbol
find_symbol name:"process_file"
Relationships
# Who calls this function? (upstream)
find_callers symbol:"validate_input"
# What does this function call? (downstream)
get_calls symbol:"process_request"
# Full dependency graph - what breaks if I change this?
analyze_impact symbol:"DatabaseConnection" depth:3
Documentation (RAG)
# Search indexed markdown/docs
search_documents query:"API authentication" collection:"docs"
Tool Selection Guide
| Task | Tool | Example |
|------|------|---------|
| Find code by concept | semantic_search_docs | "database migrations" |
| Find symbol by name | search_symbols | Pattern: "auth*" |
| Get symbol details | find_symbol | Exact: "UserService" |
| Trace callers | find_callers | "Who uses this?" |
| Trace dependencies | get_calls | "What does this call?" |
| Assess refactor risk | analyze_impact | "What breaks?" |
Workflow Patterns
Before Refactoring
find_symbol- understand current implementationfind_callers- identify all usage sitesanalyze_impact- assess blast radius- Then proceed with changes
Understanding Unfamiliar Code
semantic_search_docs- "how does X work"find_symbol- get entry point detailsget_calls- trace execution flow
Finding Where to Add Code
semantic_search_docs- "similar patterns"find_callers- how existing code integrates- Follow established patterns
Why Codanna Over Grep
| Grep/Find | Codanna |
|-----------|---------|
| Text matching | Semantic understanding |
| String "parse" matches comments | find_symbol finds the actual function |
| Manual call tracing | find_callers shows full graph |
| Guessing impact | analyze_impact shows dependencies |
Tips
- Start broad with
semantic_search_docs, then drill down withfind_symbol - Use
analyze_impactbefore any refactor touching shared code find_callerswith depth > 1 shows transitive callers- Results include file paths and line numbers - use for navigation