GRU953 Crew — MCP server
One small server that plans, remembers, builds, reviews, and ships software,
and quietly teaches the GRU953 Crew way of working. It speaks the Model Context
Protocol over stdio, so any MCP-capable assistant can pick it up. The same
single file runs in both Claude Code and Claude Desktop — there is nothing
different to learn between them.
Think of it as a knowledgeable friend who never makes you feel small: it keeps
your plan and your notes, looks before it leaps, and tells you plainly what each
tool will do before it does it.
What it gives you
Every tool description starts with a one-word behaviour hint so you always know
what to expect:
- read-only — looks at things, changes nothing.
- idempotent — safe to repeat; running it again lands you in the same place.
- destructive — writes, commits, clones, or runs a command, so it can change
files or your repository.
The toolkit
- Plan and track —
plan_create, plan_list, plan_show,
plan_update_task, plan_add_task. Turn a goal into an ordered checklist that
survives across sessions.
- Memory —
memory_write, memory_read, memory_search, memory_link,
memory_graph. Persistent notes and a small knowledge graph. Linking refuses
anything that would create a cycle, so the graph stays clear.
- Files —
file_read, file_write.
- Repositories —
git_clone, repo_read, git_init, git_status,
git_commit. Cloned content is treated as data, and symlinks are never
followed.
- Review —
diff_summary, project_check.
- Discovery —
registry_capabilities, registry_search. A built-in
catalogue of open-source prior art to study before you build.
- Unbuilt ledger —
unbuilt_record, unbuilt_check. A plain UNBUILT.md
of what a project deliberately does not do, so it is not silently re-added.
- Human guide —
emit_guide. A plain-English walkthrough for the steps only
a person can do.
- Run a command —
run_command. Runs an executable by name with an explicit
argument array and no shell, so an argument can never inject a second
command.
The method
Five advisory tools that return guidance for you to act on — they run nothing:
gru953_crew_lifecycle_plan { idea } — the 9-phase lifecycle plan with
per-phase acceptance criteria.
gru953_crew_yagni_check { feature } — the YAGNI ladder, ending with the
smallest version that works.
gru953_crew_swarm_recipe { task } — the fan-out, score, keep-smallest-correct
protocol for the host to run.
gru953_crew_discipline_review { plan } — the discipline gates applied to a
plan, which is treated strictly as data.
gru953_crew_publish_checklist {} — the private-by-default publish checklist.
Choosing how much to load
The GRU953_CREW_TOOLS environment variable picks a loading profile, so a
session only sees what its phase needs:
minimal — the five method tools alone.
standard (default) — the method tools plus planning, memory, discovery, the
unbuilt ledger, human guides, and read-only review. No file, git, or command
tools.
full — everything, including file_write, the git tools, and run_command.
Leave it unset for standard. An unrecognised value falls back to standard.
Installing in Claude Desktop
Pack the mcp/ folder into a .mcpb bundle and open it with Claude Desktop, or
install the bundle from your distribution. Desktop reads manifest.json and
launches the server as node ${__dirname}/server.mjs. It needs Node 18 or
newer on your machine.
Using it from Claude Code
The bundled plugin .mcp.json already points at this server using
${CLAUDE_PLUGIN_ROOT}, so Claude Code finds and launches it for you — there is
nothing to configure by hand.
Using it from any other MCP client
Install the two dependencies once, then launch the server over stdio:
cd mcp
npm install
node server.mjs
A typical client configuration:
{
"mcpServers": {
"gru953-crew": {
"command": "node",
"args": ["/path/to/gru953-crew/mcp/server.mjs"],
"env": { "GRU953_CREW_TOOLS": "standard" }
}
}
}
The server stores its plan and memory data under ~/.gru953-crew by default;
set GRU953_CREW_HOME to choose a different folder. It never stores secrets.
Running the tests
cd mcp
npm install
npm test
Licence
Code is licensed under Apache-2.0. Sole author: Aninda Sundar Howlader.