Skip to main content
Glama

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

list_my_tickets

Open tickets assigned to you, highest priority first (P0–P4 or priority: high/medium/low labels).

get_ticket_context

The ticket's description, acceptance criteria and discussion, plus its parent and child tickets, formatted as a work brief.

start_ticket

Assigns the ticket to you, marks it in progress, and returns the branch name and the brief.

open_pull_request

Opens a PR that closes the ticket (Closes #42) with summary, testing and reviewer notes; moves the ticket to in review; comments the PR link on the ticket. Supports drafts.

set_ticket_status

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 TicketProvider interface (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: #10 in the body and - [ ] #11 task lists. Status is tracked with status: in progress / status: in review labels, 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 build

Claude 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.js

Copy 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

GITHUB_TOKEN

required

Token with the permissions above.

GITHUB_REPOSITORY

required

owner/repo holding the tickets.

START_WORK_BRANCH_PREFIX

none

e.g. hn/ gives hn/42-add-csv-export.

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 source

The 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 tools
get_ticket_contextGet ticket contextB
Read-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 ticketsA
Read-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

    A3.7/5.0

    Scored across 5 tools

    Disambiguation4/5

    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.

    Naming Consistency5/5

    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.

    Tool Count5/5

    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.

    Completeness4/5

    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

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      D
      maintenance
      Enables AI assistants to automate Jira and GitHub/GitLab workflows. It handles issues, branches, pull requests, and deployments with project-aware context and safety checks.
      32
      78 npm
      1
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Gives 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 npm
      1
      MIT
    • A
      license
      Not graded
      quality
      A
      maintenance
      Enables 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 npm
      MIT