Loading connector details…
Loading connector details…
Choose a unique username to continue using AgentHotspot
by wende • Uncategorized
An MCP server providing structured, token-efficient code context compaction for AI code assistants across 17+ programming languages.
Structured, semantic code search and discovery across multiple languages.
Detailed function and module usage tracking with call-site and dependency analysis.
Integrated git and pull request history to understand code evolution and attribution.
CICADA offers AST-level indexing, semantic search, call-site tracking, and git/PR attribution to give AI assistants precise and compact access to codebases. It supports multiple languages including Elixir, Python, TypeScript, and Rust, enabling faster, more relevant code exploration with up to 70% fewer tokens and improved quality. The tool runs fully locally with no telemetry, ensuring privacy and security while integrating seamlessly with various editors and AI assistants.
YOUR PRIMARY TOOL - Start here for ALL code exploration and discovery.\n\nThe 'Google for code' - this is your FIRST STOP for any code search task. Intelligently searches by keywords OR patterns, combines results, and suggests exactly which specialized tools to use next.\n\nSmart Auto-Detection:\n• Keywords: ['authentication', 'login'] → semantic search\n• Patterns: 'MyApp.User.create*' → pattern matching\n• Mixed: ['oauth', 'MyApp.Auth.*'] → combines both\n\nPower Filters:\n• scope: 'all' (default) | 'public' | 'private'\n• result_type: 'all' | 'modules' | 'functions'\n• match_source: 'all' | 'docs' | 'strings' (search in code strings like SQL)\n• recent: false (default) | true (last 14 days only)\n• glob: glob pattern like 'lib/auth/**' or '**/*_controller.ex'\n• path: base directory to search in (e.g., 'lib/auth')\n• type: file type shorthand (e.g., 'py', 'ex', 'ts')\n\nReturns:\n• Compact results with essential info (verbose=true for full details)\n• Smart suggestions for next steps with actual tool names to use\n• Match indicators: (d) docs, (s) strings, (d+s) both\n• Search source: (k) keyword, (s) semantic, (k+s) both (hybrid mode)\n\nAI USAGE TIPS:\n• **ALWAYS START HERE** - This replaces the need to choose between multiple tools\n• Don't ask users for module/function names - query will find them for you\n• Start broad: query('authentication') then follow the tool suggestions\n• Try patterns when you know structure: query('MyApp.*.create*')\n• Use filters to narrow: query('login', scope='recent', glob='lib/auth/**')\n• The results include smart suggestions - follow them to drill deeper\n• Only skip this tool if you already have exact module.function/arity identifiers\n\nExample Workflow:\n1. query(['jwt', 'authentication']) → discovers relevant code + suggests next steps\n2. Follow suggestion → search_function('verify_token') → see detailed usage\n3. Follow suggestion → search_module('MyApp.Auth') → see complete API\n\nWhen NOT to use:\n• You already have exact identifiers like 'MyApp.User.create_user/2'\n• Analyzing git history for known file paths (use history tools directly)\n• Targeted operations on specific, already-identified code
DEEP-DIVE TOOL: View a module's complete API and dependencies after discovering it with query. Shows full module details: functions with arity, signatures, docs, typespecs, and line numbers. Analyze both what this module depends on (what_it_calls) and what depends on it (what_calls_it). Use this when query suggests drilling into a specific module. Supports wildcards (*) and OR patterns (|) for both module names and file paths. Examples: 'MyApp.*', '*User*', 'lib/my_app/*.ex', 'MyApp.User|MyApp.Admin'. Search by module_name='MyApp.User' or file_path='lib/my_app/user.ex'. Control visibility with type: 'public' (default), 'private', or 'all'. Returns compact output by default (name/arity only). Use verbose=true for full details. AI USAGE TIPS: • After query finds modules, use this to see the full API surface • Query will suggest using this tool when detailed module info is needed • Don't ask user for module names - use query first to discover them • Use what_calls_it=true BEFORE modifying a module to see impact (what depends on it) • Use what_it_calls=true to see what this module depends on • Returns: function list with line numbers (add verbose=true for signatures/docs) • If module not found, error will suggest alternatives - try those suggestions! • Wildcard searches are limited to 20 modules - use more specific patterns for large codebases • Output is automatically truncated for large results to prevent token overflow
DEEP-DIVE TOOL: Find function definitions and call sites after discovering with query. Provides function analysis: definition location and all call sites. Use this when query suggests drilling into a specific function's usage. Search by function name, optionally with module, file path, and arity: 'function_name', 'Module.function_name', 'function_name/2', or 'lib/my_app/user.ex:function_name'. Supports wildcards (*) and OR patterns (|) across function names, modules, and file paths (e.g., 'create*|update*', 'MyApp.*.create', 'lib/*/user.ex:create*'). Returns compact output by default (location + call sites). Use verbose=true for signatures and documentation. AI USAGE TIPS: • After query finds functions, use this for detailed impact analysis • Query will suggest this tool when you need to see where functions are called • Set include_usage_examples=true to see real code examples (helps understand usage patterns) • Use usage_type='tests' to see only how functions are tested • Returns: definition + ALL call sites with file:line references (add verbose=true for docs/specs) • If you see function references in code, search them to understand what they do • Call sites and line numbers are automatically truncated for popular functions (>20 sites)
UNIFIED HISTORY TOOL: One tool for all git history queries - replaces get_blame, get_commit_history, find_pr_for_line, and get_file_pr_history. Smart routing based on parameters: • start_line only → single line blame + find PR • start_line + end_line → line range blame with PR enrichment • function_name → function tracking with evolution metadata • file_path only → file-level history (PRs preferred, commits fallback) Automatically uses PR index when available for enriched results. Returns compact output by default (PR number, title, author). Use verbose=true for descriptions and comments. AI USAGE TIPS: • Single line authorship: git_history(file_path='lib/auth.ex', start_line=42) • Line range blame: git_history(file_path='lib/auth.ex', start_line=40, end_line=60) • Function evolution: git_history(file_path='lib/auth.ex', function_name='create_user', show_evolution=true) • File PR history: git_history(file_path='lib/auth.ex') • Recent changes only: git_history(file_path='lib/auth.ex', recent=true) • Older changes: git_history(file_path='lib/auth.ex', recent=false) • All time: git_history(file_path='lib/auth.ex', recent=null) • By author: git_history(file_path='lib/auth.ex', author='john')
DRILL-DOWN TOOL: Expand a query result to see complete details. After discovering modules or functions with query, use this tool to explore a specific result in depth. Query results often suggest using this tool to get more details. Automatically determines whether you're expanding a module or function. For modules: Shows all functions, documentation, and structure. For functions: Shows definition, documentation, call sites, and relationships. AI USAGE TIPS: • **Primary use case:** Follow query's suggestions to expand interesting results • Copy the identifier directly from query results (e.g., 'MyApp.Auth.verify_token/2') • Type detection is automatic - no need to specify module vs function • Perfect for understanding what a result does before modifying it • Shows: full code context, relationships, usage examples • Convenience wrapper - calls search_module or search_function automatically
Scores are informational only and provided “as is” without warranty. AgentHotspot assumes no liability for actions taken based on these ratings.