start-work
Integrates with GitHub Issues and Pull Requests as the ticket system: it can list assigned open tickets by priority, fetch ticket context including parent and child issues, start work by assigning tickets and marking them in progress, open pull requests that close tickets with summaries and testing notes, comment PR links on tickets, and move tickets between todo, in-progress, in-review, and done.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@start-workstart work on #42"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
start-work-mcp
Say "start work" and an AI agent takes your next ticket all the way to a pull request ready for your review.
This is an MCP server plus a Claude Code skill. The server gives the agent safe, narrow access to your tickets. The skill tells it how a good engineer works a ticket: read the parent ticket for the goal, stay out of the child tickets' scope, meet every acceptance criterion, test, and hand the work to a human for review.
you: start work
agent: Picking #42 "Add CSV export to reports". It's your highest-priority todo.
├─ start_ticket(42) → assigned to you, status: in progress, brief returned
├─ git switch -c 42-add-csv-export-to-reports
├─ ...implements, adds tests, runs the suite...
├─ git push -u origin 42-add-csv-export-to-reports
└─ open_pull_request(42, …) → PR #101 "Closes #42", status: in review, PR link commented on the ticket
agent: PR #101 is ready for your review. Worth a close look: the BOM handling the PM asked for in the comments.Why
I built a version of this workflow with GitHub Copilot at my last job. One command pulled my assigned task, read the parent and child tickets for context, created a branch, did the work, opened a PR for my code review, and updated the ticket's status. It removed most of the clerical work around each ticket and left my attention on design and review. This is a clean, open-source version of the same idea, built on the open MCP standard so it works with any MCP client.
Related MCP server: kanban
Tools
Tool | What it does |
| Open tickets assigned to you, highest priority first ( |
| The ticket's description, acceptance criteria and discussion, plus its parent and child tickets, formatted as a work brief. |
| Assigns the ticket to you, marks it in progress, and returns the branch name and the brief. |
| Opens a PR that closes the ticket ( |
| Move a ticket between todo, in-progress, in-review and done. |
Design choices
Git stays with the agent. The server never touches your working tree. Branching, committing and pushing happen with the agent's normal tools, where you can see and approve them.
A human merges. Nothing in the server can merge or approve a PR.
Ticket systems are pluggable. The tools talk to a small
TicketProviderinterface (src/provider.ts). GitHub Issues is the first provider; Jira or Azure DevOps is one new class.Uses real GitHub structure. Parent and child tickets come from GitHub sub-issues, with a fallback to
Parent: #10in the body and- [ ] #11task lists. Status is tracked withstatus: in progress/status: in reviewlabels, which are created on first use.
Setup
Requirements: Node 20+, and a GitHub fine-grained token for the repo with Issues: read/write, Pull requests: read/write, and Metadata: read.
git clone https://github.com/BardCreates/start-work-mcp
cd start-work-mcp
npm install && npm run buildClaude Code
Add the server to the project you want to work in:
claude mcp add start-work \
-e GITHUB_TOKEN=github_pat_... \
-e GITHUB_REPOSITORY=your-name/your-repo \
-- node /path/to/start-work-mcp/dist/index.jsCopy the skill into that project so Claude knows the workflow:
mkdir -p .claude/skills && cp -r /path/to/start-work-mcp/.claude/skills/start-work .claude/skills/Then, in Claude Code: "start work", or "start work on #42".
Other MCP clients (Claude Desktop, Cursor, VS Code)
Use the same command and environment variables in the client's MCP config:
{
"mcpServers": {
"start-work": {
"command": "node",
"args": ["/path/to/start-work-mcp/dist/index.js"],
"env": { "GITHUB_TOKEN": "github_pat_...", "GITHUB_REPOSITORY": "your-name/your-repo" }
}
}
}Options
Variable | Default | |
| required | Token with the permissions above. |
| required |
|
| none | e.g. |
Development
npm test # vitest: tool behavior through a real MCP client against an in-memory ticket system
npm run typecheck
npm run dev # run the server from sourceThe tests connect a real MCP client to the server over an in-memory transport and drive the full flow (list → context → start → open PR) against a fake ticket provider, so they need no network or token.
Roadmap
Jira and Azure DevOps providers
Read CI status on the PR and hand failures back to the agent
Pick up review comments on an open PR and address them
License
MIT
Available Tools
5 toolsget_ticket_contextGet ticket contextBRead-only
A ticket's description, acceptance criteria and discussion, plus its parent and child tickets, as a work brief.
Inputs: number (required).
list_my_ticketsList my ticketsARead-only
Open tickets assigned to me, highest priority first. Use this to pick what to work on next.
Inputs: status.
open_pull_requestOpen pull requestA
After the branch is pushed and tests pass: open a PR that closes the ticket, move the ticket to in review, and leave a comment linking the PR. A human reviews before merge.
Inputs: branch (required), number (required), summary (required), testing (required), +3 more.
set_ticket_statusSet ticket statusB
Move a ticket to todo, in-progress, in-review or done. Use to put a ticket back if you stop work on it.
Inputs: number (required), status (required).
start_ticketStart ticketA
Claim a ticket: assign it to me, mark it in progress, and return the branch name to create plus the full work brief. Call this before writing any code.
Inputs: number (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
TDQS
Scored across 5 tools
Each tool maps to a distinct step in the workflow: listing, reading context, claiming, opening a PR, and setting status. The only mild overlap is between start_ticket (which implicitly sets in-progress) and set_ticket_status, but the descriptions clarify that start_ticket is the claim-and-brief action while set_ticket_status is for manual moves.
All five tools follow a consistent snake_case verb_noun pattern (list_my_tickets, get_ticket_context, start_ticket, open_pull_request, set_ticket_status). No mixed conventions or vague verbs.
Five tools is well-scoped for a focused start-work workflow, and each tool earns its place as a distinct step. Nothing feels redundant or missing at the count level.
The surface covers the core lifecycle: discover tickets, read context, claim, open PR, and adjust status. Minor gaps exist—no way to create tickets, add standalone comments, or search/filter beyond 'my tickets'—but these are outside the apparent narrow purpose and agents can work around them.
Maintenance
Related MCP Connectors
Pull change requests from your Amendor board into your coding agent to build and open PRs.
Assign Linear, Jira or GitHub issues to an AI coding agent team that plans, builds, reviews, tests.
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Hand tasks, bugs and finished work to AI coding agents, and get back a write-up with evidence.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables AI assistants to automate Jira and GitHub/GitLab workflows. It handles issues, branches, pull requests, and deployments with project-aware context and safety checks.3278 npm1MIT
- AlicenseNot gradedqualityCmaintenanceGives AI coding agents native tools to pull their next prioritized, unblocked task with a full briefing (description, acceptance criteria, context files, conventions), comment and tick off criteria with evidence, ask the human decision-maker questions, and submit structured handoffs for review. It lets agents plan epics and sprints, report checks, create new tasks, and release work with checkpoints — all against a self-hosted board rather than files in the repo.4 npm1MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents and project managers to turn GitHub Projects v2 into an autonomous project management platform with task checkout, multi-agent coordination, PRD-to-issue pipelines, sprint planning, triage, and GitHub-native storage.1,137 npmMIT
- AlicenseNot gradedqualityAmaintenanceEnables AI coding agents to register, self-assign and coordinate tasks, track progress, review work, and manage GitHub Projects v2 with AI-powered PRD generation, sprint planning, issue triage, and PRD-to-issues pipelines backed entirely by GitHub-native storage.1,137 npmMIT