io.github.BigJai/codemunch-pro
Code indexing MCP: 13 tools, 10 languages, hybrid search, call graphs, O(1) retrieval.
Versions
0.1.1latest1.2.0Tools 15
index_folder Index a local directory. Extracts symbols from source files using tree-sitter AST parsing. Supports 10 languages: Python, JavaScript, TypeScript, Go, Rust, Java, C, C++, C#, Ruby. Uses incremental indexing — only re-parses files that changed (SHA-256 comparison). Generates vector embeddings for semantic search. Args: path: Absolute path to the directory to index. include_patterns: Optional glob patterns to include (e.g. ["src/**/*.py"]). exclude_patterns: Optional glob patterns to exclude (e.g. ["tests/**"]). embed: Whether to generate vector embeddings (default True, set False for faster indexing).
index_repo Index a GitHub or GitLab repository by downloading its tarball. No git binary needed. Downloads the repo archive, extracts, and indexes. Subsequent calls use a cache — only re-downloads if new commits exist. Args: url: Repository URL (e.g. "https://github.com/owner/repo"). branch: Branch to index (default: repo's default branch). token: Optional auth token for private repos (GitHub PAT or GitLab token). sparse_paths: Optional list of paths to index (e.g. ["src/", "lib/"]). embed: Whether to generate vector embeddings (default True).
list_repos List all indexed repositories with stats. Returns repository paths, file counts, symbol counts, and languages.
invalidate_cache Force re-index a repository by clearing its cache. Deletes the stored hashes so all files are re-parsed on next index. Args: repo_path: Path to the repository to invalidate.
file_tree Get the directory tree of an indexed repository. Shows files with their language, size, and symbol count. Args: repo_path: Path to the indexed repository. path_prefix: Optional path prefix to filter (e.g. "src/"). depth: Maximum directory depth to show (default 3).
file_outline List all symbols in a single file, ordered by line number. Shows functions, classes, methods, types, and interfaces with their signatures. Args: repo_path: Path to the indexed repository. file_path: Relative path to the file within the repo (e.g. "src/main.py").
repo_outline List all symbols in the repository (summary view). Returns a compact list of all functions, classes, methods, etc. Use kind_filter to show only specific types. Args: repo_path: Path to the indexed repository. kind_filter: Optional filter: "function", "class", "method", "type", "interface". limit: Maximum symbols to return (default 200, max 500).
get_symbol Get the full source code of a specific symbol using O(1) byte-offset seek. Retrieves the exact bytes of a function, class, or method without reading the entire file. This is the key token-saving feature — get exactly what you need. Args: repo_path: Path to the indexed repository. qualified_name: Fully qualified name (e.g. "MyClass.my_method" or "my_function").
get_symbols Batch get source code for multiple symbols at once. More efficient than calling get_symbol repeatedly. Returns all requested symbols with their full source code. Args: repo_path: Path to the indexed repository. qualified_names: List of fully qualified names to retrieve.
search_symbols Hybrid search across all symbols using FTS5 + vector similarity. Combines keyword matching (BM25) with semantic similarity (embeddings) using Reciprocal Rank Fusion for best results. Args: repo_path: Path to the indexed repository. query: Search query (natural language or code terms). kind: Optional filter: "function", "class", "method", "type", "interface". limit: Maximum results (default 20).
search_text Full-text search in file contents (strings, comments, config values). Searches the raw text of all indexed files, not just symbol names. Useful for finding string literals, TODO comments, config values, error messages. Args: repo_path: Path to the indexed repository. query: Text to search for. glob: Optional file glob pattern (e.g. "*.py", "src/**/*.ts"). limit: Maximum results (default 20).
get_callees Get what a function calls (outgoing call graph edges). Traces the call graph from a function to see what it invokes. Use depth > 1 for transitive callees. Args: repo_path: Path to the indexed repository. qualified_name: Fully qualified name of the function to trace from. depth: How deep to traverse (1 = direct calls, 2 = calls of calls, etc).
get_callers Get who calls a function (incoming call graph edges). Traces the call graph backwards to find all callers of a function. Use depth > 1 for transitive callers. Args: repo_path: Path to the indexed repository. qualified_name: Fully qualified name of the function to trace. depth: How deep to traverse (1 = direct callers, 2 = callers of callers, etc).
diff_symbols Re-index a repository and show what symbols changed since last index. Compares the current state of files against the stored index to find: - New symbols (added since last index) - Removed symbols (deleted since last index) - Modified symbols (same name but different content hash) Useful for code review, PR analysis, and understanding what changed. Args: repo_path: Path to an already-indexed repository.
dependency_map Show what a file depends on and what depends on it. Maps import/call relationships at the file level. Useful for understanding how a file fits in the codebase before modifying it. Args: repo_path: Path to the indexed repository. file_path: Relative path to the file (e.g. "src/main.py").
Permissions 3
network medium filesystem low database medium