Connect Claude Code to backlog items over MCP

Stefan-Iulian Tesoi · · 7 min read

A rail knuckle coupler with its brake air hose and cock alongside, the standard joint that lets two separately built vehicles work as one and needs both connections made before anything moves

To connect Claude Code to backlog items it can actually act on, add the backlog's MCP server to the agent's configuration and authorise it once from inside the session. The agent can then list what is ready, read an item with its acceptance criteria, and hand finished work back for review. Nobody pastes a ticket into a prompt.

The mechanics take two minutes. The rest is what comes after: which credential to use, what the agent still cannot do, and how to tell a dead connection from an empty sprint, since those look identical from the chat window.

How do you connect Claude Code to backlog items?

One command registers the server, and one authorisation binds it to you.

claude mcp add --transport http laimonade https://api.laimonade.com/mcp

Then run /mcp inside the session, pick laimonade → Authenticate, and approve in the browser tab that opens. Running /mcp again should show it connected. The server name is a local label, so call it whatever you like.

For a team, commit a .mcp.json at the repository root instead of asking everyone to run the command, and each person authenticates once against the shared entry. The full Claude Code MCP setup, along with Cursor, Codex and any other Streamable HTTP client, is in connect your coding agent. Anthropic's own MCP documentation for Claude Code covers the client side of the same command.

Which credential should you use?

Sign in, unless the caller is a machine. The endpoint accepts two credentials and the choice decides whose name the work is recorded under, which is a governance decision disguised as a configuration detail.

The practical argument for signing in has nothing to do with security theatre. A project API key that is regenerated stops working everywhere it was configured, immediately and by design, so every client anyone set up has to be updated at once. A team that standardised on the key discovers how many clients that is on the afternoon someone rotates it.

What can the agent do once connected?

Fetch work, read it in full, gather context, and give it back. The loop is four steps and the tool surface is organised around them rather than around CRUD on issues.

  1. Ask what is ready. A numbered menu of the Ready column comes back, with narrower versions for stories, bugs and improvements.
  2. Load the items you want. "Load 1 and 3" pulls them in full: description, acceptance criteria, estimate, parent epic.
  3. Get context before editing. Regression notes for the paths about to change, and the project's own rules — CLAUDE.md, AGENTS.md, Cursor rules.
  4. Hand it back. "Submit 1 for review" moves the item to In Review, asserting the criteria are met, which is why loading it first matters.

Work reaching the agent this way arrives as a work order rather than a ticket: criteria, epic context and the repositories to touch, in one call. Every tool and its permission is listed in the MCP tool reference, which is verified against the server's own registry by a build check, so a tool documented there and missing from the server fails the build rather than misleading you. Why that handover shape is the thing to compare when choosing a tracker at all is the subject of Jira alternatives when an agent reads your backlog.

Menu numbers are session state. They refer to the most recent list the agent asked for, so a number from three turns ago will not resolve. Asking for the menu again is faster than arguing about which list it meant.

Which permissions does it need, and what should you withhold?

Every tool declares one of three, and the client uses it to decide when to stop and ask.

PermissionWhat it coversWhat the client does
ReadReturns data, changes nothingRuns without asking
WriteCreates work or moves it forwardRuns without asking
DestructiveUndoes a human decisionAsks for confirmation first

Destructive is narrower than it sounds. It marks tools that take something away from where a person put it, not tools that lose data — archived items stay recoverable. The one to know is delete_milestone, which genuinely removes the milestone and is refused while any epic still points at it.

What matters more is the list of things no permission grants. A connected agent cannot mark work done, cannot add anything to the unattended-implementation queue including its own items, cannot reach a project the connection was not granted, and cannot read your Claude memory, chat history or uploaded files. Those limits are the design rather than a roadmap gap: an agent carries an item as far as review, and a person decides what is done. Why a coding agent integration should stop there is the argument running through what to look for in an agent-native project tracker.

How do you verify it with one real item?

Ask for the sprint, then take one item all the way through. A connection that lists work but cannot submit it is worth finding on a Tuesday, not a Friday.

Ask the agent what is ready this sprint. A numbered list should come back. An empty list is a real answer, not a failure — it means nothing is in the Ready column, and work sitting in Backlog is invisible to an agent on purpose, because Ready is the contract that says an item is specified well enough to act on.

Then load one item, make the change, and submit it. The other half of the confirmation is in the app: the MCP page shows when the credential was last used, which turns "I think it worked" into a timestamp. The connector page is also where the granted projects are changed, with no reconnect needed.

What do you do when the connection drops?

Separate the network from the credential before changing any configuration, because the symptoms are identical and the fixes are not.

SymptomUsually meansFirst move
Asked to sign in againAccess was revoked, or an API key was rotatedRe-authenticate; check project membership
Connected, wrong backlogConnection granted more than one projectHave the agent call list_projects
Numbers do not resolveStale menu from an earlier turnAsk for the menu again
Nothing responds at allNetwork or endpoint, not authCheck the health endpoint

The health endpoint is the quickest discriminator: https://api.laimonade.com/mcp/health needs no authentication and reports the running server version. If it answers, the problem is your credential. If it does not, stop editing MCP server configuration and look at the network. The failures people actually hit are collected in troubleshooting.

Work done while a connection was down is not lost, because it is in the repository. What is missing is the item's side of the story, and that is a manual reconciliation when the connection returns.

Frequently asked questions

Does this work with Cursor as well as Claude Code?

Yes. The same endpoint serves any MCP client with Streamable HTTP transport, and Cursor is one of the clients tested, alongside Claude, Claude Code and Codex. Cursor is configured through .cursor/mcp.json in the repository or globally in settings, and prompts for sign-in on first connect rather than using a slash command.

Can several agents share one connection?

They can share the configuration, and it is usually better that they do not share a credential. A committed .mcp.json gives everyone the same server entry while each person authenticates as themselves, which keeps attribution intact. One API key shared across a team collapses everyone's work onto the project owner and makes rotation an event.

What happens to work done while the connection was down?

The code is safe; the record is not. Commits stay in the repository, so nothing is lost, but items were not moved and evidence was not attached while the connection was out. Reconcile by hand once it is back, and treat a long outage as a reason to audit the board against the repository rather than assuming they still agree.

Are there tools an agent cannot drive at all?

Yes, deliberately. complete_onboarding asks a person three questions about the business through MCP elicitation rather than letting an agent answer them. A client that does not support elicitation has to pass those fields itself, which is why the schema makes them optional — the questions are about what the project is for, and the repository does not know.