MCP server that integrates Google Gemini AI with repository analysis tools for code planning, review, search, and manipulation
Server has 15 tools with basic descriptions and parameter definitions, but significant gaps in schema completeness, error handling, and output documentation. Most tools lack structured output schemas and error recovery guidance. Parameter descriptions are present but often generic. No tool annotations (readOnlyHint/destructiveHint) despite clear risk profiles. Naming is generally verb-first and clear, but some tools combine multiple concerns (e.g., map_architecture does both indexing and graph extraction). Average tool description ~120 chars (below baseline 194), and output schemas are entirely undocumented.
Apply a code patch to a file safely. Supports unified diffs (@@ hunks), SEARCH/REPLACE blocks, and simple old/new with --- separator. Creates a backup before modifying. Set dry_run=True to preview without writing.
Ask Gemini any technical question or for help with code. You can optionally provide a system instruction to set the persona or constraints.
Find all usages/references of a symbol across the repository. By default shows only usage sites (not definitions). Set include_definitions=True to include them. Results are grouped by file with line numbers.
Find files with similar implementations. Two modes: 1. description: Natural language search (e.g., 'modal component', 'auth middleware'). 2. symbol: Find code structurally similar to an existing symbol's implementation. Scores by filename match, keyword frequency, import overlap, and structural patterns.
Find where a symbol (function, class, variable, type) is defined in the repository. Returns file path, line number, and symbol type. Supports Python, JS/TS, Go, Rust, Java, C/C++. Optionally filter by file_pattern (regex) or symbol_type (class, function, variable, etc.).
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields. All 15 tools return unstructured strings without field definitions.
No error handling guidance. Tools return raw strings without categorizing errors as retryable, user-fixable, or fatal. No recovery suggestions (e.g., 'Try search_users() first').
No tool annotations (readOnlyHint/destructiveHint/idempotentHint). apply_patch is clearly destructive (WRITE risk), but no annotation signals this to the agent. Violates current MCP spec (2026-07-28).
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | <=2025-11-25 | v2 |
Exports the architectural graph nodes and edges as JSON. Used by the web UI for visualization.
Indexes the repository for semantic search. Reads file contents and stores their embeddings in the vector database.
Lists files in the repository to help understand the project structure. Respects security safeguards and excludes sensitive directories like .git or node_modules. Returns a newline-separated list of file paths.
Builds a high-level architectural graph of the repository. Extracts functional signatures using AI and identifies code dependencies (imports). This enables architectural reasoning and visualization in the UI.
Get a step-by-step implementation plan from Gemini for a specific coding task. Provide the task description and optionally current code context or repository structure.
Reads the content of a file from the repository. Includes safeguards to prevent reading sensitive files and limits output size.
Ask Gemini to review a code patch (diff) for bugs, quality, and security issues. 'goal' should describe what the change is trying to achieve.
Detect and run tests in the repository. Auto-detects pytest, jest, mocha, go test, cargo test. scope: 'auto' (all tests), 'file' (specific file via test_path), 'pattern' (match by name via test_path). Optionally force a framework. Returns pass/fail summary and full output.
Searches for a specific string or pattern across the repository files. Useful for finding where certain functions or variables are defined or used. The query is tried as regex first, falling back to plain text search. include_pattern/exclude_pattern use glob syntax (e.g. '*.py', 'src/*.ts').
Performs a semantic search using the vector database. Finds code snippets that are conceptually related to the query.
map_architecture combines two responsibilities: indexing the repo AND extracting architectural graph. Should split into separate tools (index_architecture + get_architecture_graph) per single-responsibility pattern.
Pagination not implemented. list_repo_files, semantic_search, find_references, run_tests lack limit/offset or cursor parameters. Large results will blow context window.