sprinty
Sprinty
Sprinty is an MCP server for running disciplined coding sprints with AI agents. It gives agents server-minted sprint, subsprint, and item IDs; explicit dependencies; gate evidence; Git-backed change maps; SemVer changelogs; and a local dashboard so humans can watch the work while it happens.

Install
Sprinty is published to npm as sprinty-mcp. The npm package is the MCP server. Claude and Codex
plugin installs are distributed from this Git repository through each client's marketplace system.
Claude Code
MCP-only install:
claude mcp add sprinty -- npx -y sprinty-mcpPlugin install, with Sprinty skills plus the MCP server:
claude plugin marketplace add ebursztein/sprinty
claude plugin install sprinty@sprintyThe Claude marketplace manifest is .claude-plugin/marketplace.json; the plugin bundle is
clients/claude/.
Codex
MCP-only install:
codex mcp add sprinty -- npx -y sprinty-mcpPlugin install, with Sprinty skills plus the MCP server:
codex plugin marketplace add ebursztein/sprinty
codex plugin add sprinty@sprintyThe Codex marketplace manifest is .agents/plugins/marketplace.json; the plugin bundle is
plugins/sprinty/. Codex does not currently use an OpenAI npm plugin package for this flow.
Gemini CLI
Use the MCP server directly from npm:
npx -y sprinty-mcpThe repository also includes a Gemini extension in clients/gemini/ for clients that install local
Gemini extensions.
Cursor, VS Code, Kiro, GitHub Copilot, ChatGPT & Codex
Sprinty ships a portable Agent Plugins package at the repository root
(plugin.json, mcp.json, skills/), so any conformant client can load the skills and the MCP
server without a client-specific bundle. Follow your client's plugin install instructions and point
it at this repository.
Claude Code and Gemini CLI are not Agent Plugins clients today; they use the bundles above.
Any MCP Client
Configure a stdio MCP server with:
{
"command": "npx",
"args": ["-y", "sprinty-mcp"]
}Use
Sprinty never guesses the repository from the MCP server process cwd. Start or resume with explicit paths:
sprint_new({ goal, git_dir, data_dir, context_notes? })
sprint_resume({ git_dir, data_dir })Use a worktree-local, gitignored data_dir, usually <git_dir>/.sprinty. When data_dir is
omitted and git_dir is provided, Sprinty uses <git_dir>/.sprinty. sprint_new and
sprint_resume return the dashboard URL. Call info({ git_dir }) first for startup orientation and
compact sprint rows. Use info({ workspace_dirs: [...] }) when you need to inspect multiple Sprinty
data dirs together, then sprint_resume({ git_dir, data_dir }).
Tools
Tool | Purpose |
| Startup orientation before binding, including sprint rows, resume/create help, and dashboard state. |
| Start a sprint with explicit |
| Reattach this MCP session to an existing sprint. |
| Clear this MCP process binding and stop the dashboard. |
| Recheck gates, write the canonical changelog, and close after work and coverage are complete. |
| Archive an active sprint with a recovery reason. |
| Compact sprint summary for orientation. |
| Compact active work window with current, next, blocked, relations, notes, and artifacts. |
| Regex search over the immutable sprint ledger. |
| Preview or export SemVer Markdown; canonical output is automatic at close. |
| Create a feature-sized unit of work. |
| List subsprints with compact item counts. |
| Read one subsprint and its item rows. |
| Create one atomic, gated item with an optional gate timeout. |
| Read full item detail. |
| Update item metadata, execution settings, recorded commit, or dependency edges. |
| Complete an item with a real commit, gate evidence, and changelog entry. |
| Resolve an oversized item by creating a seeded subsprint. |
| Drop an item with an explicit reason, or pass a subsprint id to drop it and its open items. |
| Attach a note to an item. |
| List notes for an item. |
| Read one note. |
| Update one note. |
| Attach a durable file path to the sprint. |
| List active artifacts. |
| Read one artifact record. |
| Update artifact metadata. |
| Report the current dashboard URL and port. |
| Restart the dashboard and return the new URL and port. |
Release
Publishing is gated by tests. The GitHub Release workflow runs npm ci, npm test, and only then
npm publish --access public.
Local checks:
npm test
npm run typecheckLicense
Apache-2.0