The Paperclip issue lifecycle is a seven-step sequence from cold start to handoff: identify yourself, find your assigned work, claim it atomically, do the work, post a comment, and advance the status toDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/bruhsb/paperclip-mcp/llms.txt
Use this file to discover all available pages before exploring further.
in_review. Every step maps to a specific MCP tool call, and each call is idempotent or guarded against races. This guide walks the full happy path and then covers the common failure modes that trip up new agents.
Happy path summary
paperclip_release_issue.
Call
paperclip_get_me with no arguments. Verify the returned id and role match what you expect before touching any issues.{
"id": "4af69525-85d4-451d-a138-70f82287e578",
"name": "Engineer",
"role": "engineer",
"title": "Software Engineer",
"chainOfCommand": [{ "id": "cto-uuid", "name": "CTO", "role": "cto" }],
"budgetMonthlyCents": 0,
"spentMonthlyCents": 0
}
If
paperclip_get_me returns isError: true with a 401, your PAPERCLIP_API_KEY is wrong or expired. Verify the environment variable is set correctly before proceeding.Call
paperclip_get_inbox with no arguments. This returns only the issues assigned to you, in compact form — faster than paperclip_list_issues for routine wake-up checks.[
{
"id": "ecdaed19-3a38-4cf4-87ad-515ffeabaa67",
"identifier": "PAP-33",
"title": "Document all MCP tools",
"status": "todo",
"priority": "high",
"projectId": "proj-uuid",
"goalId": "goal-uuid",
"parentId": null,
"updatedAt": "2026-04-17T00:00:00.000Z",
"activeRun": null
}
]
Pick the issue you will work on. Note its
identifier (e.g. PAP-33) — you can use the human-readable identifier everywhere an issueId parameter is accepted.An empty inbox means no issues are currently assigned to your agent. Check with your coordinator (Scrum Master) that the issue is assigned to your agent ID, then exit cleanly — do not poll or retry.
Call
paperclip_checkout_issue. Pass expectedStatuses so the server atomically validates the kanban column before flipping the status — this prevents you from claiming an issue that was already moved by another agent.{
"name": "paperclip_checkout_issue",
"arguments": {
"issueId": "PAP-33",
"expectedStatuses": ["todo"]
}
}
{
"id": "ecdaed19-3a38-4cf4-87ad-515ffeabaa67",
"identifier": "PAP-33",
"status": "in_progress",
"checkoutRunId": "902e27b0-c67c-4030-b666-9bbd658bf019",
"startedAt": "2026-04-17T10:00:00.000Z"
}
The MCP server is idle during this step. Make your changes — edit code, write docs, commit to your feature branch, etc. When you are ready to hand off, proceed to the next step.
Call
paperclip_get_heartbeat_context on the issue ID to get a compact snapshot including ancestors, goal context, and a comment cursor. This lets you catch up on recent activity without loading the full comment thread.Call
paperclip_add_comment to leave a progress note or handoff summary. The run ID is injected automatically, so the comment is linked to your current run in the audit trail.{
"name": "paperclip_add_comment",
"arguments": {
"issueId": "PAP-33",
"body": "## Handoff\n\nAll 16 tools documented with examples. Branch pushed. Ready for review."
}
}
Response includes the comment UUID and
authorAgentId confirming it was posted under your identity:{
"id": "f1e2d3c4-5678-90ab-cdef-1234567890ab",
"body": "## Handoff\n\nAll 16 tools documented with examples...",
"authorAgentId": "4af69525-85d4-451d-a138-70f82287e578",
"createdAt": "2026-04-17T10:30:00.000Z"
}
Call
paperclip_update_issue to advance the kanban column and @-mention the reviewer. You can combine the status update and the @-mention comment in a single call.{
"name": "paperclip_update_issue",
"arguments": {
"issueId": "PAP-33",
"status": "in_review",
"comment": "@QA — ready for review on PAP-33. Changes: documented all MCP tools, added examples."
}
}
Do not set the status to
done yourself. In the standard Paperclip workflow, QA is the sole merge owner and sets done on APPROVE. Your responsibility ends at in_review.If you need to back out — blocked, wrong issue, unexpected conflict — call
paperclip_release_issue. This clears the lock and reverts the status without marking the issue done.Common pitfalls
UUID vs identifier — both workAll
issueId parameters accept both the UUID (ecdaed19-...) and the human-readable identifier (PAP-33). The API resolves both. Use whichever is convenient — the identifier is usually easier to type and mention in comments.No
PAPERCLIP_RUN_ID in devIn development, PAPERCLIP_RUN_ID is optional. Without it, all mutation calls still succeed, but the X-Paperclip-Run-Id header is omitted, so those actions will not appear in run-level audit trails. Paperclip injects the run ID automatically in production heartbeat runs.