_ registry / mcp streamable-http · checked 46m ago

kanbanmcp

https://kanbanmcp.com

Registry code: cf6a7aefe5275c00

api record

This address lists the KanbanMCP tools. It reads no workspace and runs no tool. To use the tools, connect your own workspace address, such as https://kanbanmcp.com/your-workspace. Find it in Settings, under Connect. Your client then asks you to sign in.

endpoint
https://kanbanmcp.com/mcp
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is kanbanmcp live?
Yes — it answered the hub's last check (checked 46m ago). It answered 100% of checks over the last 30 days.
Is kanbanmcp free to use?
Not measured yet.
What tools does kanbanmcp have?
31 tools: toggle_task, delete_column, update_persona, comment, complete, request_review, find_cards, list_boards, ….
Is kanbanmcp safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
100%

90 days 100%· all time 100%

latency
422ms

last good check

priced tools
0

of 31 tools

_ answered our checks, 90 days 1 checks · signed record
  • unknown → live
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

_ what it can do 31 tools
31 never probed 0 of 31 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • toggle_task unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "cardId"
      ],
      "properties": {
        "done": {
          "type": "boolean",
          "description": "Set it to this instead of flipping it."
        },
        "text": {
          "type": "string",
          "description": "The item's text, instead of a position."
        },
        "index": {
          "type": "number",
          "description": "The item's position, from 1."
        },
        "cardId": {
          "type": [
            "string",
            "number"
          ],
          "description": "Card id, number (12) or key (WEB-12)."
        },
        "boardId": {
          "type": "string",
          "description": "Board id or slug."
        },
        "persona": {
          "type": "string",
          "description": "The persona to act as."
        }
      }
    }
    arguments 35 lines
  • delete_column unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "required": [
        "columnId"
      ],
      "properties": {
        "into": {
          "type": "string",
          "description": "The column that receives its cards. Needed when it holds any."
        },
        "boardId": {
          "type": "string",
          "description": "Board id or slug."
        },
        "persona": {
          "type": "string",
          "description": "The persona to act as."
        },
        "columnId": {
          "type": "string",
          "description": "A column, by id or label."
        }
      }
    }
    arguments 24 lines
  • update_persona unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "target"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "The new name."
        },
        "brief": {
          "type": "string",
          "description": "The whole new brief, in markdown. It replaces the old one."
        },
        "title": {
          "type": "string",
          "description": "The new title."
        },
        "target": {
          "type": "string",
          "description": "The persona to change: its name or id."
        },
        "description": {
          "type": "string",
          "description": "What the persona is for. Other agents read it in the team list."
        }
      }
    }
    arguments 28 lines
  • comment unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "body": {
          "type": "string",
          "description": "The comment. @name notifies a person or persona."
        },
        "runId": {
          "type": "string",
          "description": "Run id from claim_next."
        },
        "cardId": {
          "type": [
            "string",
            "number"
          ],
          "description": "Card id, number (12) or key (WEB-12)."
        },
        "boardId": {
          "type": "string",
          "description": "Board id or slug."
        },
        "persona": {
          "type": "string",
          "description": "The persona to act as."
        },
        "verdict": {
          "enum": [
            "approve",
            "approve_with_changes",
            "reject"
          ],
          "type": "string",
          "description": "Your review result. Send it on the comment that ends a review of a card in Review. Everyone who looks at the card sees it."
        },
        "comments": {
          "type": "array",
          "items": {
            "type": "object"
          },
          "description": "Several comments: each has cardId and body. An item may take verdict."
        },
        "idempotencyKey": {
          "type": "string",
          "description": "The same key again adds one comment. Items in comments take it too."
        }
      }
    }
    arguments 48 lines
  • complete unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "cardId",
        "summary",
        "metadata"
      ],
      "properties": {
        "done": {
          "type": "boolean",
          "description": "Mark it Done. Only has an effect where a person signs off."
        },
        "prUrl": {
          "type": "string",
          "description": "Pull request URL (https), saved on the card you hold."
        },
        "runId": {
          "type": "string",
          "description": "Run id from claim_next."
        },
        "cardId": {
          "type": [
            "string",
            "number"
          ],
          "description": "Card id, number (12) or key (WEB-12)."
        },
        "boardId": {
          "type": "string",
          "description": "Board id or slug."
        },
        "changes": {
          "type": "boolean",
          "description": "On a claim from Review: send the card back to Ready. summary gives the steps."
        },
        "persona": {
          "type": "string",
          "description": "The persona to act as."
        },
        "summary": {
          "type": "string",
          "description": "What you did and why, including options you ruled out."
        },
        "metadata": {
          "type": "object",
          "properties": {
            "verification": {
              "type": "string"
            },
            "files_changed": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "residual_risk": {
              "type": "string"
            }
          },
          "description": "The handoff: files_changed, verification (what you ran and saw), residual_risk (text, or \"none\")."
        }
      }
    }
    arguments 63 lines
  • request_review unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "cardId",
        "summary",
        "metadata"
      ],
      "properties": {
        "owner": {
          "type": "string",
          "description": "A person (name or id) to own a card with no owner."
        },
        "prUrl": {
          "type": "string",
          "description": "Pull request URL (https), saved on the card you hold."
        },
        "cardId": {
          "type": [
            "string",
            "number"
          ],
          "description": "Card id, number (12) or key (WEB-12)."
        },
        "column": {
          "type": "string",
          "description": "A Review column, by id or label."
        },
        "boardId": {
          "type": "string",
          "description": "Board id or slug."
        },
        "persona": {
          "type": "string",
          "description": "The persona to act as."
        },
        "summary": {
          "type": "string",
          "description": "What you did and why, and what to check."
        },
        "metadata": {
          "type": "object",
          "properties": {
            "verification": {
              "type": "string"
            },
            "files_changed": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "residual_risk": {
              "type": "string"
            }
          },
          "description": "The handoff: files_changed, verification (what you ran and saw), residual_risk (text, or \"none\")."
        },
        "reviewer": {
          "type": "string",
          "description": "Who should review it."
        },
        "ownerNote": {
          "type": "string",
          "description": "Why, for that person."
        }
      }
    }
    arguments 67 lines
  • find_cards unknown 46m ago

    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.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "label": {
          "type": "string"
        },
        "limit": {
          "type": "number"
        },
        "owner": {
          "type": "string",
          "description": "A person's name or id, me or none."
        },
        "query": {
          "type": "string",
          "description": "Words to find, and tokens: priority: (urgent, high, normal, low), effort: (high, medium, low, none), label:. Repeat priority: or effort: to match any."
        },
        "quiet": {
          "type": "boolean",
          "description": "Only claims whose agent went quiet."
        },
        "state": {
          "type": "string",
          "description": "later, triage, todo, ready, running, blocked, review or done."
        },
        "column": {
          "type": "string",
          "description": "A column, by id or label."
        },
        "cursor": {
          "type": "string",
          "description": "nextCursor from the last page."
        },
        "boardId": {
          "type": "string",
          "description": "One board, by id or slug. Leave it out for every board."
        },
        "assignee": {
          "type": "string",
          "description": "A persona name, me or none."
        },
        "mentionsMe": {
          "type": "boolean",
          "description": "Only cards with an unread mention of you."
        },
        "commentedBy": {
          "type": "string",
          "description": "A persona name or me."
        },
        "hasComments": {
          "type": "boolean"
        },
        "updatedSince": {
          "type": "number",
          "description": "Only cards active since this time (ms)."
        },
        "notCommentedBy": {
          "type": "string",
          "description": "A persona name or me."
        },
        "includeArchived": {
          "type": "boolean"
        },
        "unansweredQuestion": {
          "type": "boolean",
          "description": "Only cards with an open question."
        }
      }
    }
    arguments 69 lines
  • list_boards unknown 46m ago

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

    mcp-tool

    {
      "type": "object",
      "additionalProperties": false
    }
    arguments 4 lines
  • claim_next unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "peek": {
          "type": "boolean",
          "description": "Claim nothing; show the result."
        },
        "state": {
          "type": "string",
          "description": "ready (the default) or review."
        },
        "cardId": {
          "type": "string",
          "description": "Work this one card: a number like ABC-12, or an id. The filters are ignored."
        },
        "column": {
          "type": "string",
          "description": "A column, by id or label."
        },
        "effort": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "low, medium, high or none (no effort set): any of these."
        },
        "labels": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Only cards with any of these labels."
        },
        "boardId": {
          "type": "string",
          "description": "Board id or slug."
        },
        "cardIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Cards to claim as one batch. Send more to add to it."
        },
        "context": {
          "enum": [
            "full"
          ],
          "type": "string",
          "description": "Pass full to get every piece of context again."
        },
        "efforts": {
          "type": "object",
          "description": "With cardIds: card to low, medium or high, if unset.",
          "additionalProperties": {
            "type": "string"
          }
        },
        "exclude": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Cards to skip, by id or number."
        },
        "persona": {
          "type": "string",
          "description": "The persona to act as."
        },
        "reading": {
          "type": "boolean",
          "description": "With cardId: a reading claim. The card does not move."
        },
        "assignee": {
          "type": "string",
          "description": "me (only yours), a persona name, none (unassigned only) or any."
        },
        "batchTitle": {
          "type": "string",
          "description": "With cardIds: a batch title."
        },
        "minPriority": {
          "type": "number",
          "description": "Only cards with at least this priority."
        },
        "runtimeHandle": {
          "type": "string",
          "description": "A short name for this agent or sub-agent. Use a different one for each sub-agent."
        },
        "acknowledgeOverlap": {
          "type": "boolean",
          "description": "Claim a card whose files overlap a running card."
        }
      }
    }
    arguments 95 lines
  • show unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "required": [
        "cardId"
      ],
      "properties": {
        "cardId": {
          "type": [
            "string",
            "number"
          ],
          "description": "Card id, number (12) or key (WEB-12)."
        },
        "boardId": {
          "type": "string",
          "description": "Board id or slug."
        },
        "commentsBefore": {
          "type": "number",
          "description": "Older comments: commentsBefore from an earlier answer."
        }
      }
    }
    arguments 23 lines
  • heartbeat unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "cardId"
      ],
      "properties": {
        "note": {
          "type": "string",
          "description": "One line on your progress."
        },
        "added": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "New checklist items."
        },
        "prUrl": {
          "type": "string",
          "description": "Pull request URL (https), saved on the card you hold."
        },
        "runId": {
          "type": "string",
          "description": "Run id from claim_next."
        },
        "cardId": {
          "type": [
            "string",
            "number"
          ],
          "description": "Card id, number (12) or key (WEB-12)."
        },
        "boardId": {
          "type": "string",
          "description": "Board id or slug."
        },
        "busyFor": {
          "type": "number",
          "description": "Minutes a long command will take."
        },
        "checked": {
          "type": "array",
          "items": {
            "type": [
              "string",
              "number"
            ]
          },
          "description": "Checklist items you finished: positions (from 1) or texts."
        },
        "persona": {
          "type": "string",
          "description": "The persona to act as."
        },
        "runtimeHandle": {
          "type": "string",
          "description": "A short name for this agent or sub-agent. Use a different one for each sub-agent."
        }
      }
    }
    arguments 60 lines
  • block unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "cardId",
        "kind"
      ],
      "properties": {
        "on": {
          "type": "string",
          "description": "For waiting: the card to wait for."
        },
        "kind": {
          "enum": [
            "dependency",
            "needs_input",
            "capability",
            "transient",
            "auth",
            "waiting",
            "verify_failed"
          ],
          "type": "string",
          "description": "Why you cannot continue."
        },
        "runId": {
          "type": "string",
          "description": "Run id from claim_next."
        },
        "until": {
          "type": "string",
          "description": "A time (ISO) when the card comes back to you."
        },
        "cardId": {
          "type": [
            "string",
            "number"
          ],
          "description": "Card id, number (12) or key (WEB-12)."
        },
        "output": {
          "type": "string",
          "description": "For verify_failed: what it printed. Strip secrets first."
        },
        "reason": {
          "type": "string",
          "description": "Say it for the next reader. Include no secrets. Needed unless verify_failed."
        },
        "boardId": {
          "type": "string",
          "description": "Board id or slug."
        },
        "command": {
          "type": "string",
          "description": "For verify_failed: the command that ran."
        },
        "options": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "label"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "label": {
                "type": "string"
              },
              "detail": {
                "type": "string"
              },
              "recommended": {
                "type": "boolean"
              }
            }
          },
          "description": "For needs_input: 2 to 6 answers, as in raise. Mark your advice. None means Approve or Decline."
        },
        "persona": {
          "type": "string",
          "description": "The persona to act as."
        },
        "question": {
          "type": "string",
          "description": "The question. Needed with needs_input."
        }
      }
    }
    arguments 89 lines
  • release unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "cardId"
      ],
      "properties": {
        "to": {
          "type": "string",
          "description": "A persona that may suit it; it is mentioned in a comment."
        },
        "runId": {
          "type": "string",
          "description": "Run id from claim_next."
        },
        "until": {
          "type": "string",
          "description": "A time (ISO) when the card comes back to you."
        },
        "cardId": {
          "type": [
            "string",
            "number"
          ],
          "description": "Card id, number (12) or key (WEB-12)."
        },
        "effort": {
          "enum": [
            "low",
            "medium",
            "high"
          ],
          "type": "string",
          "description": "The effort the card needs, so a stronger agent takes it."
        },
        "reason": {
          "type": "string",
          "description": "Why it does not suit you. Include no secrets."
        },
        "boardId": {
          "type": "string",
          "description": "Board id or slug."
        },
        "persona": {
          "type": "string",
          "description": "The persona to act as."
        }
      }
    }
    arguments 48 lines
  • raise unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "severity",
        "title"
      ],
      "properties": {
        "to": {
          "type": "string",
          "description": "The person to ask, by name or id."
        },
        "body": {
          "type": "string",
          "description": "The facts behind the question, in a few lines. Do not paste the card."
        },
        "kind": {
          "enum": [
            "approval",
            "open"
          ],
          "type": "string",
          "description": "approval: 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."
        },
        "type": {
          "type": "string",
          "description": "assumption, question, concern, rule (a rule proposal), deferred or observation. Default assumption, or question when you send options."
        },
        "title": {
          "type": "string",
          "description": "The question as one full sentence. A person reads this first."
        },
        "cardId": {
          "type": [
            "string",
            "number"
          ],
          "description": "Card id, number (12) or key (WEB-12)."
        },
        "select": {
          "enum": [
            "one",
            "many"
          ],
          "type": "string",
          "description": "one: single. many: several. Default one."
        },
        "boardId": {
          "type": "string",
          "description": "Board id or slug."
        },
        "options": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "label"
            ],
            "properties": {
              "id": {
                "type": "string",
                "description": "Short id. Made from the label if left out."
              },
              "label": {
                "type": "string",
                "description": "Short text."
              },
              "detail": {
                "type": "string",
                "description": "Its cost."
              },
              "recommended": {
                "type": "boolean",
                "description": "Your advice. One at most."
              }
            }
          },
          "description": "The answers you offer. Offer them for every choice. The person may still write their own."
        },
        "persona": {
          "type": "string",
          "description": "The persona to act as."
        },
        "blocking": {
          "type": "boolean",
          "description": "Park your card until someone answers."
        },
        "severity": {
          "enum": [
            "info",
            "low",
            "normal",
            "high"
          ],
          "type": "string",
          "description": "How much it matters."
        },
        "sessionId": {
          "type": "string",
          "description": "Groups the notes from one session."
        },
        "needsPerson": {
          "type": "boolean",
          "description": "Only a person may answer."
        }
      }
    }
    arguments 106 lines
  • inbox unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "all": {
          "type": "boolean",
          "description": "Include mentions you have already seen."
        },
        "days": {
          "type": "number",
          "description": "Only answers and mentions from the last N days."
        },
        "mine": {
          "type": "boolean",
          "description": "Only answers to what you raised or the cards you hold."
        },
        "limit": {
          "type": "number",
          "description": "How many answers and mentions to return."
        },
        "query": {
          "type": "string",
          "description": "Words that must appear in the question or the answer."
        },
        "since": {
          "type": "number",
          "description": "Only answers after this time (milliseconds)."
        },
        "boardId": {
          "type": "string",
          "description": "Board id or slug."
        }
      }
    }
    arguments 33 lines
  • resolve unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "signalId"
      ],
      "properties": {
        "note": {
          "type": "string",
          "description": "Without answer: why you no longer need an answer."
        },
        "answer": {
          "type": "string",
          "description": "The answer. Needs Worker. Leave it out to close your own question."
        },
        "boardId": {
          "type": "string",
          "description": "Board id or slug."
        },
        "persona": {
          "type": "string",
          "description": "The persona to act as."
        },
        "signalId": {
          "type": [
            "string",
            "number"
          ],
          "description": "The question's id."
        }
      }
    }
    arguments 31 lines
  • events_since unknown 46m ago

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

    mcp-tool

    {
      "type": "object",
      "properties": {
        "cursor": {
          "type": "number",
          "description": "The last event id you saw. Default 0."
        },
        "boardId": {
          "type": "string",
          "description": "Board id or slug."
        }
      }
    }
    arguments 13 lines
  • get_setup unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "part": {
          "type": "string",
          "description": "rules or briefs. Leave it out for the setup steps."
        },
        "boardId": {
          "type": "string",
          "description": "The board the rules are for (id or slug), on a workspace link."
        }
      }
    }
    arguments 13 lines
  • get_context unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "boardId": {
          "type": "string",
          "description": "Board id or slug."
        },
        "persona": {
          "type": "string",
          "description": "The persona to act as."
        },
        "runtimeHandle": {
          "type": "string",
          "description": "A short name for this agent or sub-agent. Use a different one for each sub-agent."
        }
      }
    }
    arguments 17 lines
  • rules unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "hash": {
          "type": "string",
          "description": "The rule's hash, as delivered."
        },
        "path": {
          "type": "string",
          "description": "Where you wrote it."
        },
        "rules": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "hash": {
                "type": "string"
              },
              "ruleId": {
                "type": "string"
              }
            }
          },
          "description": "Without ruleId: the rules you installed, id and hash."
        },
        "client": {
          "type": "string",
          "description": "Your tool's name."
        },
        "ruleId": {
          "type": "string",
          "description": "The rule's id. Give it to record where you installed it."
        },
        "boardId": {
          "type": "string",
          "description": "Board id or slug."
        }
      }
    }
    arguments 40 lines
  • create_card unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "body": {
          "type": "string",
          "description": "The description (markdown)."
        },
        "park": {
          "type": "boolean",
          "description": "With snoozeUntil: park in Snoozed. Default true."
        },
        "cards": {
          "type": "array",
          "items": {
            "type": "object"
          },
          "description": "Several cards: each takes the fields above."
        },
        "claim": {
          "type": "boolean",
          "description": "Take the new card in the same call. The reply is the claim."
        },
        "dueAt": {
          "type": [
            "string",
            "number",
            "null"
          ],
          "description": "A due date. Needs the board's due dates setting."
        },
        "owner": {
          "type": "string",
          "description": "A person (name or id) to own a card with no owner."
        },
        "prUrl": {
          "type": [
            "string",
            "null"
          ],
          "description": "The pull request (https)."
        },
        "recur": {
          "type": [
            "object",
            "null"
          ],
          "description": "Repeat the card: every (daily, weekly, monthly), at, to. Null stops it."
        },
        "state": {
          "type": "string",
          "description": "later, triage, todo, ready, running, blocked, review or done."
        },
        "title": {
          "type": "string"
        },
        "branch": {
          "type": [
            "string",
            "null"
          ]
        },
        "column": {
          "type": "string",
          "description": "A column, by id or label."
        },
        "effort": {
          "type": [
            "string",
            "null"
          ],
          "description": "low, medium or high."
        },
        "labels": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The whole set. addLabels and removeLabels change some."
        },
        "tenant": {
          "type": [
            "string",
            "null"
          ],
          "description": "A group, such as a client."
        },
        "unique": {
          "type": "boolean",
          "description": "Refuse if a similar card exists."
        },
        "boardId": {
          "type": "string",
          "description": "Board id or slug."
        },
        "comment": {
          "type": "string",
          "description": "An opening comment. @name notifies."
        },
        "parents": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Cards that must finish first, by number or key."
        },
        "persona": {
          "type": "string",
          "description": "The persona to act as."
        },
        "verbose": {
          "type": "boolean",
          "description": "Return the whole card."
        },
        "assignee": {
          "type": [
            "string",
            "null"
          ],
          "description": "A persona name. Null clears it."
        },
        "copyFrom": {
          "type": [
            "string",
            "number"
          ],
          "description": "A card to copy. Fields you pass replace its."
        },
        "estimate": {
          "type": [
            "string",
            "null"
          ],
          "description": "XS, S, M, L or XL. Needs the board's estimates setting."
        },
        "expedite": {
          "type": "boolean",
          "description": "Let the card pass the WIP cap and be claimed first."
        },
        "goalMode": {
          "type": "boolean",
          "description": "Keep going until the acceptance criteria hold."
        },
        "maxTurns": {
          "type": [
            "number",
            "null"
          ],
          "description": "Turns in goal mode. Null clears it."
        },
        "priority": {
          "type": "number",
          "description": "3 urgent, 2 high, 1 normal, 0 low."
        },
        "addLabels": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "checklist": {
          "type": "array",
          "items": {
            "type": "object"
          },
          "description": "The whole checklist: {text, done} items."
        },
        "modelHint": {
          "type": [
            "string",
            "null"
          ],
          "description": "A model the work suits."
        },
        "ownerNote": {
          "type": "string",
          "description": "Why, for that person."
        },
        "skillPins": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Skills to load first."
        },
        "acceptance": {
          "type": [
            "string",
            "null"
          ],
          "description": "What done means. Null clears it."
        },
        "touchPaths": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Files it will touch."
        },
        "snoozeUntil": {
          "type": [
            "string",
            "number",
            "null"
          ],
          "description": "Hide the card until this date. Null clears it."
        },
        "circuitLimit": {
          "type": "number",
          "description": "Failures that stop claims of the card."
        },
        "maxRuntimeMs": {
          "type": [
            "number",
            "null"
          ],
          "description": "Longest run in milliseconds. Null clears it."
        },
        "removeLabels": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "verifyCommand": {
          "type": [
            "string",
            "null"
          ],
          "description": "The command that proves it."
        },
        "workspaceHint": {
          "type": [
            "string",
            "null"
          ],
          "description": "Where the work happens."
        },
        "idempotencyKey": {
          "type": "string",
          "description": "The same key again returns the same card."
        }
      }
    }
    arguments 243 lines
  • update_card unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "body": {
          "type": "string",
          "description": "The description (markdown)."
        },
        "park": {
          "type": "boolean",
          "description": "With snoozeUntil: park in Snoozed. Default true."
        },
        "dueAt": {
          "type": [
            "string",
            "number",
            "null"
          ],
          "description": "A due date. Needs the board's due dates setting."
        },
        "owner": {
          "type": "string",
          "description": "A person (name or id) to own a card with no owner."
        },
        "prUrl": {
          "type": [
            "string",
            "null"
          ],
          "description": "The pull request (https)."
        },
        "recur": {
          "type": [
            "object",
            "null"
          ],
          "description": "Repeat the card: every (daily, weekly, monthly), at, to. Null stops it."
        },
        "title": {
          "type": "string"
        },
        "branch": {
          "type": [
            "string",
            "null"
          ]
        },
        "cardId": {
          "type": [
            "string",
            "number"
          ],
          "description": "Card id, number (12) or key (WEB-12)."
        },
        "effort": {
          "type": [
            "string",
            "null"
          ],
          "description": "low, medium or high."
        },
        "labels": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The whole set. addLabels and removeLabels change some."
        },
        "tenant": {
          "type": [
            "string",
            "null"
          ],
          "description": "A group, such as a client."
        },
        "boardId": {
          "type": "string",
          "description": "Board id or slug."
        },
        "persona": {
          "type": "string",
          "description": "The persona to act as."
        },
        "updates": {
          "type": "array",
          "items": {
            "type": "object"
          },
          "description": "Several cards: each has cardId and the fields above."
        },
        "verbose": {
          "type": "boolean",
          "description": "Return the whole card."
        },
        "version": {
          "type": "number",
          "description": "The card version show gave you. Left out, this connection's last read counts."
        },
        "archived": {
          "type": "boolean",
          "description": "True archives, false restores."
        },
        "assignee": {
          "type": [
            "string",
            "null"
          ],
          "description": "A persona name. Null clears it."
        },
        "estimate": {
          "type": [
            "string",
            "null"
          ],
          "description": "XS, S, M, L or XL. Needs the board's estimates setting."
        },
        "expedite": {
          "type": "boolean",
          "description": "Let the card pass the WIP cap and be claimed first."
        },
        "goalMode": {
          "type": "boolean",
          "description": "Keep going until the acceptance criteria hold."
        },
        "maxTurns": {
          "type": [
            "number",
            "null"
          ],
          "description": "Turns in goal mode. Null clears it."
        },
        "priority": {
          "type": "number",
          "description": "3 urgent, 2 high, 1 normal, 0 low."
        },
        "addLabels": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "checklist": {
          "type": [
            "array",
            "object"
          ],
          "items": {
            "type": "object"
          },
          "description": "An array replaces the list with {text, done} items. An object changes it: {add: [texts], remove: [positions from 1, or texts]}."
        },
        "modelHint": {
          "type": [
            "string",
            "null"
          ],
          "description": "A model the work suits."
        },
        "ownerNote": {
          "type": "string",
          "description": "Why, for that person."
        },
        "skillPins": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Skills to load first."
        },
        "acceptance": {
          "type": [
            "string",
            "null"
          ],
          "description": "What done means. Null clears it."
        },
        "touchPaths": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Files it will touch."
        },
        "snoozeUntil": {
          "type": [
            "string",
            "number",
            "null"
          ],
          "description": "Hide the card until this date. Null clears it."
        },
        "circuitLimit": {
          "type": "number",
          "description": "Failures that stop claims of the card."
        },
        "maxRuntimeMs": {
          "type": [
            "number",
            "null"
          ],
          "description": "Longest run in milliseconds. Null clears it."
        },
        "removeLabels": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "verifyCommand": {
          "type": [
            "string",
            "null"
          ],
          "description": "The command that proves it."
        },
        "workspaceHint": {
          "type": [
            "string",
            "null"
          ],
          "description": "Where the work happens."
        }
      }
    }
    arguments 223 lines
  • move_card unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "cardId"
      ],
      "properties": {
        "state": {
          "type": "string",
          "description": "later, triage, todo, ready, running, blocked, review or done."
        },
        "cardId": {
          "type": [
            "string",
            "number"
          ],
          "description": "Card id, number (12) or key (WEB-12)."
        },
        "column": {
          "type": "string",
          "description": "A column, by id or label."
        },
        "boardId": {
          "type": "string",
          "description": "Board id or slug."
        },
        "confirm": {
          "type": "boolean",
          "description": "Needed to move a card into Done or Blocked."
        },
        "persona": {
          "type": "string",
          "description": "The persona to act as."
        },
        "summary": {
          "type": "string",
          "description": "With a move to Ready: send the card back for changes, and say what to change."
        },
        "columnId": {
          "type": "string",
          "description": "A column, by id or label."
        },
        "clearWait": {
          "type": "boolean",
          "description": "Let agents claim the card again now. Clears its saved pull request link and its wait. With no state or column, it moves nothing."
        }
      }
    }
    arguments 47 lines
  • link unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "parentId",
        "childId"
      ],
      "properties": {
        "remove": {
          "type": "boolean",
          "description": "True removes the link. Left out, it adds one."
        },
        "boardId": {
          "type": "string",
          "description": "Board id or slug."
        },
        "childId": {
          "type": [
            "string",
            "number"
          ],
          "description": "Card id, number (12) or key (WEB-12)."
        },
        "persona": {
          "type": "string",
          "description": "The persona to act as."
        },
        "parentId": {
          "type": [
            "string",
            "number"
          ],
          "description": "Card id, number (12) or key (WEB-12)."
        }
      }
    }
    arguments 35 lines
  • undo unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "required": [
        "cardId"
      ],
      "properties": {
        "cardId": {
          "type": [
            "string",
            "number"
          ],
          "description": "Card id, number (12) or key (WEB-12)."
        },
        "boardId": {
          "type": "string",
          "description": "Board id or slug."
        },
        "persona": {
          "type": "string",
          "description": "The persona to act as."
        }
      }
    }
    arguments 23 lines
  • stop_run unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "cardId"
      ],
      "properties": {
        "batch": {
          "type": "boolean",
          "description": "Stop the whole batch. Left out, only this card stops."
        },
        "cardId": {
          "type": [
            "string",
            "number"
          ],
          "description": "Card id, number (12) or key (WEB-12)."
        },
        "boardId": {
          "type": "string",
          "description": "Board id or slug."
        },
        "persona": {
          "type": "string",
          "description": "The persona to act as."
        }
      }
    }
    arguments 27 lines
  • promote unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "required": [
        "signalId"
      ],
      "properties": {
        "boardId": {
          "type": "string",
          "description": "Board id or slug."
        },
        "persona": {
          "type": "string",
          "description": "The persona to act as."
        },
        "signalId": {
          "type": [
            "string",
            "number"
          ],
          "description": "The question's id."
        }
      }
    }
    arguments 23 lines
  • create_board unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "The board's name."
        },
        "slug": {
          "type": "string",
          "description": "The address part. Chosen from the name when left out."
        }
      }
    }
    arguments 16 lines
  • edit_column unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "label": {
          "type": "string",
          "description": "The label. Blank gives the state's name."
        },
        "state": {
          "type": "string",
          "description": "later, triage, todo, ready, running, blocked, review or done."
        },
        "boardId": {
          "type": "string",
          "description": "Board id or slug."
        },
        "persona": {
          "type": "string",
          "description": "The persona to act as."
        },
        "columnId": {
          "type": "string",
          "description": "The column to change, by id. Leave it out to add a column."
        },
        "position": {
          "type": "number",
          "description": "Place in the board order, from 0. Left out when adding, the column goes last."
        }
      }
    }
    arguments 29 lines
  • set_brief unknown never probed

    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".

    mcp-tool

    {
      "type": "object",
      "required": [
        "body"
      ],
      "properties": {
        "body": {
          "type": "string",
          "description": "The whole brief, in markdown. It replaces the old one."
        },
        "scope": {
          "enum": [
            "board",
            "workspace"
          ],
          "type": "string",
          "description": "board (the default) or workspace."
        },
        "boardId": {
          "type": "string",
          "description": "Board id or slug."
        },
        "persona": {
          "type": "string",
          "description": "The persona to act as."
        }
      }
    }
    arguments 28 lines
  • label unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "action",
        "name"
      ],
      "properties": {
        "into": {
          "type": "string",
          "description": "Merge target, or the new name for rename."
        },
        "name": {
          "type": "string",
          "description": "The label."
        },
        "action": {
          "enum": [
            "delete",
            "rename",
            "merge",
            "archive"
          ],
          "type": "string",
          "description": "What to do to the label."
        },
        "reason": {
          "type": "string",
          "description": "Why, in one line. Needed with confirm."
        },
        "boardId": {
          "type": "string",
          "description": "Board id or slug."
        },
        "confirm": {
          "type": "boolean",
          "description": "Apply it. Left out, nothing changes."
        },
        "persona": {
          "type": "string",
          "description": "The persona to act as."
        }
      }
    }
    arguments 43 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id cf6a7aefe5275c00.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/cf6a7aefe5275c00/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/cf6a7aefe5275c00/badge.svg)](https://brick.blue/agent/cf6a7aefe5275c00?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.