SRC (Structured Repo Context)
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LOG_LEVEL | No | Log verbosity | info |
| CHUNK_SIZE | No | Characters per chunk | 1000 |
| CHUNK_OVERLAP | No | Overlap between chunks | 200 |
| EMBEDDING_MODEL | No | Model for embeddings | nomic-embed-text |
| OLLAMA_BASE_URL | No | Ollama API endpoint | http://localhost:11434 |
| EMBEDDING_BATCH_SIZE | No | Batch size for embedding | 10 |
| EMBEDDING_DIMENSIONS | No | Vector dimensions | 768 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
| extensions | {
"io.modelcontextprotocol/tasks": {}
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_server_infoA | Get SRC server identity, version, and description. Use to verify the MCP server is running correctly. |
| index_codebaseA | Index a codebase for semantic code search. USE THIS FIRST before search_code. Required once per project - creates vector embeddings for 55 configured language modes across 99 extensions. After initial indexing, use update_index for incremental updates. |
| search_codeA | Search code semantically using natural language queries, hybrid vector/BM25 retrieval, and deterministic identifier reranking. USE THIS to find code by concept/meaning (e.g., 'authentication logic', 'error handling'). Requires index_codebase first. Returns relevant code chunks with file locations, function names, and call relationships (who calls what). |
| get_index_statusA | Check if a codebase is indexed and ready for search. USE THIS to verify index exists before searching. Returns file count, chunk count, and indexed languages. |
| update_indexA | Refresh the search index after code changes. USE THIS instead of re-indexing - it's fast because it only processes changed files (SHA-256 hash detection). Use dryRun=true to preview changes first. |
| parse_astA | Parse code and return the Abstract Syntax Tree (AST). Supports multiple languages including JavaScript, TypeScript, Python, Go, Rust, Java, C, C++, and more. |
| query_codeB | Execute Tree-sitter SCM queries on code to find patterns. Use preset queries (functions, classes, imports, exports, comments, strings, variables, types) or custom SCM query patterns. |
| list_symbolsB | Extract all code symbols (functions, classes, variables, etc.) from a file. Returns structured information including name, type, location, and signature for each symbol. |
| analyze_fileB | Perform a comprehensive analysis of a source code file. Returns symbols, imports, exports, and code metrics. Optionally includes the full AST. |
| get_call_graphB | Analyze function call relationships in a codebase. Query callers/callees for a specific function or get full call graph statistics. |
| find_symbolsA | Read-only code navigation across a project: find symbol definitions, textual references, imports, and exports with precise byte offsets and bounded snippets. |
| get_dependency_graphA | Read-only project architecture analysis: resolve imports/exports, expose a dependency graph, detect cycles, and rank inbound/outbound hotspots. |
| get_code_snippetA | Read-only bounded source retrieval by exact UTF-8 byte offsets, with line/column positions and no code execution. |
| analyze_impactA | Read-only blast-radius analysis for changed files using the project dependency graph and reverse transitive closure. |
| get_diagnosticsA | Inspect embedding provider health, index compatibility, path-security configuration, and resource limits without modifying the project. |
| get_observabilityA | Read bounded local metrics, runtime counters, and secret-free audit status as structured JSON or a Prometheus text export; no telemetry leaves the process. |
| list_projectsA | List the safe project roots available to SRC and each index status. Use this before querying multiple configured repositories; projects remain independently indexed and queried. |
| get_repository_mapA | Build a bounded, task-focusable repository map of important files and symbols. Ranking uses import-graph centrality plus optional path/symbol focus, so an agent can orient itself before reading source. |
| get_symbol_at_positionA | Resolve the smallest Tree-sitter symbol containing an exact 1-based line and 0-based column. Returns byte-precise ranges and a bounded source body for efficient code navigation. |
| assemble_task_contextB | Prepare a bounded one-call agent dossier combining project profile, revision-aware memory, relevant artifacts, local Git changes, a PageRank-style repository map, and indexed code search. Each layer degrades independently and receives a fair share of the token budget. |
| find_dead_codeA | Conservatively identify unexported functions, methods, classes, and types with no visible references. Read-only heuristic analysis with confidence and limitations; never removes code. |
| get_changed_symbolsA | Read-only Git working-tree analysis that maps changed files and zero-context diff hunks to current source symbols. Includes untracked files, bounded output, and explicit limitations when symbols cannot be resolved. |
| get_project_artifactsB | Discover and search bounded project documentation such as README files, architecture notes, ADRs, specifications, plans, runbooks, security notes, and changelogs without executing or persisting their content. |
| get_project_contextA | Build a bounded local onboarding profile: project type, languages, frameworks, manifests, scripts, workspaces, entrypoints, tests, configuration, documentation, and path aliases. It never executes project commands. |
| semantic_navigationA | Navigate local code with an imported SCIP catalog or allow-listed local language server when available, using definitions, references, implementations, hover, type hierarchies, and diagnostics; otherwise fall back explicitly to bounded Tree-sitter analysis with confidence and coverage metadata. |
| get_symbol_graphB | Build a bounded local symbol-level graph combining modules, definitions, imports, references, calls, inheritance, tests, routes, events, and dependency-injection signals, with trace paths and blast-radius analysis. |
| get_project_memoryA | Read bounded, project-isolated local memory containing decisions, constraints, facts, todos, and notes. It never calls a remote service and marks all stored content as untrusted data. |
| set_project_memoryA | Create, update, or delete one bounded record in the isolated local project memory. Writes are atomic, optimistic-concurrency aware, secret-redacted by default, and never execute project content. |
| get_project_catalogB | Read the bounded, project-isolated local artifact catalog created by refresh_project_catalog, optionally including redacted live document excerpts. |
| refresh_project_catalogA | Scan local project documentation and persist a bounded metadata-only artifact catalog with typed references. It never stores document bodies, contacts remote services, or executes project content. |
| get_git_contextB | Inspect bounded local Git status, diff, history, optional churn hotspots, local revision comparisons, blame, CODEOWNERS, and changed-symbol analysis. It uses only fixed non-remote Git commands, rejects arbitrary command arguments, and never executes project scripts. |
| manage_index_snapshotsA | Create, verify, restore, list, and clean bounded local snapshots of the semantic index. Snapshots never leave the project, restore uses verified files and a recovery snapshot by default, and no project code is executed. |
| run_static_analysisB | Optionally run an installed local ast-grep, Semgrep, or CodeQL analyzer with fixed non-shell arguments, strict path bounds, timeouts, output caps, and redaction. Disabled by default; no project scripts or remote rules are executed. |
| import_scip_indexA | Import a local SCIP JSON export, or ask an installed local scip CLI to print a binary SCIP index as JSON, into the project-isolated catalog used by semantic navigation. No remote service or project script is executed. |
| maintain_indexA | Inspect, compact, and migrate the local LanceDB index with bounded, explicit maintenance operations; no project code is executed. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| src-overview | Learn about SRC capabilities and when to use it for code search and analysis |
| code-search-workflow | Step-by-step guide for searching code with SRC |
| search-tips | Tips for writing effective code search queries |
| project-onboarding | Build a bounded local understanding of an unfamiliar project before searching it |
| architecture-review | Trace the local architecture, boundaries, dependencies, and runtime entrypoints |
| security-review | Perform a bounded local security review without executing project code |
| refactor-impact | Estimate the local blast radius of a symbol or change before editing |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| server_info | MCP server metadata |
| server_capabilities | Discoverable SRC tool catalog and runtime profile |
| app context | Bounded local context view for project project-f53b52ad6d21cceb72dfa78f |
| app map | Bounded local map view for project project-f53b52ad6d21cceb72dfa78f |
| app status | Bounded local status view for project project-f53b52ad6d21cceb72dfa78f |
| app catalog | Bounded local catalog view for project project-f53b52ad6d21cceb72dfa78f |
| app memory | Bounded local memory view for project project-f53b52ad6d21cceb72dfa78f |
TDQS
Scored across 35 tools
Most tools have distinct purposes (search, AST, memory, git, index management). However, some overlap exists: get_symbol_graph vs get_call_graph vs get_dependency_graph, and find_symbols vs list_symbols vs get_symbol_at_position could confuse an agent on which to choose for code navigation. The descriptions help but boundaries are not perfectly crisp.
The naming mostly follows a get_/index_/update_/manage_ verb pattern with clear nouns (e.g., get_git_context, refresh_project_catalog, manage_index_snapshots). Minor deviations like 'semantic_navigation' and 'parse_ast' break the strict verb_noun pattern, but the majority are consistent and readable.
35 tools is heavy for a code search/navigation server. While each tool has a specific niche, the set feels overly granular: many tools serve overlapping code-analysis purposes (e.g., get_call_graph, get_symbol_graph, get_dependency_graph, analyze_impact). This count exceeds the typical well-scoped range and increases selection complexity.
The server covers the full lifecycle: indexing, searching, navigation, graph analysis, memory, artifacts, git, snapshots, and static analysis. Minor gaps exist: no tool for code editing/writing (but perhaps out of scope) and no explicit tool for clearing/resetting the entire index, but core workflows are well-covered.