ForgeSwarm
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FORGESWARM_DB | No | Path to the SQLite database file. Defaults to ~/.forgeswarm/forgeswarm.db. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_projectA | Register a new engineering goal and get a project id. Call this once per goal, then decompose it with submit_plan.
|
| submit_planA | Decompose a project goal into a dependency-ordered task graph in one call.
|
| list_projectsA | List all projects in this swarm with their status. |
| register_agentA | Introduce yourself to the swarm. Call once at startup. Pick a stable, unique agent_id (e.g. 'impl-1', 'reviewer-claude') and use the same id in every later call: claims, submissions and reviews are attributed to it, and self-review is rejected based on it. |
| list_tasksA | List tasks on the project board. Use ready_only=true to see only tasks you could claim right now (open, with all dependencies done). Status filter accepts: open, claimed, in_progress, in_review, done. |
| claim_taskA | Atomically claim an open task. Fails if it is taken or not ready. The claim carries a lease: if you stop renewing it (update_task renews automatically) the task returns to the board so the swarm never stalls on a crashed agent. After claiming, call get_briefing before starting. |
| update_taskA | Report progress on your claimed task and renew its lease. status may be 'claimed' or 'in_progress'. Any notes you pass are saved to shared context (tagged with the task id) so other agents can see what you are doing. Finishing goes through submit_for_review or complete_task instead. |
| complete_taskA | Mark your claimed task done WITHOUT review (for trivial/mechanical tasks). For anything substantive, prefer submit_for_review so another agent
checks the work. |
| get_task_graphA | See the whole dependency graph: every task, its status, blockers, and who holds it. Use this to find the critical path or to check whether the project is done. |
| save_contextA | Write a fact to the shared blackboard so every agent can find it. Use stable, descriptive keys ('api-schema', 'auth-flow'); writing the same key again updates it. Tag entries with 'task-' to make them show up in that task's briefing. |
| search_contextC | Search the shared blackboard by substring over keys, content, and tags. An empty query returns the most recently updated entries. |
| record_decisionA | Log an architectural/engineering decision so the swarm stops re-litigating it. Decisions appear in every briefing. Record the WHY in |
| get_briefingA | Get an onboarding packet for a task: everything needed to start cold. Bundles the project goal and constraints, the task itself, summaries of its completed dependencies, all recorded decisions, related shared context, and reviewer feedback from earlier iterations. Call this right after claim_task, and again after a review requests changes. |
| submit_for_reviewA | Submit your claimed task's work product for peer review.
|
| get_review_queueB | List submissions waiting for review on this project. Includes each submission's task title and iteration count, so reviewers can prioritise work that has already bounced. |
| post_reviewA | Post a verdict on a submission: 'approve' or 'request_changes'. approve completes the task. request_changes sends it straight back to the author as in_progress with your comments attached to their next briefing — be specific and actionable. You cannot review your own submission. |
| run_checksA | Run an allowlisted verification command (tests/linters/builds) for a task. Allowed executables: pytest, python, uv, pip, ruff, mypy, black, flake8, npm, pnpm, yarn, npx, node, tsc, eslint, jest, vitest, go, cargo, make. The command runs without a shell (no pipes/redirects), with a hard timeout, and the result is recorded on the task as review evidence. Include the relevant output in your submit_for_review content. |
| open_discussionA | Open a discussion when agents disagree or a choice needs multiple perspectives. Frame the topic as a decidable question ('Postgres or SQLite for the cache?'), then invite positions via post_to_discussion. |
| post_to_discussionA | State your position in an open discussion, with reasoning. Read the existing posts first (list_discussions / get_briefing show them) and respond to the strongest opposing argument, not past it. |
| resolve_discussionA | Close a discussion with the consensus and make it binding project memory. Requires positions from at least 2 distinct agents. The resolution is automatically recorded as a project decision (with a digest of the debate as rationale), so every future briefing carries it — the swarm will not re-litigate. |
| list_discussionsB | List discussions on a project ('open' or 'resolved'), with their posts. |
| list_workflow_templatesA | List battle-tested engineering workflow templates with what each is for. |
| get_workflow_templateA | Get a workflow template: recommended swarm + a task list shaped for submit_plan. Available: ship-feature, refactor-module, debug-issue. Adapt the task titles/descriptions to your concrete goal, then pass the tasks straight to submit_plan — depends_on indexes are already wired. |
| get_retrospectiveA | Compile the project's performance evidence for a swarm retrospective. Returns totals (review bounce rate, check pass rate, iterations), per-agent stats (tasks completed, submissions bounced, reviews given), and hotspots — the tasks that needed the most review round-trips. Analyze it to propose concrete process improvements, and record the ones the swarm adopts via record_decision. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| planner | Role prompt: decompose a goal into a ForgeSwarm task graph. |
| implementer | Role prompt: claim ready tasks, do the work, submit for review. |
| reviewer | Role prompt: review submissions strictly and concretely. |
| standup_summary | Generate a status report for a project from live swarm state. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| all_projects | All projects in this swarm. |
| all_agents | Registered agents and when they were last active. |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/H2SO4620/forgeswarm'
If you have feedback or need assistance with the MCP directory API, please join our Discord server