Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
GROVE_HOMENoThe data directory where Grove keeps its SQLite file grove.db. Used when --home DIR is not given; otherwise defaults to ~/.grove.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

Grove is a local workshop for agents: it maps a codebase into a three-layer blueprint (what docs declare, what the code appears to do, what tests appear to prove), keeps lasting knowledge, and tracks local work items toward a reviewed change. It does not write code, and it does not open pull requests. Scans are read-only and deterministic; findings are heuristics. Nothing is sent to GitHub or any other service. Typical walk: grove_project_create, grove_scan, grove_gaps, grove_recommend_next.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
grove_statusA

Report Grove's version, data directory, database path and project count. Use it first to confirm which Grove home this session is using. Grove is local only: scans are read-only and nothing is sent to GitHub or any other service.

grove_project_createA

Register a codebase as a Grove project: a unique name plus the root directory to map. Use once per codebase, before grove_scan. Only a row in Grove's own database is written; the directory itself is not touched. Grove is local only: scans are read-only and nothing is sent to GitHub or any other service.

grove_project_listA

List registered projects, paginated. Use to find a project name or id. Grove is local only: scans are read-only and nothing is sent to GitHub or any other service.

grove_project_getA

Get one project by name or id, with last_scanned_at, the last scan's cap warnings, and item, finding and work-item counts. Use to check whether a scan is recent or was cut short by a cap. Grove is local only: scans are read-only and nothing is sent to GitHub or any other service.

grove_scanA

Scan a project's root directory and rebuild its blueprint (declared / actual / tests layers), then recompute gap findings. Use after creating a project and whenever the code or docs have changed. The scan is deterministic and read-only: it never writes inside the project, honours .gitignore, and stops at the file and time caps (reported in the result). Returns counts per layer and per finding kind plus a small sample; page the rest with grove_gaps and grove_blueprint_get. It replaces earlier scan-derived items and findings but keeps knowledge, work items and map-ingested items. Grove is local only: scans are read-only and nothing is sent to GitHub or any other service.

grove_blueprint_getA

Read a project's blueprint items, paginated: what docs declare (declared), what the code appears to contain (actual: modules and symbol names) and what tests appear to prove (tests: test names). Optionally filter by layer and by a case-insensitive substring of title, body or path. Reads Grove's stored result of the last scan; it does not rescan. Grove is local only: scans are read-only and nothing is sent to GitHub or any other service.

grove_gapsA

List a project's gap findings, paginated, with counts per kind. Kinds: declared_untested (docs state it, no test name overlaps), declared_unseen (docs state it, no code name overlaps), actual_undocumented (module never mentioned in docs), map_untested (an ingested map marks it untested). Every finding is a token-overlap heuristic to be checked by reading the code, not a verdict. Use after grove_scan or grove_ingest_map. Grove is local only: scans are read-only and nothing is sent to GitHub or any other service.

grove_ingest_mapA

Ingest a markdown architecture map (for example a MAP.md) into a project. The file is only read, never modified. Its full text is stored as a knowledge document (key from the file name; a new revision each time), and blocks carrying the evidence labels documented / observed-in-code / untested seed declared items, actual items and map_untested findings. Use when a human or agent has written a map of the codebase. Re-ingesting replaces what the same map seeded before. Grove is local only: scans are read-only and nothing is sent to GitHub or any other service.

grove_knowledge_writeA

Save a lasting note (a decision, a convention, a lesson) under a stable slug key. Writing an existing key adds a new revision; earlier revisions are kept and never overwritten. Give a project to scope the note to it, or omit project for a workspace-level note. Use for knowledge worth finding again in later sessions, not for scratch notes. Grove is local only: scans are read-only and nothing is sent to GitHub or any other service.

grove_knowledge_getA

Fetch a knowledge document by key: the latest revision, or a given revision number. Keys are unique per project (and at workspace level); pass project when the same key exists in more than one project. Without project, a workspace-level document wins. Use after grove_knowledge_search to read a full document. Grove is local only: scans are read-only and nothing is sent to GitHub or any other service.

grove_knowledge_searchA

Full-text search (SQLite FTS5) over the titles and bodies of the latest revision of every knowledge document, including ingested maps. All words must match; end a word with * for a prefix match. Returns ranked hits with a snippet, paginated; fetch a full document with grove_knowledge_get. Use before starting work, to recall what is already known. Grove is local only: scans are read-only and nothing is sent to GitHub or any other service.

grove_work_createA

Create a local work item for a project, starting in status ready. issue_url is stored as plain text for reference and is never fetched or opened. Use to record a unit of work that should end in a reviewed change; Grove tracks it but does not implement it or open a pull request. Grove is local only: scans are read-only and nothing is sent to GitHub or any other service.

grove_work_listA

List a project's work items, paginated, optionally only those in one status (ready, in_progress, review, done, blocked). Use to see what is open. Grove is local only: scans are read-only and nothing is sent to GitHub or any other service.

grove_work_getA

Get one work item by id, with its plan and notes. Use before continuing a piece of work. Grove is local only: scans are read-only and nothing is sent to GitHub or any other service.

grove_work_updateA

Update a work item: any of status, plan, notes, title (at least one). Each given field replaces the stored value. Use to move work through ready -> in_progress -> review -> done (or blocked) and to keep the plan and notes current. This only updates Grove's local record. Grove is local only: scans are read-only and nothing is sent to GitHub or any other service.

grove_recommend_nextA

Suggest one next step for a project by fixed priority, with a short rationale and the finding or work item ids behind it: map_untested findings first, then declared_untested findings whose words also appear in the code, then other declared_untested findings, then the oldest ready work item, then actual_undocumented findings. A deterministic heuristic; no model is called. Grove is local only: scans are read-only and nothing is sent to GitHub or any other service.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.9/5.0

Scored across 16 tools

Disambiguation4/5

Each tool targets a distinct resource+action: project CRUD, scan, blueprint read, gap listing, map ingest, knowledge, work items, and recommendation are all clearly separated, and descriptions explain when to use which (e.g. scan vs blueprint_get vs gaps). The only mild overlap is grove_blueprint_get / grove_gaps / grove_recommend_next, since all three surface scan-derived findings, but their scopes and outputs differ enough to choose confidently.

Naming Consistency4/5

Most names follow a predictable grove_<resource>_<verb> pattern (project_create, project_list, project_get, knowledge_write/get/search, work_create/list/get/update), all snake_case with a uniform prefix. A handful deviate in ordering or shape (grove_scan, grove_status, grove_gaps, grove_ingest_map, grove_recommend_next), which makes the set slightly less mechanical but still fully readable.

Tool Count4/5

Sixteen tools sit at the upper edge of the comfortable range but each one maps to a real operation across four sub-areas (projects/scanning, knowledge, work items, recommendation), so nothing feels padded. It is slightly heavy for a local analysis tool, but no tool is obviously redundant.

Completeness4/5

The lifecycle is well covered: project register/list/get, scan and re-scan, blueprint and gap retrieval, knowledge write/get/search with revisions, and full work-item create/list/get/update plus a recommendation entry point. The notable gaps are the absence of project update/delete (no way to remove or rename a registered project) and no deletion/cleanup for knowledge or work items.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues