Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

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
}

Tools

Functions exposed to the LLM to take actions

NameDescription
use_worktreeA

Switch this server to another git worktree of the same repository, for the rest of this session: every later call reads and writes that checkout. Call it right after creating the worktree you will implement in, so initiative edits land in that branch's commit. With no path (or the original checkout's path), switch back — do that after merging, before removing the worktree. Returns the checkout now in use.

create_collectionA

Mark a folder as a collection: adds brindley: 1 and the given details to its README.md front-matter, creating the folder and README if needed. Works on a folder that already holds numbered initiative files. The first collection in a repo also returns the agent-instructions snippet for AGENTS.md / CLAUDE.md.

update_collectionC

Edit a collection README's details, including its status (active | done | abandoned).

versionA

The Brindley server's version (computed from git tags + Conventional Commits) and build commit.

ignoreA

Add or remove a collection's ignore: patterns — numbered files that are not initiatives (companion notes, reviews). .gitignore semantics, relative to the collection folder: # comments, ! re-includes, leading / anchors, trailing / = folder, no / = any depth. Use dry_run to preview which files a change would ignore. Ignored numbers are still never reused.

collectionsB

Every collection with its details, counts by initiative status, and number ready.

fieldsA

Every front-matter field an initiative (ticket/issue) can have in a collection, and the values each accepts: statuses and their aliases, types, tags, scoring dimensions (in ranking order, with any default and whether required), and the free-text fields — with the tool that sets each. Give a collection or an initiative ref; with neither, every collection.

listC

List initiatives (a.k.a. tickets or issues) across the repo, or in one collection, optionally filtered.

getB

Full detail of one initiative (ticket/issue), including its dependency report (each dependency classified satisfied / blocking / external / missing), dependants, open questions and acceptance criteria.

readyB

Initiatives (tickets/issues) that are designed with nothing blocking — what an agent can pick up now — in suggested order (prerequisites first).

reportA

Write a one-page progress report for people outside the team — a self-contained HTML file (default build/brindley-report.html) — from the collections and their git history: headline figures, work complete against scope over time, what was delivered, added and taken out this period, workstreams, and what needs attention. Returns the file's path and the figures. Changes no initiative.

graphA

Dependency graph as an adjacency list plus Mermaid: a collection's active work, one initiative's neighbourhood, or a tag (theme) across collections.

questionsA

Unresolved open questions, grouped by initiative. Abandoned and superseded initiatives are left out — dropping the work settles them — unless asked for by ref.

next_questionA

The next unresolved blocking question in one initiative (the first labelled after after, if given), with its label (id) and the count remaining. Drives the design-review conversation.

tagsA

Every tag in use plus declared-but-unused ones, with descriptions, counts by status, and the theme overview doc if one exists (a doc whose front-matter says theme: <tag>).

milestonesA

Every milestone (a doc with milestone: <slug> front-matter) and where it stands: reached, not reached or unspecified; done against counted members; what is still to do (initiatives and included milestones); unconfirmed external members; and when it was reached, from git history. Give milestone (a slug) for just one, with its members.

check_readyA

Is this initiative (ticket/issue) complete and ready to work on? Runs the preflight the implement and spike briefs start with: status, dependencies, blocking open questions, acceptance criteria (or ## Measures for a spike), validation errors. ready: false means stop and report, don't start.

validateA

Check initiatives and collection structure: missing or unknown statuses, status vs folder vs body-prose disagreements, files not in their collection's status folder, duplicate numbers, dangling references, cycles, broken links (with where a moved file now lives), stale READMEs. Returns errors and warnings with file and line.

check_docsA

Lint project docs for history phrasing, design debate and links into initiatives (docs must describe only what the code is). Defaults to docs changed vs HEAD.

createB

Create a new initiative (ticket/issue). The number is coined automatically by scanning the working tree, other worktrees, branches and history. A folder path that isn't a collection yet is marked as one. A milestone this reaches, or stops being reached, is reported under milestones.

updateA

Edit an initiative's (ticket's/issue's) front-matter fields or H1, or replace a named body section — including on a done initiative, which is how settled work is refined (no status change needed). status records the status an initiative already has when its front-matter has none (no lifecycle checks); to change a recorded status, use set_status. Cannot change its number or filename. A milestone this reaches, or stops being reached, is reported under milestones.

fixA

Repair the validate findings that have one obvious fix, editing text in place (never renaming or moving a file): a broken link whose filename matches exactly one initiative in its collection, depends_on / related front-matter (turned into links under ## Dependencies / ## Related), and open questions without a label (given the labels they are reported with). Anything ambiguous is listed in unfixed. Dry run by default: returns each edit (file, line, before, after); pass dry_run: false to write. Padding is fixed by repad, numbers by renumber.

rename_collectionA

Move a collection to a new folder, rewriting every relative link into it from anywhere in the repo and out of it from inside. If its name comes from its folder (no name: in its README), the name changes too and "#" references by the old name, path or automatic alias are rewritten; explicit aliases are kept. Refuses a destination that exists or is inside another collection, and a new name another collection uses. dry_run: true returns the plan.

renumberA

Give an initiative a new number — fixing a number collision after a merge. Renames its file and asset folder (keeping the slug, padded to the collection's width) and rewrites every link and "#" reference to it across the repo. to defaults to the next number, coined as create does. For one file of a duplicate-number pair, pass ref as its path. dry_run: true returns the plan without writing.

tidyA

For a collection that declares folders: (status → folder), move every initiative to where its status belongs — its folder, or the top of the collection — with its asset folder, rewriting every link to them. Dry run by default: returns each move and link rewrite; pass dry_run: false to apply. Status changes keep things in step after that; tidy is for files already out of place.

repadA

Pad every initiative number in a collection to one width (01-, 001-) — the given width, or the width most of its files use — renaming the files and their asset folders and rewriting every link to them across the repo. Dry run by default: returns each rename and link rewrite; pass dry_run: false to apply. Refuses a width too small for the highest number.

batch_updateA

Apply update-style changes to many initiatives (tickets/issues) in one call — e.g. recording statuses across an adopted folder. Each entry is a ref plus any of status, reason, type, owner, tags, status_note, docs, dimensions; status: "from-text" takes the status from the initiative's Status: line or ## Status section. Every entry is checked first: if any fails, nothing is written and every failure is returned. dry_run: true shows what each file would get. A milestone this reaches, or stops being reached, is reported under milestones.

set_statusA

Change an initiative's (ticket's/issue's) status, enforcing the lifecycle: designed needs no blocking open questions; in-progress needs ready; done goes through complete. Abandoning needs a reason; abandoned, superseded and deferred work gets a callout under its title saying so, which is removed when it is reopened. A milestone this reaches, or stops being reached, is reported under milestones.

add_questionA

Add an open question — one decision per question: pose several as separate questions (warns when the text looks like more than one). It is labelled with the next free label (returned as id); don't write one yourself. A blocking question moves a designed initiative back to draft. Use implementation=true for questions deliberately left to the implementer.

split_questionA

Split an open question that poses several decisions into one question per decision, in its place and order, in one write. Each part is text or { text, implementation?, answer? }: parts inherit the question's (implementation) marker unless they set their own, and a part with an answer is settled as it is written — recorded in record_in (default "Decisions"), or kept ticked with mode "tick", as resolve_question does. Parts are labelled under the question's label (Q3 → Q3.1, Q3.2), and Q3 stops existing. Returns the parts left open with their labels.

resolve_questionA

Resolve an open question, named by its label (id, e.g. "Q3") or match. Default mode "remove": delete it and record the decision under its label in record_in (default "Decisions", e.g. "Agreed direction"). Mode "tick": keep it as "- [x] Q3 … — answer".

set_dependenciesA

Add or remove dependency links. Dependencies are the links under an initiative's ## Dependencies heading (blocking); ## Related links are non-blocking. Adds a bullet with a relative link (and optional why); removes the bullet(s) linking to the target — bullets only: a link inside a paragraph is left in place and reported with its line, to edit by hand. Refuses unknown initiatives and cycles.

completeA

Mark an initiative (ticket/issue) done — "close" it. docs_impact is required: the project doc paths updated in this change, or "none: ". Reports which initiatives became ready, and any milestone it reaches (milestones).

regenerate_readmesA

Rebuild the generated README blocks (tables + Mermaid). check=true only reports what is stale (for CI).

briefA

The brief for one of Brindley's workflows — the text of the prompt of the same name, for agents and skills that cannot fetch MCP prompts: design-review (work through an initiative's open questions with the user), implement (hand-off brief for implementing one initiative), spike (build and measure a spike) or triage (review the initiatives). ref is required except for triage, which takes an optional collection. Follow the brief it returns.

Prompts

Interactive templates invoked by user choice

NameDescription
design-reviewWork through an initiative's (ticket's/issue's) open questions with the user, one at a time, grounded in the code.
implementHand-off brief for an agent implementing one initiative (ticket/issue).
spikeHand-off brief for a spike (type: spike): build enough to measure what the initiative's ## Measures asks, record ## Findings, and keep the code on its own branch — it may become the basis of the real implementation.
triageReview the initiatives (tickets/issues): stale drafts, unresolved questions, blocked chains, unconfirmed external dependencies, and what to pick next.

Resources

Contextual data attached and managed by the client

NameDescription
indexOverview of all collections, cross-collection dependencies and themes
Brindley roadmapOne collection's overview: tables and dependency graph
initiatives#1 migrate tool for numbered + completed/ collectionsThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#2 renumber tool for post-merge number collisionsThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#3 rename_collection toolThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#4 Cycle errors advise where back-references belongThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#5 set_dependencies explains links it cannot removeThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#6 Record status without lifecycle checksThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#7 Infer a missing status from the initiative's proseThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#8 Fix mode for mechanical validate findingsThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#9 Suggest a home for companion notesThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#10 Name the base folder in path errorsThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#11 batch_update toolThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#12 Themes section in the collection READMEThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#13 Consistent zero-padded numberingThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#14 README front-matter controls what the dependency graph showsThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#15 Show in-progress work blocked on an open questionThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#16 Resolve settled questions in bulkThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#17 Record why an initiative was abandonedThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#18 Work on the worktree the agent is implementing inThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#19 Scoring dimensions on initiativesThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#20 Configurable columns in the generated README tablesThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#21 Computed scores such as WSJFThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#22 Release history and what's new on the docs siteThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#23 Exclusions in docs globsThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#24 Opt-in status folders that Brindley keeps in stepThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#25 Show where in-progress work is being builtThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#26 Record the merge commit or PR when work is doneThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#27 Inline the collection's agent file in the implement briefThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#28 Write and keep the agent rules in AGENTS.md / CLAUDE.mdThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#29 Tag cloud in the collection READMEThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#30 One-page HTML progress dashboardThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#31 Spike: progress dashboard designs from git historyThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#32 Split a compound open question into separate questionsThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#33 MilestonesThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#34 Serve the progress report live over local HTTPThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#35 Stable question labels instead of positional indexesThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#36 Check initiatives against the project's design principlesThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#37 Publish to npm only through trusted publishingThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#38 Protect release tags and mainThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#39 Restrict the npm deployment environmentThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#40 Release only commits on mainThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#41 Pin the release toolchain and keep it updatedThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#42 Harden the maintainer's GitHub and npm accountsThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#43 Writes no longer regenerate READMEsThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#44 A JSON snapshot that every view renders fromThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#45 Install Brindley as a Claude Code pluginThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
initiatives#46 Submit the Brindley plugin to Anthropic's directoryThe raw Markdown of one initiative (brindley://initiative/<collection>/<number>)
Theme: adoptionA theme as one document: its overview doc (if any), then every initiative tagged with it, across collections
Theme: dependency-linksA theme as one document: its overview doc (if any), then every initiative tagged with it, across collections
Theme: questionsA theme as one document: its overview doc (if any), then every initiative tagged with it, across collections
Theme: securityA theme as one document: its overview doc (if any), then every initiative tagged with it, across collections
Theme: status-recordingA theme as one document: its overview doc (if any), then every initiative tagged with it, across collections
Theme: textA theme as one document: its overview doc (if any), then every initiative tagged with it, across collections

TDQS

B3.4/5.0

Scored across 35 tools

Disambiguation4/5

Most tools target a distinct resource+action: collections, initiatives, questions, dependencies, milestones, tags and docs each get their own verbs, and descriptions pre-empt common confusions (update says 'to change a recorded status, use set_status'; fix says 'padding is fixed by repad, numbers by renumber'). Residual overlap exists in the repair cluster (validate/fix/repad/renumber/tidy), the readiness pair (ready lists workable initiatives vs check_ready gates a single one) and update vs batch_update, but these are distinguishable with care.

Naming Consistency3/5

There is an implicit split — bare-noun query tools (collections, tags, milestones, questions, fields, graph, report) and bare-verb mutation tools (create, update, get, complete, fix, tidy, repad, renumber) — alongside consistent verb_noun tools (set_status, add_question, check_ready, create_collection). This is readable and partly intentional, but it is not one predictable pattern: 'list' lacks a noun while 'collections' has no verb, and create/update sit next to create_collection/update_collection style names.

Tool Count2/5

At 35 tools the surface is heavy for a ticket/initiative server; an agent must scan a long catalogue to find the right verb. Many are individually justified by the git-aware domain, but several clusters (fix/repad/renumber/tidy, validate/check_docs/check_ready) could be consolidated into fewer tools with mode parameters.

Completeness4/5

Coverage of the stated domain is strong: full initiative lifecycle (create/get/list/update/batch_update/set_status/complete), questions (add/split/resolve/next/list), dependencies and graph, collections management, milestones, tags, validation and repair, docs linting, briefs, reports and worktree switching. Minor gaps: no way to delete/remove an initiative (mitigated by abandoned/superseded statuses), no tool to create milestones or arbitrary docs, and no explicit search beyond list filters.

Maintenance

ActivityMaintained
ResponsivenessResponsive