Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
ATLAS_ROOTNoRoot folder of the project whose Markdown documentation should be indexed. Resolves relative to the client's working directory, so one installation serves every project..

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 indexes the project's design and architecture documentation. READING: For ANY documentation question use atlas_where or atlas_search first — never open the Markdown sources or .atlas/cache with Read/Grep. Those files are large; the index is faster and returns only the relevant section. Flow: atlas_where('topic') -> atlas_read(anchor) for the full text. WRITING: call atlas_set_status and atlas_publish only after tests are green — marking something done is the last step, never the first. Design prose, formulas and balancing numbers are read-only; autonomous writes are limited to status markers, implementation columns and file paths. NEVER write balancing values as a cell coordinate (C14): atlas_sheet_update takes a row_key plus column name and computes the cell itself. DIRECTNESS: one matching tool answers the question in ONE call. Work order status = atlas_status. Open tasks = atlas_tasks. Symbol/file = atlas_code_find. Do NOT additionally run list tools, the CLI, the MCP sources or the index to confirm a result: the tools read the same source and do not lie. A second call is justified only if the first returned an error message. Status and diagnostics are separate: atlas_status returns the work orders, atlas doctor (CLI only, not an MCP tool) checks index health.

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
atlas_whereA

Locate the best-matching documentation section for a topic and return its pointer (~60 tokens) without full text.

Use this tool FIRST for 'where is X documented?', 'which file covers Y?', or 'which section defines Z?'.
Follow up with `atlas_read(anchor)` only if you need the section body, or fall back to `atlas_search`
if you need multiple ranked snippets across documents.

Behavior & Output:
- Read-only, deterministic BM25 lookup against the local SQLite FTS5 index (auto-refreshed before query).
- Returns a JSON string with `{found: true, anchor, heading, path, line, alternatives}` when matched,
  or `{found: false, hint}` when no section matches.
atlas_searchA

Run a BM25 full-text search across documentation sections and return ranked snippets with anchors.

Use this tool for broad or multi-section topics ('where all is armor mentioned?') or when
`atlas_where` returns no single match. Pass a returned `anchor` to `atlas_read` to inspect the full section.

Behavior & Output:
- Read-only lexical search via SQLite FTS5 (no embeddings; project synonyms come from `.atlas/aliases.yml`).
- Returns a JSON string `{query, count, hits: [{anchor, title, path, line, snippet, score}]}`.
  Returns `count: 0` and an empty `hits` list if nothing matches.
atlas_readA

Read the Markdown content of a single documentation section by its anchor with character-budget pagination.

Use this tool after obtaining an `anchor` from `atlas_where`, `atlas_search`, or `atlas_outline`.
Never read raw documentation files from disk when `atlas_read` can fetch the exact section.

Behavior & Output:
- Read-only lookup from the local documentation index.
- Returns a JSON string `{anchor, heading, path, lines, content, truncated, next_offset}`.
  If the anchor does not exist, returns `{error, suggestions}` with the closest valid anchors.
atlas_outlineA

Return the hierarchical table of contents (headings and section anchors) across indexed documentation.

Use this tool when exploring an unfamiliar project structure, browsing available documents,
or when keyword searches (`atlas_where` / `atlas_search`) did not match your query terms.

Behavior & Output:
- Read-only, side-effect-free query of indexed document headings.
- Returns a JSON string `{doc, outline, truncated}` where `outline` lists each heading level,
  title, and `anchor` ready for `atlas_read`.
atlas_tasksA

List design and development action items (- [ ] / - [x] checkboxes) extracted from all documentation sections.

Use this tool to inspect granular checklist items embedded in specs. To inspect numbered
high-level Work Orders (`Work Order N — ⬜ OPEN / ✅ DONE`), use `atlas_status` instead.

Behavior & Output:
- Read-only query over indexed Markdown checkboxes.
- Returns a JSON string `{status, owner, count, tasks: [{text, done, owner, tags, anchor, path, line}]}`.
atlas_linksA

Inspect a documentation section's relationships: linked source files (implements), tags, cross-references, and sibling sections.

Use this tool to answer 'which code files implement this spec section?' or 'what other sections
reference or belong to the same document as this anchor?'.

Behavior & Output:
- Read-only lookup against the local section graph and frontmatter metadata (`implements`, `tags`).
- Returns a JSON string `{anchor, heading, path, implements: [...], tags: [...], outgoing_links: [...], incoming_links: [...], siblings: [...]}`
  or `{error}` if the anchor is unknown.
atlas_briefA

Assemble a self-contained Markdown task brief for a coding agent or subagent.

Use this tool before starting or delegating a feature task. It bundles the top matching spec
sections (with stable anchors), linked source file paths, open tasks, project guardrails, and
the verified checkoff command so the subagent does not need to search from scratch.

Behavior & Output:
- Read-only aggregation of indexed documentation sections and code metadata.
- Returns a formatted Markdown brief string ready to paste into a subagent prompt.
atlas_publishA

Append a new Work Order status entry to the documentation — gated by a code-wiring check and verified by read-back.

Use this tool as the FINAL step after tests pass to record a new Work Order in the bound Google Doc
or local managed Markdown file (`docs/ARCHITECTURE.md`). If the Work Order heading already exists and
you only need to flip `⬜ OPEN` to `✅ DONE`, use `atlas_set_status` instead.

Behavior & Output:
- Pre-write wiring gate: when `status='done'`, verifies that every symbol in `verify_symbols` (and
  `.atlas/wo-symbols.yml`) is both defined and referenced/called (`calls + references > 0`). If any
  symbol is dead code, returns `{written: false, refused: true, refusal: "..."}` without touching disk/network.
- Atomic verified write: appends the formatted status line, reads the document back to confirm presence,
  logs to `.atlas/mutations.log`, and returns `{written: true, verified: true, wo, line}`.
atlas_set_statusA

Flip the status marker of an existing Work Order (⬜ OPEN <-> ✅ DONE) or Markdown checkbox task (- [ ] <-> - [x]).

Use this tool as the final step when completing an existing open Work Order (`wo=N`) or a checkbox
task from `atlas_tasks` (`task='...'`). To append a brand-new Work Order entry that is not yet in the
document, use `atlas_publish` instead.

Behavior & Output:
- Pre-write wiring gate: when `status='done'`, checks that all symbols in `verify_symbols` (and
  `.atlas/wo-symbols.yml`) are defined and have at least one caller/reference. Refuses with
  `{changed: false, refused: true, refusal: "..."}` if any symbol is unwired.
- Verified in-place update: updates the status marker or checkbox in the local Markdown file (or active
  Google Doc tab for Work Orders), verifies by reading back, and returns JSON `{changed, verified, status}`.
atlas_sheet_updateA

Update specific cells of an existing spreadsheet row by row_key and column header name (never by cell coordinate).

Use this tool to modify balancing values, implementation markers, or metadata in an existing row.
To add a brand-new row to a tab, use `atlas_sheet_append`. If unsure of tab names, call `atlas_sheets` first.

Behavior & Output:
- Resolves the exact cell range from `row_key` + header names, preventing off-by-one row overwrites.
- If a column name is unknown, aborts without writing and returns the list of valid column headers.
- Returns JSON `{ok, sheet, tab, row, key, changes, verified, resynced, dry_run}` and refreshes the local search index.
atlas_sheet_appendA

Append a new row to a spreadsheet tab by mapping column header names to values.

Use this tool when adding a new entry (e.g. a new unit, item, or parameter row) to a bound spreadsheet.
To modify cells of an existing row, use `atlas_sheet_update` instead.

Behavior & Output:
- Not idempotent: each non-dry-run call appends a new row at the bottom of the table and verifies it by read-back.
- Validates all keys in `values` against the tab's header row before writing.
- Returns JSON `{ok, sheet, tab, values, range, verified, resynced, dry_run}` and updates the local search index.
atlas_sheetsA

List all spreadsheets bound to the project along with their worksheet tab names.

Takes no parameters. Call this tool before `atlas_sheet_update` or `atlas_sheet_append`
whenever you need to discover the exact `sheet` name/ID or valid `tab` names.

Behavior & Output:
- Read-only metadata lookup; returns spreadsheet and tab names without dumping cell contents.
- Returns JSON `{spreadsheets: [{name, id, tabs: [...]}]}` or `{spreadsheets: [], hint: "..."}`
  when no spreadsheet has been synced yet.
atlas_code_findA

Locate function or class definitions across the codebase (file, line, signature) and optionally inspect call sites.

Use this tool BEFORE reading source files to find where a symbol lives (~30 tokens per signature vs.
thousands of tokens for a full file) or set `usage=True` to check if a symbol is actually called before
marking a task done. Supports GDScript (`.gd`/`.tscn`), Python, TypeScript/JavaScript, Rust, C#, Go,
Java, Kotlin, and Swift.

Behavior & Output:
- Read-only static scan of project source files; ignores build directories and `.atlas/`.
- Returns a formatted summary of matching definitions (`path:line — signature`) and, when `usage=True`,
  the caller/reference count and file:line call sites for each symbol.
atlas_lintA

Audit indexed documentation for structural and formatting problems that degrade retrieval quality.

Takes no parameters. Checks managed documentation for duplicate section anchors, empty headings,
oversized sections (>8,000 chars), Work Orders missing a status marker (`⬜`/`🚧`/`✅`), and broken
`implements:` code file paths. Use this tool after editing documentation or running `atlas init`.

Behavior & Output:
- Read-only structural check; respects `.atlas/managed.json` (separating managed docs from legacy discovered docs).
- Returns a JSON string `{managed_issues: [...], discovered_hints: [...], clean: bool}` detailing each issue by file and line.
atlas_statusA

Return the complete list of documented Work Orders (⬜ OPEN, 🚧 IN PROGRESS, ✅ DONE) and index freshness.

Takes no parameters. Use this tool first when asked about project progress, completed milestones,
or which Work Order is next — one call returns the authoritative list without reading documentation files.
For granular Markdown checkboxes (`- [ ]`), use `atlas_tasks` instead.

Behavior & Output:
- Read-only query over all Work Order headings/entries in the index (up to 60 orders).
- Returns a human- and agent-readable summary starting with the index freshness timestamp,
  total counts (`done` / `open`), and one line per Work Order (`WO # — status — title (anchor)`).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
resource_outlineFull document structure as text.

TDQS

A4.4/5.0

Scored across 15 tools

Disambiguation4/5

Most tools target a clearly distinct resource+action (read vs outline, status vs tasks, set_status vs publish, sheet_update vs sheet_append), and descriptions explicitly cross-reference when to use each alternative. The only genuine overlaps are atlas_where vs atlas_search (both BM25 lookups over the same index) and atlas_status vs atlas_tasks, but the descriptions disambiguate those well enough that misselection is unlikely.

Naming Consistency4/5

All names use a consistent snake_case with the atlas_ prefix, which is the strongest consistency signal here. There is minor variation in convention—some are verb-first (atlas_read, atlas_publish, atlas_set_status), others noun-first (atlas_status, atlas_tasks, atlas_sheets), and subresource ordering differs (atlas_code_find vs atlas_sheet_update)—but the pattern stays readable.

Tool Count5/5

Fifteen tools is well within a healthy scope for a documentation/project-memory server and each maps to a distinct capability (search, read, outline, links, tasks, status, brief, publish, status flip, lint, code find, and three sheet operations). Nothing feels redundant or padded.

Completeness4/5

The documentation lifecycle is thoroughly covered: discover (where/search/outline), inspect (read/links/tasks/status), act (brief/publish/set_status), plus code lookup and lint. Minor gaps remain—there is no spreadsheet cell/row read tool (only list/update/append) and no delete operations for Work Orders or rows—but these are workaroundable and do not block core workflows.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues