Skip to main content
Glama
kvnpetit

SRC (Structured Repo Context)

by kvnpetit

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
LOG_LEVELNoLog verbosityinfo
CHUNK_SIZENoCharacters per chunk1000
CHUNK_OVERLAPNoOverlap between chunks200
EMBEDDING_MODELNoModel for embeddingsnomic-embed-text
OLLAMA_BASE_URLNoOllama API endpointhttp://localhost:11434
EMBEDDING_BATCH_SIZENoBatch size for embedding10
EMBEDDING_DIMENSIONSNoVector dimensions768

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

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": true
}
resources
{
  "listChanged": true
}
extensions
{
  "io.modelcontextprotocol/tasks": {}
}

Tools

Functions exposed to the LLM to take actions

NameDescription
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

NameDescription
src-overviewLearn about SRC capabilities and when to use it for code search and analysis
code-search-workflowStep-by-step guide for searching code with SRC
search-tipsTips for writing effective code search queries
project-onboardingBuild a bounded local understanding of an unfamiliar project before searching it
architecture-reviewTrace the local architecture, boundaries, dependencies, and runtime entrypoints
security-reviewPerform a bounded local security review without executing project code
refactor-impactEstimate the local blast radius of a symbol or change before editing

Resources

Contextual data attached and managed by the client

NameDescription
server_infoMCP server metadata
server_capabilitiesDiscoverable SRC tool catalog and runtime profile
app contextBounded local context view for project project-f53b52ad6d21cceb72dfa78f
app mapBounded local map view for project project-f53b52ad6d21cceb72dfa78f
app statusBounded local status view for project project-f53b52ad6d21cceb72dfa78f
app catalogBounded local catalog view for project project-f53b52ad6d21cceb72dfa78f
app memoryBounded local memory view for project project-f53b52ad6d21cceb72dfa78f

TDQS

A3.5/5.0

Scored across 35 tools

Disambiguation4/5

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.

Naming Consistency4/5

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.

Tool Count2/5

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.

Completeness4/5

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.

Maintenance

ActivityMaintained
ResponsivenessNo issues