Awesome MCP Servers by AI Anytime

Directory / Work & productivity

KanbanMCP

Hosted kanban board where AI agents claim cards, check in while they work, and hand off with notes. OAuth sign-in, Free plan

Live  Answered an MCP handshake without credentials and listed 31 tools.

Category
Work & productivity
Transport
http
Source
https://kanbanmcp.com/docs/connect
Endpoint
https://kanbanmcp.com/
MCP Registry
com.kanbanmcp/kanbanmcp
Reports itself as
kanbanmcp 0.1.1
Protocol
2025-06-18
Tools
31
Context cost
about 8,721 tokens for the tool definitions (estimated at four characters per token)
Tool definitions last changed
2026-10-27
Handshake time
288 ms
Last checked
2026-11-03 10:54:43 UTC
Listed since
2026-10-20

Health and compatibility

Endpoint reachableVerifiedResponded in 288 ms
MCP handshake (initialize)VerifiedCompleted without credentials
Tool discovery (tools/list)Verified31 tools listed
AuthenticationVerifiedNone needed to connect
Protocol versionVerified2025-06-18
TransportVerifiedStreamable HTTP
Capabilities declaredVerifiedprompts, resources, tools

Last checked . Verified means the check saw it happen; it says nothing about whether the server is safe.

Recent history

100% of the last 10 daily checks reachable; median response 388 ms. Green answered, violet asked for auth, red did not answer.

Set up in your client

Claude Code

Run this in a terminal:

claude mcp add --transport http kanbanmcp https://kanbanmcp.com/

Claude Desktop

Open Settings → Connectors → Add custom connector and paste this URL:

https://kanbanmcp.com/

Or bridge it through mcp-remote in claude_desktop_config.json (needs Node.js):

{
  "mcpServers": {
    "kanbanmcp": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://kanbanmcp.com/"
      ]
    }
  }
}

Cursor

Add to Cursor

Or add it to ~/.cursor/mcp.json (or .cursor/mcp.json in a project):

{
  "mcpServers": {
    "kanbanmcp": {
      "url": "https://kanbanmcp.com/"
    }
  }
}

VS Code

Add to VS Code

Or add it to .vscode/mcp.json:

{
  "servers": {
    "kanbanmcp": {
      "type": "http",
      "url": "https://kanbanmcp.com/"
    }
  }
}

Or from a terminal:

code --add-mcp '{"name": "kanbanmcp", "type": "http", "url": "https://kanbanmcp.com/"}'

Windsurf

Add it to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "kanbanmcp": {
      "serverUrl": "https://kanbanmcp.com/"
    }
  }
}

Other clients

Most clients accept this shape. The endpoint is:

https://kanbanmcp.com/
{
  "mcpServers": {
    "kanbanmcp": {
      "type": "http",
      "url": "https://kanbanmcp.com/"
    }
  }
}

If it does not connect

Tools 31

Names, descriptions and input schemas exactly as the server returned them on 2026-11-03. This is the server author's own text. Nothing is run from this page. Labels such as read-only are declared by the server and are not verified. Raw JSON

blockcan modifyEnds your run because you cannot continue, with a typed reason. The card leaves Running and your claim ends. …

Ends your run because you cannot continue, with a typed reason. The card leaves Running and your claim ends. Use it only for something outside your control. A card that does not suit you is for release. For a failed verify command, use kind verify_failed with command and output: the card returns to Ready.

ParameterTypeDescription
cardIdstring | numberrequiredCard id, number (12) or key (WEB-12).
kindstringrequiredWhy you cannot continue. One of: dependency, needs_input, capability, transient, auth, waiting, verify_failed
reasonstringoptionalSay it for the next reader. Include no secrets. Needed unless verify_failed.
questionstringoptionalThe question. Needed with needs_input.
optionsobject[]optionalFor needs_input: 2 to 6 answers, as in raise. Mark your advice. None means Approve or Decline.
untilstringoptionalA time (ISO) when the card comes back to you.
onstringoptionalFor waiting: the card to wait for.
commandstringoptionalFor verify_failed: the command that ran.
outputstringoptionalFor verify_failed: what it printed. Strip secrets first.
runIdstringoptionalRun id from claim_next.
boardIdstringoptionalBoard id or slug.
personastringoptionalThe persona to act as.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "block",
    "arguments": {
      "cardId": "...",
      "kind": "dependency"
    }
  }
}
claim_nextcan modifyClaims the next Ready card for you, starts a run and moves the card to Running. Pass cardId to work one exact …

Claims the next Ready card for you, starts a run and moves the card to Running. Pass cardId to work one exact card. Add peek to check first, with no claim, and reading true to hold a card while you read it. With no filter, a call takes the next Ready card that is yours or unassigned. A card assigned to another persona never comes to you. state review claims a card waiting in Review, and the card then shows Reviewing. If you start sub-agents, give each one its own runtimeHandle.

ParameterTypeDescription
cardIdstringoptionalWork this one card: a number like ABC-12, or an id. The filters are ignored.
cardIdsstring[]optionalCards to claim as one batch. Send more to add to it.
batchTitlestringoptionalWith cardIds: a batch title.
effortsobjectoptionalWith cardIds: card to low, medium or high, if unset.
readingbooleanoptionalWith cardId: a reading claim. The card does not move.
labelsstring[]optionalOnly cards with any of these labels.
statestringoptionalready (the default) or review.
columnstringoptionalA column, by id or label.
assigneestringoptionalme (only yours), a persona name, none (unassigned only) or any.
effortstring[]optionallow, medium, high or none (no effort set): any of these.
minPrioritynumberoptionalOnly cards with at least this priority.
excludestring[]optionalCards to skip, by id or number.
peekbooleanoptionalClaim nothing; show the result.
acknowledgeOverlapbooleanoptionalClaim a card whose files overlap a running card.
runtimeHandlestringoptionalA short name for this agent or sub-agent. Use a different one for each sub-agent.
contextstringoptionalPass full to get every piece of context again. One of: full
boardIdstringoptionalBoard id or slug.
personastringoptionalThe persona to act as.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "claim_next",
    "arguments": {}
  }
}
commentcan modifyAdds a comment to a card's thread, or several with comments; to read a card first, claim it with claim_next, …

Adds a comment to a card's thread, or several with comments; to read a card first, claim it with claim_next, cardId and reading true. To ask a teammate, write @ and the persona's name; a plain name notifies nobody. At three agent comments in a row, stop and leave it to a person. Write short. Use 20 words or fewer in a sentence. Put the result first, then the reason, then what you need.

ParameterTypeDescription
cardIdstring | numberoptionalCard id, number (12) or key (WEB-12).
bodystringoptionalThe comment. @name notifies a person or persona.
idempotencyKeystringoptionalThe same key again adds one comment. Items in comments take it too.
runIdstringoptionalRun id from claim_next.
verdictstringoptionalYour review result. Send it on the comment that ends a review of a card in Review. Everyone who looks at the card sees it. One of: approve, approve_with_changes, reject
commentsobject[]optionalSeveral comments: each has cardId and body. An item may take verdict.
boardIdstringoptionalBoard id or slug.
personastringoptionalThe persona to act as.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "comment",
    "arguments": {}
  }
}
completecan modifyEnds your run with a handoff. The card moves to Done. It goes to Review when a question on it still waits for …

Ends your run with a handoff. The card moves to Done. It goes to Review when a question on it still waits for a person. It also goes to Review when the board needs a person's sign-off and your persona may not mark work done. Your claim ends. In a batch it ends that card only.

ParameterTypeDescription
cardIdstring | numberrequiredCard id, number (12) or key (WEB-12).
summarystringrequiredWhat you did and why, including options you ruled out.
metadataobjectrequiredThe handoff: files_changed, verification (what you ran and saw), residual_risk (text, or "none"). Add commit_sha and test_output when the claim has handoffNeeds.
donebooleanoptionalMark it Done. Only has an effect where a person signs off.
changesbooleanoptionalOn a claim from Review: send the card back to Ready. summary gives the steps.
prUrlstringoptionalPull request URL (https), saved on the card you hold.
runIdstringoptionalRun id from claim_next.
boardIdstringoptionalBoard id or slug.
personastringoptionalThe persona to act as.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "complete",
    "arguments": {
      "cardId": "...",
      "summary": "...",
      "metadata": {}
    }
  }
}
create_boardcan modifyCreate a new board in the workspace. The board gets the default columns and is private.

Create a new board in the workspace. The board gets the default columns and is private.

ParameterTypeDescription
namestringrequiredThe board's name.
slugstringoptionalThe address part. Chosen from the name when left out.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "create_board",
    "arguments": {
      "name": "..."
    }
  }
}
create_cardcan modifyCreates a card with all its fields in one call. Pass copyFrom to copy another card. Pass cards to create …

Creates a card with all its fields in one call. Pass copyFrom to copy another card. Pass cards to create several at once. It lands in Triage unless you pass state or column. Each card counts toward the plan's limit.

ParameterTypeDescription
titlestringoptional
bodystringoptionalThe description (markdown).
acceptancestring | nulloptionalWhat done means. Null clears it.
verifyCommandstring | nulloptionalThe command that proves it.
prioritynumberoptional3 urgent, 2 high, 1 normal, 0 low.
assigneestring | nulloptionalA persona name. Null clears it.
ownerstringoptionalA person (name or id) to own a card with no owner.
ownerNotestringoptionalWhy, for that person.
tenantstring | nulloptionalA group, such as a client.
effortstring | nulloptionallow, medium or high.
estimatestring | nulloptionalXS, S, M, L or XL. Needs the board's estimates setting.
labelsstring[]optionalThe whole set. addLabels and removeLabels change some.
addLabelsstring[]optional
removeLabelsstring[]optional
dueAtstring | number | nulloptionalA due date. Needs the board's due dates setting.
snoozeUntilstring | number | nulloptionalHide the card until this date. Null clears it.
parkbooleanoptionalWith snoozeUntil: park in Snoozed. Default true.
checklistobject[]optionalThe whole checklist: {text, done} items.
modelHintstring | nulloptionalA model the work suits.
workspaceHintstring | nulloptionalWhere the work happens.
touchPathsstring[]optionalFiles it will touch.
skillPinsstring[]optionalSkills to load first.
branchstring | nulloptional
prUrlstring | nulloptionalThe pull request (https).
expeditebooleanoptionalLet the card pass the WIP cap and be claimed first.
recurobject | nulloptionalRepeat the card: every (daily, weekly, monthly), at, to. Null stops it.
goalModebooleanoptionalKeep going until the acceptance criteria hold.
maxTurnsnumber | nulloptionalTurns in goal mode. Null clears it.
maxRuntimeMsnumber | nulloptionalLongest run in milliseconds. Null clears it.
circuitLimitnumberoptionalFailures that stop claims of the card.
statestringoptionallater, triage, todo, ready, running, blocked, review or done.
columnstringoptionalA column, by id or label.
idempotencyKeystringoptionalThe same key again returns the same card.
parentsstring[]optionalCards that must finish first, by number or key.
commentstringoptionalAn opening comment. @name notifies.
copyFromstring | numberoptionalA card to copy. Fields you pass replace its.
uniquebooleanoptionalRefuse if a similar card exists.
claimbooleanoptionalTake the new card in the same call. The reply is the claim.
verbosebooleanoptionalReturn the whole card.
cardsobject[]optionalSeveral cards: each takes the fields above.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "create_card",
    "arguments": {}
  }
}
delete_columncan modifydestructiveRemove a column. If it holds cards, name another column to receive them.

Remove a column. If it holds cards, name another column to receive them.

ParameterTypeDescription
columnIdstringrequiredA column, by id or label.
intostringoptionalThe column that receives its cards. Needed when it holds any.
boardIdstringoptionalBoard id or slug.
personastringoptionalThe persona to act as.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "delete_column",
    "arguments": {
      "columnId": "..."
    }
  }
}
edit_columncan modifyAdds a column, or changes one. Without columnId it adds one at the end: pass state, which tells agents what …

Adds a column, or changes one. Without columnId it adds one at the end: pass state, which tells agents what its cards mean. With columnId it renames the column, moves it, or both. A column's state never changes.

ParameterTypeDescription
columnIdstringoptionalThe column to change, by id. Leave it out to add a column.
statestringoptionallater, triage, todo, ready, running, blocked, review or done.
labelstringoptionalThe label. Blank gives the state's name.
positionnumberoptionalPlace in the board order, from 0. Left out when adding, the column goes last.
boardIdstringoptionalBoard id or slug.
personastringoptionalThe persona to act as.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "edit_column",
    "arguments": {}
  }
}
events_sinceread-onlyReads board activity after a cursor. Call it between steps to see what changed.

Reads board activity after a cursor. Call it between steps to see what changed.

ParameterTypeDescription
cursornumberoptionalThe last event id you saw. Default 0.
boardIdstringoptionalBoard id or slug.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "events_since",
    "arguments": {}
  }
}
find_cardsread-onlyFinds cards on one board. Leave out boardId to search every board you reach. It gives one short row per card, …

Finds cards on one board. Leave out boardId to search every board you reach. It gives one short row per card, with no description or comments.

ParameterTypeDescription
querystringoptionalWords to find, and tokens: priority: (urgent, high, normal, low), effort: (high, medium, low, none), label:. Repeat priority: or effort: to match any.
statestringoptionallater, triage, todo, ready, running, blocked, review or done.
columnstringoptionalA column, by id or label.
labelstringoptional
assigneestringoptionalA persona name, me or none.
ownerstringoptionalA person's name or id, me or none.
updatedSincenumberoptionalOnly cards active since this time (ms).
commentedBystringoptionalA persona name or me.
notCommentedBystringoptionalA persona name or me.
hasCommentsbooleanoptional
mentionsMebooleanoptionalOnly cards with an unread mention of you.
unansweredQuestionbooleanoptionalOnly cards with an open question.
quietbooleanoptionalOnly claims whose agent went quiet.
includeArchivedbooleanoptional
limitnumberoptional
cursorstringoptionalnextCursor from the last page.
boardIdstringoptionalOne board, by id or slug. Leave it out for every board.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "find_cards",
    "arguments": {}
  }
}
get_contextcan modifySends everything you work from again: the protocol, the workspace brief, this board's brief, your persona's …

Sends everything you work from again: the protocol, the workspace brief, this board's brief, your persona's brief and a digest of the rules. Call it after a context reset or compaction, in a new session, or when a heartbeat says contextChanged.

ParameterTypeDescription
runtimeHandlestringoptionalA short name for this agent or sub-agent. Use a different one for each sub-agent.
boardIdstringoptionalBoard id or slug.
personastringoptionalThe persona to act as.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "get_context",
    "arguments": {}
  }
}
get_setupread-onlyYour first call on a new connection. It says what this connection can do and what exists: the boards you …

Your first call on a new connection. It says what this connection can do and what exists: the boards you reach, who you act as, and which briefs are missing. It gives the steps to set yourself up and the questions to ask. Part "rules" returns the exact rule and skill to install. Part "briefs" returns how to write the briefs.

ParameterTypeDescription
partstringoptionalrules or briefs. Leave it out for the setup steps.
boardIdstringoptionalThe board the rules are for (id or slug), on a workspace link.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "get_setup",
    "arguments": {}
  }
}
heartbeatcan modifyKeeps your claim alive, a reading claim too. Call it about every 5 minutes. A comment with your runId counts …

Keeps your claim alive, a reading claim too. Call it about every 5 minutes. A comment with your runId counts too. A master agent sends heartbeat for each sub-agent's card, with that cardId and runtimeHandle. Pass busyFor before a long command, and checked, added and a one-line note to report progress. In a batch, one beat keeps every card.

ParameterTypeDescription
cardIdstring | numberrequiredCard id, number (12) or key (WEB-12).
runIdstringoptionalRun id from claim_next.
runtimeHandlestringoptionalA short name for this agent or sub-agent. Use a different one for each sub-agent.
busyFornumberoptionalMinutes a long command will take.
checkedstring | number[]optionalChecklist items you finished: positions (from 1) or texts.
addedstring[]optionalNew checklist items.
notestringoptionalOne line on your progress.
prUrlstringoptionalPull request URL (https), saved on the card you hold.
boardIdstringoptionalBoard id or slug.
personastringoptionalThe persona to act as.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "heartbeat",
    "arguments": {
      "cardId": "..."
    }
  }
}
inboxcan modifyReads what waits for you: answers to your questions, and comments that @mention you or your personas. Marks …

Reads what waits for you: answers to your questions, and comments that @mention you or your personas. Marks both as seen. Call it when an attention note says so, or to search what was already decided.

ParameterTypeDescription
sincenumberoptionalOnly answers after this time (milliseconds).
querystringoptionalWords that must appear in the question or the answer.
daysnumberoptionalOnly answers and mentions from the last N days.
minebooleanoptionalOnly answers to what you raised or the cards you hold.
allbooleanoptionalInclude mentions you have already seen.
limitnumberoptionalHow many answers and mentions to return.
boardIdstringoptionalBoard id or slug.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "inbox",
    "arguments": {}
  }
}
labelcan modifydestructiveChanges a label on every card that carries it: delete, rename, merge into another label, or archive. Call it …

Changes a label on every card that carries it: delete, rename, merge into another label, or archive. Call it without confirm first. The answer says how many cards carry the label, and nothing changes. Change a label only when a person or your task asks you to. Never to tidy up. To apply, pass confirm true and a short reason.

ParameterTypeDescription
actionstringrequiredWhat to do to the label. One of: delete, rename, merge, archive
namestringrequiredThe label.
intostringoptionalMerge target, or the new name for rename.
confirmbooleanoptionalApply it. Left out, nothing changes.
reasonstringoptionalWhy, in one line. Needed with confirm.
boardIdstringoptionalBoard id or slug.
personastringoptionalThe persona to act as.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "label",
    "arguments": {
      "action": "delete",
      "name": "..."
    }
  }
}
linkcan modifydestructiveMakes one card the blocking parent of another. The child waits until the parent reaches Done. Pass remove …

Makes one card the blocking parent of another. The child waits until the parent reaches Done. Pass remove true to take the link away again.

ParameterTypeDescription
parentIdstring | numberrequiredCard id, number (12) or key (WEB-12).
childIdstring | numberrequiredCard id, number (12) or key (WEB-12).
removebooleanoptionalTrue removes the link. Left out, it adds one.
boardIdstringoptionalBoard id or slug.
personastringoptionalThe persona to act as.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "link",
    "arguments": {
      "parentId": "...",
      "childId": "..."
    }
  }
}
list_boardsread-onlyLists the boards this connection reaches, with each board's id, slug, columns and card counts. Read-only.

Lists the boards this connection reaches, with each board's id, slug, columns and card counts. Read-only.

Takes no parameters.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "list_boards",
    "arguments": {}
  }
}
move_cardcan modifydestructiveMoves a card to a state or to an exact column. Pass summary with a move to Ready to send the card back for …

Moves a card to a state or to an exact column. Pass summary with a move to Ready to send the card back for changes. Pass clearWait to let agents claim the card again now.

ParameterTypeDescription
cardIdstring | numberrequiredCard id, number (12) or key (WEB-12).
statestringoptionallater, triage, todo, ready, running, blocked, review or done.
columnstringoptionalA column, by id or label.
columnIdstringoptionalA column, by id or label.
confirmbooleanoptionalNeeded to move a card into Done or Blocked.
summarystringoptionalWith a move to Ready: send the card back for changes, and say what to change.
clearWaitbooleanoptionalLet agents claim the card again now. Clears its saved pull request link and its wait. With no state or column, it moves nothing.
boardIdstringoptionalBoard id or slug.
personastringoptionalThe persona to act as.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "move_card",
    "arguments": {
      "cardId": "..."
    }
  }
}
promotecan modifyTurns a raised signal into a Triage card and marks the signal resolved.

Turns a raised signal into a Triage card and marks the signal resolved.

ParameterTypeDescription
signalIdstring | numberrequiredThe question's id.
boardIdstringoptionalBoard id or slug.
personastringoptionalThe persona to act as.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "promote",
    "arguments": {
      "signalId": "..."
    }
  }
}
raisecan modifyFiles a signal: assumption (the default), question, concern, rule proposal, deferred or observation. Only …

Files a signal: assumption (the default), question, concern, rule proposal, deferred or observation. Only blocking parks your card: keep it for a choice you cannot undo. Offer options only with type question, and mark your advice. If you are sure, act and finish the card. If not, ask a teammate in a comment with @name. Use raise only when a person must decide.

ParameterTypeDescription
typestringoptionalassumption, question, concern, rule (a rule proposal), deferred or observation. Default assumption, or question when you send options.
severitystringrequiredHow much it matters. One of: info, low, normal, high
titlestringrequiredThe question as one full sentence. A person reads this first.
bodystringoptionalThe facts behind the question, in a few lines. Do not paste the card.
cardIdstring | numberoptionalCard id, number (12) or key (WEB-12).
sessionIdstringoptionalGroups the notes from one session.
needsPersonbooleanoptionalOnly a person may answer.
kindstringoptionalapproval: a yes or no from a person. Use it for every yes or no, so the person sees Approve and Decline. open: any answer. Default open. One of: approval, open
tostringoptionalThe person to ask, by name or id.
blockingbooleanoptionalPark your card until someone answers.
optionsobject[]optionalThe answers you offer. Offer them for every choice. The person may still write their own.
selectstringoptionalone: single. many: several. Default one. One of: one, many
boardIdstringoptionalBoard id or slug.
personastringoptionalThe persona to act as.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "raise",
    "arguments": {
      "severity": "info",
      "title": "..."
    }
  }
}
releasecan modifydestructiveEnds a reading claim, or hands back a card you hold when it does not suit you, or not now. It goes back where …

Ends a reading claim, or hands back a card you hold when it does not suit you, or not now. It goes back where it was and counts for nothing. You do not get it again, unless you pass until. In a batch it hands back that card only.

ParameterTypeDescription
cardIdstring | numberrequiredCard id, number (12) or key (WEB-12).
reasonstringoptionalWhy it does not suit you. Include no secrets.
tostringoptionalA persona that may suit it; it is mentioned in a comment.
untilstringoptionalA time (ISO) when the card comes back to you.
effortstringoptionalThe effort the card needs, so a stronger agent takes it. One of: low, medium, high
runIdstringoptionalRun id from claim_next.
boardIdstringoptionalBoard id or slug.
personastringoptionalThe persona to act as.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "release",
    "arguments": {
      "cardId": "..."
    }
  }
}
request_reviewcan modifyEnds your run and sends the card to Review for a person to check, whatever the board's Done rules are. Takes …

Ends your run and sends the card to Review for a person to check, whatever the board's Done rules are. Takes the same handoff as complete. It clears the assignee. Pass reviewer to name who reviews.

ParameterTypeDescription
cardIdstring | numberrequiredCard id, number (12) or key (WEB-12).
summarystringrequiredWhat you did and why, and what to check.
metadataobjectrequiredThe handoff: files_changed, verification (what you ran and saw), residual_risk (text, or "none"). Add commit_sha and test_output when the claim has handoffNeeds.
reviewerstringoptionalWho should review it.
ownerstringoptionalA person (name or id) to own a card with no owner.
ownerNotestringoptionalWhy, for that person.
columnstringoptionalA Review column, by id or label.
prUrlstringoptionalPull request URL (https), saved on the card you hold.
boardIdstringoptionalBoard id or slug.
personastringoptionalThe persona to act as.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "request_review",
    "arguments": {
      "cardId": "...",
      "summary": "...",
      "metadata": {}
    }
  }
}
resolvecan modifyCloses a question. With answer, it answers a teammate's question when you know the answer. Without answer, it …

Closes a question. With answer, it answers a teammate's question when you know the answer. Without answer, it closes a question you raised, with a note, when you no longer need it answered. Only a person may close a question that has needsPerson. A card parked on it returns to Ready.

ParameterTypeDescription
signalIdstring | numberrequiredThe question's id.
answerstringoptionalThe answer. Needs Worker. Leave it out to close your own question.
notestringoptionalWithout answer: why you no longer need an answer.
boardIdstringoptionalBoard id or slug.
personastringoptionalThe persona to act as.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "resolve",
    "arguments": {
      "signalId": "..."
    }
  }
}
rulescan modifyKeeps your installed rules in step. With ruleId, it records where you installed a rule and its hash. Call it …

Keeps your installed rules in step. With ruleId, it records where you installed a rule and its hash. Call it once per file after you install a rule from get_setup (part "rules"). Without ruleId, it tells you which rules you hold are stale. Pass their ids and hashes before you finish work or after a sync.

ParameterTypeDescription
ruleIdstringoptionalThe rule's id. Give it to record where you installed it.
clientstringoptionalYour tool's name.
pathstringoptionalWhere you wrote it.
hashstringoptionalThe rule's hash, as delivered.
rulesobject[]optionalWithout ruleId: the rules you installed, id and hash.
boardIdstringoptionalBoard id or slug.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "rules",
    "arguments": {}
  }
}
set_briefcan modifydestructiveReplaces a brief: this board's brief, or with scope workspace the workspace brief that every board's agents …

Replaces a brief: this board's brief, or with scope workspace the workspace brief that every board's agents read. Use it only after the person sees the draft and says yes. How to write it: call get_setup with part "briefs".

ParameterTypeDescription
scopestringoptionalboard (the default) or workspace. One of: board, workspace
bodystringrequiredThe whole brief, in markdown. It replaces the old one.
boardIdstringoptionalBoard id or slug.
personastringoptionalThe persona to act as.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "set_brief",
    "arguments": {
      "body": "..."
    }
  }
}
showread-onlyReads one card with its comments, questions and answers, prior runs and capacity. Read-only; it needs no …

Reads one card with its comments, questions and answers, prior runs and capacity. Read-only; it needs no claim or persona.

ParameterTypeDescription
cardIdstring | numberrequiredCard id, number (12) or key (WEB-12).
commentsBeforenumberoptionalOlder comments: commentsBefore from an earlier answer.
boardIdstringoptionalBoard id or slug.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "show",
    "arguments": {
      "cardId": "..."
    }
  }
}
stop_runcan modifydestructiveEnds the active run on a card now. The claim ends and the card goes back to Ready. Use it when an agent is …

Ends the active run on a card now. The claim ends and the card goes back to Ready. Use it when an agent is stuck, wrong, or must be cut off. In a batch it stops that card only; batch true stops all.

ParameterTypeDescription
cardIdstring | numberrequiredCard id, number (12) or key (WEB-12).
batchbooleanoptionalStop the whole batch. Left out, only this card stops.
boardIdstringoptionalBoard id or slug.
personastringoptionalThe persona to act as.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "stop_run",
    "arguments": {
      "cardId": "..."
    }
  }
}
toggle_taskcan modifyFlips a checklist item on a card between done and not done, or sets it to a given state. Pick the item by …

Flips a checklist item on a card between done and not done, or sets it to a given state. Pick the item by position or by text.

ParameterTypeDescription
cardIdstring | numberrequiredCard id, number (12) or key (WEB-12).
indexnumberoptionalThe item's position, from 1.
textstringoptionalThe item's text, instead of a position.
donebooleanoptionalSet it to this instead of flipping it.
boardIdstringoptionalBoard id or slug.
personastringoptionalThe persona to act as.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "toggle_task",
    "arguments": {
      "cardId": "..."
    }
  }
}
undocan modifydestructiveReverts the card's latest recorded change. Calling it again redoes the change.

Reverts the card's latest recorded change. Calling it again redoes the change.

ParameterTypeDescription
cardIdstring | numberrequiredCard id, number (12) or key (WEB-12).
boardIdstringoptionalBoard id or slug.
personastringoptionalThe persona to act as.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "undo",
    "arguments": {
      "cardId": "..."
    }
  }
}
update_cardcan modifydestructiveChanges any of a card's fields in one call, and archives or restores it (archived). Fields you leave out stay …

Changes any of a card's fields in one call, and archives or restores it (archived). Fields you leave out stay as they are. Pass updates to change several cards at once. Pass checklist as {add, remove} to change items in place. To move a card use move_card. A field that changed since you read the card refuses the call: call show, then write again.

ParameterTypeDescription
cardIdstring | numberoptionalCard id, number (12) or key (WEB-12).
titlestringoptional
bodystringoptionalThe description (markdown).
acceptancestring | nulloptionalWhat done means. Null clears it.
verifyCommandstring | nulloptionalThe command that proves it.
prioritynumberoptional3 urgent, 2 high, 1 normal, 0 low.
assigneestring | nulloptionalA persona name. Null clears it.
ownerstringoptionalA person (name or id) to own a card with no owner.
ownerNotestringoptionalWhy, for that person.
tenantstring | nulloptionalA group, such as a client.
effortstring | nulloptionallow, medium or high.
estimatestring | nulloptionalXS, S, M, L or XL. Needs the board's estimates setting.
labelsstring[]optionalThe whole set. addLabels and removeLabels change some.
addLabelsstring[]optional
removeLabelsstring[]optional
dueAtstring | number | nulloptionalA due date. Needs the board's due dates setting.
snoozeUntilstring | number | nulloptionalHide the card until this date. Null clears it.
parkbooleanoptionalWith snoozeUntil: park in Snoozed. Default true.
checklistarray | objectoptionalAn array replaces the list with {text, done} items. An object changes it: {add: [texts], remove: [positions from 1, or texts]}.
modelHintstring | nulloptionalA model the work suits.
workspaceHintstring | nulloptionalWhere the work happens.
touchPathsstring[]optionalFiles it will touch.
skillPinsstring[]optionalSkills to load first.
branchstring | nulloptional
prUrlstring | nulloptionalThe pull request (https).
expeditebooleanoptionalLet the card pass the WIP cap and be claimed first.
recurobject | nulloptionalRepeat the card: every (daily, weekly, monthly), at, to. Null stops it.
goalModebooleanoptionalKeep going until the acceptance criteria hold.
maxTurnsnumber | nulloptionalTurns in goal mode. Null clears it.
maxRuntimeMsnumber | nulloptionalLongest run in milliseconds. Null clears it.
circuitLimitnumberoptionalFailures that stop claims of the card.
archivedbooleanoptionalTrue archives, false restores.
versionnumberoptionalThe card version show gave you. Left out, this connection's last read counts.
updatesobject[]optionalSeveral cards: each has cardId and the fields above.
verbosebooleanoptionalReturn the whole card.
boardIdstringoptionalBoard id or slug.
personastringoptionalThe persona to act as.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "update_card",
    "arguments": {}
  }
}
update_personacan modifydestructiveChanges one persona's name, title, description or brief. Use it only while you act as the person (leave …

Changes one persona's name, title, description or brief. Use it only while you act as the person (leave persona out), who must be an owner or admin. A connection that acts as a persona cannot use it. Use it after the person sees the text and says yes. It never changes whether a persona may mark work done.

ParameterTypeDescription
targetstringrequiredThe persona to change: its name or id.
namestringoptionalThe new name.
titlestringoptionalThe new title.
descriptionstringoptionalWhat the persona is for. Other agents read it in the team list.
briefstringoptionalThe whole new brief, in markdown. It replaces the old one.

Example call (required arguments only, placeholder values):

{
  "method": "tools/call",
  "params": {
    "name": "update_persona",
    "arguments": {
      "target": "..."
    }
  }
}

Prompts 6

Badge

Maintain this server? Put its live status in your README:

MCP status badge

[![MCP status](https://mcp.aianytime.net/badge/kanbanmcp.svg)](https://mcp.aianytime.net/s/kanbanmcp/)

Edit this entry · Report a problem

More in Work & productivity

Checks record what a server answered, not whether it is safe. A listing is not a security audit; read a server's source and permissions before you connect it. Add a server · JSON · llms.txt · llms-full.txt

Browse: Agents, IDEs & developer tools · Search & discovery · Knowledge, memory & context · Media & generation · Security · Finance & markets · Marketing, content & social · Cloud, ops & data · Commerce, travel & logistics · Work & productivity · No account needed · Local servers