Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
CODEATLAS_GUARDNoControls the Claude Code PreToolUse guard. Set to 'off' to disable the guard; set to 'strict' to also redirect whole-file Read calls in addition to denying Grep/Glob and grep/rg/find.
CODEATLAS_ALLOW_ANY_ROOTNoSet to '1' to allow CodeAtlas to index non-project directories (e.g., home directory, system folders), overriding the default safety restriction.

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": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
index_statusA

Index health: file/symbol counts, watcher state, dashboard URL, last update time.

index_repoA

Force a re-scan of the repository. The index already auto-updates on file changes; use full=True after changing .gitignore or if results look stale.

repo_overviewA

Start here: languages, top directories, hub files, entry points, key symbols, finding counts (~400 tokens).

repo_mapA

Complete map of the repository: every file with its symbols (classes with their methods, functions with signatures), files ordered by PageRank. Nothing is cut unless token_budget is given, in which case only the top-ranked files/symbols that fit are shown. focus_paths/focus_names bias the ranking toward what you are working on. Use it instead of listing or reading files.

task_contextA

One call to start a task: the symbols relevant to the task text (BM25 over names/signatures/docs, boosted by PageRank and graph proximity), with source for the strongest ones, plus tests and config/docs that mention the terms. scope limits to a path prefix (e.g. "backend/src/services"). Always fits an adaptive budget by default (set token_budget to override); each item carries a 'why' and an expand handle. Reports truncation and index version.

change_contextA

Git diff blast radius: changed/removed symbols, transitive consumers, config/schema dependencies, and candidate tests with evidence. comparison: working (includes staged), staged, or branch (HEAD). merge_base=True compares a feature branch against its common ancestor with base_ref. Reports caps, uncertainty and index versions; automatic budgets adapt to change risk and fanout. Set token_budget to override. Does not run tests or modify Git.

relationshipsB

Evidence-backed code/config/schema dependencies. source consumes target; direction=in finds consumers of path, out finds dependencies. Includes unresolved local targets and pagination.

programming_patternsB

Explain 12 programming patterns at actual source locations, with syntax evidence and confidence. Filter by file/path and pattern ID; catalogue=True lists the supported concepts without source scans.

list_filesB

List indexed source files under a path prefix with language, line and symbol counts.

file_outlineA

Tree of classes/functions/methods in a file with line ranges, signatures, reference counts, imports and importers. Read this instead of the file.

find_symbolsB

Find definitions by name (exact, prefix, substring, then fuzzy CamelCase words). kind filters by function|method|class|interface|type|enum|struct|module. path filters by path substring.

symbolA

Everything about one symbol: location, signature, doc, complexity, members, callers, callees. name may be plain (foo), qualified (Class.foo) or path:line. Use path= to disambiguate.

symbol_sourceC

Source text of one symbol (or path:start-end range) with line numbers. Cheaper than reading the file.

referencesA

Every place a name is used, grouped by file with line numbers and enclosing symbol. When path (or a qualified name) pins one definition, only references resolving to it are listed. Reports the true total, how many are shown, and a next offset for continuation. kind: call | new | arg | ref | import.

impactA

Blast radius: transitive callers of a symbol up to depth hops, affected files and tests. Run before changing a signature or behaviour.

triggersB

What causes a symbol to run: route/event decorators, callback registrations (addEventListener, app.get, subscribe...), direct callers, owning class. Answers 'what triggers what'.

dependenciesC

File-level imports (resolved to repo files), external packages, importers and transitive dependents.

module_graphC

Directory-level import graph (which modules depend on which), aggregated at the given path depth.

hotspotsC

Most complex and longest functions, largest files, key symbols by PageRank, import cycles.

unreferencedB

Dead-code candidates: functions/classes with no references anywhere. Verify with triggers/grep before deleting.

findingsB

Static findings from the index: TAG_TODO/TAG_FIXME/TAG_BUG comment tags, EMPTY_CATCH, SWALLOWED_EXCEPTION, BARE_EXCEPT. Filter by code prefix or path.

grepA

Regex search over indexed source files (smart case). glob like '.ts' or 'backend/'. Use for strings, config keys and dynamic names the symbol index cannot see.

replace_symbolA

Replace exactly one declaration (its syntax-tree span incl. decorators/export) with new_text, re-indented. Neighbours on the same line are untouched. The new file is parsed first and refused if it adds syntax errors (force=True overrides). Pass expected_hash (old_hash from a previous call) to guard against concurrent changes. Returns old text + hashes; re-indexes immediately. dry_run previews.

insert_codeB

Insert new_text on its own lines before or after an existing symbol (where='before'|'after'), matching its indentation. Parse-validated before writing.

rename_symbolA

Rename a symbol at its definition and every reference that resolves to it (identifier nodes only: strings, comments and same-named symbols elsewhere are untouched; ambiguous references are listed and skipped). Defaults to dry_run=True: review the plan, then call again with dry_run=False.

next_snipeA

The highest-value isolated issue to fix next (your own in-progress snipe first). Returns the problem, evidence, suspect symbol with confidence, related symbols, context cost, risk and the verification tests. Pass agent="" so several agents never pick the same item.

claim_snipeB

Take ownership of an issue (state FIXING) and snapshot its files so verify_snipe can measure the patch surface. Returns level-1 context (symbol names + ranked candidates).

get_snipe_contextA

Lazy context for an issue. Climb only as high as needed: 0 summary, 1 symbol names + candidates with evidence/counter-evidence, 2 signatures, 3 implementation bodies of suspect + related, 4 callers and dependencies, 5 the full suspect file, 6 subsystem context (task_context).

verify_snipeB

Evaluate outward from what you changed: level 1 parse check + dead-reference check + targeted tests; level 2 tests of callers (only if level 1 passed); level 3 full suite only when deep=True or risk is high. PASS -> DONE, FAIL -> back to FIXING with the failure as evidence, blast radius over the limit -> SNIPE ABORTED (promoted to INVESTIGATE).

snipe_reportB

Feed external evidence: paste failing test / typecheck / lint / runtime output. Each failing test or distinct location becomes an issue, narrowed to a suspect symbol. source: test | typecheck | lint | runtime.

snipe_scanA

Scan for concrete problems. Without run: cheap static pass (unresolved relative imports become issues; complexity/cycles/swallowed errors become dormant opportunities). run='tests'|'typecheck'|'lint' also runs the configured command and turns failures into issues. Index deltas are scanned automatically on every save.

snipe_boardC

Ready-to-snipe list (score, symbols, tokens, risk), investigating, current work per agent, counts.

snipe_listC

List records. kind: issue | opportunity. state: comma list of FOUND,TARGETED,FIXING,VERIFYING,DONE,BLOCKED. priority: 'SNIPE NOW' | INVESTIGATE | DEFER | IGNORE.

snipe_itemC

Full record of one issue/opportunity: evidence, candidates, factors, notes.

snipe_addB

Record a concrete defect (kind=issue) or a dormant improvement (kind=opportunity). Give evidence as 'path:line' or symbol names so NARROW can find the suspect. Do not fix drive-by findings; log them.

snipe_updateC

Change state (FOUND|TARGETED|FIXING|VERIFYING|DONE|BLOCKED), priority, suspect or kind; add a note.

snipe_abortC

Stop condition: the fix stopped being a snipe (schema migration, public API change, many modules). Marks it BLOCKED / INVESTIGATE with the reason so nobody wanders for 40 minutes.

snipe_configC

Configure verification. test_cmd is a template with {file} (e.g. 'npx vitest run {file}', 'python -m pytest {file} -q'); auto-detected from package.json/pyproject when unset. Stop-condition limits too.

Prompts

Interactive templates invoked by user choice

NameDescription
onboardHow to work on this repo with CodeAtlas.

Resources

Contextual data attached and managed by the client

NameDescription
snipe_mdThe SNIPE.md board.
map_resourceRanked repository map (2000 tokens).

TDQS

C2.9/5.0

Scored across 38 tools

Disambiguation4/5

Tools generally have distinct purposes, with clear guidance for high-level entry points (repo_overview, repo_map, task_context, change_context) and separate refactoring/snipe workflows. However, several retrieval tools overlap in scope (symbol vs find_symbols vs symbol_source, relationships vs dependencies vs module_graph), so an agent may still need to study descriptions carefully.

Naming Consistency3/5

Names are all snake_case, but conventions are mixed: many are bare nouns (symbol, references, impact, findings) while others use verb_noun (find_symbols, replace_symbol, verify_snipe), and one uses get_ (get_snipe_context). The pattern is readable but not consistently predictable.

Tool Count2/5

38 tools is far above the ideal 3–15 range and qualifies as too many for a single MCP server. While the domain is complex, many snipe and context tools could be consolidated or hidden behind higher-level operations.

Completeness4/5

Coverage is broad: indexing, repo/symbol exploration, dependency analysis, refactoring, grep, static findings, and a full issue-triage/verification workflow. Minor gaps remain (e.g., no explicit symbol deletion/move or multi-symbol refactor), but agents can work around them with replace_symbol/insert_code.

Maintenance

ActivityMaintained
ResponsivenessNo issues