TaskDeck
Task boards for teams and their AI agents: cards, checklists, sprints, plans and proposals.
What it can do
- Who Am I: Identify the TaskDeck account this connection is acting as, and whether it acts as the person who authorized it (their full access) or as a restricted AI agent account. Call this first if yo
- Workspace Overview: List every TaskDeck project and board this account can see, with each board's columns (the Closed column marked system: "closed"), open card count and last activity. Each board als
- List Agents: List the AI agents this account owns: id, name, whether suspended, the projects each is a member of, and how many live connections act as it. Any of them can be named in act_as on any too
What data it sees
Do you need an account
No: the server works without sign-in
Task boards for teams and their AI agents: cards, checklists, sprints, plans and proposals.
Connect TaskDeck and your assistant works on the same board as your team. It can read boards and cards, create and move cards, tick checklist items, comment, ask you a question on a card, propose work for you to accept, and track the work it does in a repository as cards. You sign in with your TaskDeck account over OAuth, and every change shows up live on the board.
How to connect
How to connect TaskDeck to Claude
The server address to paste into Claude settings:
https://taskdeck.run.tools
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect TaskDeck to ChatGPT
The server address to paste into ChatGPT settings:
https://taskdeck.run.tools
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect TaskDeck to Cursor
The server address to paste into Cursor settings:
https://taskdeck.run.tools
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (60)
Raw names from tools/list. Only developers need these.
| who-am-i | Identify the TaskDeck account this connection is acting as, and whether it acts as the person who authorized it (their full access) or as a restricted AI agent account. Call this first if you are unsure whose data you are looking at, what you are allowed to do, or to confirm the connection works. |
| workspace-overview | List every TaskDeck project and board this account can see, with each board's columns (the Closed column marked system: "closed"), open card count and last activity. Each board also lists its automations in the order they run: what happens on its own when a card moves, as a sentence, whether it is on, and why a broken one is skipped. Call this before acting on a board so you can choose the right one; prefer it over guessing a board id. |
| list-agents | List the AI agents this account owns: id, name, whether suspended, the projects each is a member of, and how many live connections act as it. Any of them can be named in act_as on any tool, or given more projects with grant-agent-projects. Refused when the connection itself acts as an agent. |
| create-agent | Create an AI agent account owned by this account, optionally making it a member of projects right away (project ids from workspace-overview; only projects where you are more than a viewer). From then on the agent can be named in act_as on any tool, be assigned cards, and appear in the projects' members. Counts against the plan's agent limit. Refused when the connection itself acts as an agent. |
| grant-agent-projects | Make one of your AI agents a member of more projects, so act_as can use it there. Takes the agent (id, or exact name) and project ids from workspace-overview; only projects where you are more than a viewer can be granted, and existing memberships are kept. Refused when the connection itself acts as an agent. |
| my-plan | The plan this account is on, its limits and how much of them is used. Read-only: changing or paying for a plan happens in the app. |
| daily-digest | What this account did on its cards on a day or over a range of days, grouped by board — the material for a standup or a daily summary. Defaults to yesterday in the given timezone. |
| list-activity | The activity feed: who did what, when, across the projects this account is in. Narrow it to a project, board, card or person, to what AI agents did, or to changes since a date. Paginated with a cursor. Answers "what happened on the board this week" without opening every card. |
| track-repository | Turn on Autotrack for a repository: every task the assistant does there becomes a card on one board. Call it with preview: true first; it says whether the repository or a board with that name is already known, lists the boards, proposes a project, board and prefix, and says whether each board's rules for tags, estimates and deadlines and the person's choice of whose name the work carries are decided yet. Then call it again with the answers: it finds or creates the project and board (with column roles, the done column's archive delay and the board's field rules), remembers the repository, connects a GitHub repository silently when the app already sees it (or a GitLab project the project's GitLab connection can add a webhook to), stores the attribution choice, and returns the block to write into the repository's CLAUDE.md. Any git host or none. Refused when the connection acts as an AI agent. |
| start-work | Start a piece of work on a tracked board; call it before changing anything. It looks for an open card that already covers the work, creates the card with the board's rules applied, puts the acceptance criteria in the checklist, moves it to the working column with today as the start date, and returns the key, the flow and the next step. The rules usually need estimate_minutes and at least one kind tag (bug, feature, chore…), and repository on a board that tracks several repositories; without them it refuses, says what is missing and creates nothing. The deadline follows from the rules unless the person named one. The move into the working column can set off the board's automations; the result says which ran and what they changed. Pass card to continue an existing card instead of creating one: the estimate, tags, criteria, deadline and people passed with it are applied to the card, and the result names what the board's rules ask for that the card still lacks. Pass parent to make the card part of a larger card. Takes a card key like ACM-12 as well as an id. |
| finish-work | Finish a piece of work on a tracked board once it is verified: ticks the criteria you name as verified, posts the verification notes and links as a comment, and moves the card to the review column when the board has one and to the done column otherwise. Refuses, listing them, while checklist items remain unverified; reword or remove those first, or name them as verified if they are. The move can set off the board's automations, such as handing the card to a reviewer; the result says which ran and what they changed. Takes a card key like ACM-12 as well as an id. |
| hand-back-card | Only for an AI routine session, Claude Code or Codex, that TaskDeck handed a card to, when its run ends without finish-work: blocked, out of time, or unable to do the work. Hands the card back: the hand-over ends as handed back, the card unlocks at once, the session leaves the card's list of sessions, and the card's history shows the note. A Claude Code session passes the card and the handover_key from its routine-fire-payload; a Codex session's connection already carries its key. Any other call is refused. finish-work already ends the hand-over when the work is done. Takes a card key like ACM-12 as well as an id. |
| create-project | Create a new TaskDeck project; this account becomes its admin. A project only holds boards, so follow up with create-board — until it has one there is nowhere to put cards. Check workspace-overview first so you do not duplicate a project that already exists. Refused when the connection acts as an AI agent rather than as the person who authorized it. |
| update-project | Rename a project or change its description. Requires admin rights on the project. Refused when the connection acts as an AI agent. |
| delete-project | Delete a project with every board, column, card, comment and attachment in it. There is no undo. Requires admin rights; refused when the connection acts as an AI agent. Confirm with the person before calling this. |
| list-members | List who is in a project, with their user id and role. The ids are what assigned_to, report_to and observer_id take; look a person up here rather than guessing, and pass board_id to get only the people who can open that board, which are the only ones its cards can name. AI agent accounts are marked. A project admin also sees which boards each member opens. |
| invite-members | Invite people to a project by email, all with the same role. Each gets an invitation email and joins when they accept. They open every board of the project unless board_ids limits them to some. Requires admin rights on the project; refused when the connection acts as an AI agent. |
| update-member-role | Change a member's role in a project (admin, member or viewer), which of its boards they open, or both. Pass board_ids to limit them to those boards, or all_boards true to give them every board again; leave both out to keep their boards as they are. A project always keeps at least one admin, and an admin opens every board. An AI agent can be a member or a viewer, never an admin. Requires admin rights; refused when the connection acts as an AI agent. |
| remove-member | Remove a member from a project. If they hold cards, first ask the person where to reassign them: pass reassign_to with another member who can open every affected board, or null for Unassigned. Removal without that choice is refused. The last admin cannot be removed. Requires admin rights; refused when the connection acts as an AI agent. |
| list-invitations | List the invitations a project has sent that have not been accepted yet. Requires admin rights on the project. |
| resend-invitation | Send a pending project invitation again. Requires admin rights on the project. |
| cancel-invitation | Withdraw a pending project invitation so it can no longer be accepted. Requires admin rights on the project. |
| list-my-invitations | List the project invitations waiting for this account: which project, which role, who sent it. Accept or decline them with accept-invitation and decline-invitation. |
| accept-invitation | Accept a project invitation addressed to this account and join the project with the offered role. |
| decline-invitation | Decline a project invitation addressed to this account. The invitation is removed; the sender can invite again. |
| list-repositories | The GitHub repositories and GitLab projects connected to a project, and the ones that could be connected: what the project's own GitHub connection sees, and what its GitLab connection may add webhooks to. A connected repository links commits and pull or merge requests that mention card keys, and a merge moves the card. Each project has its own GitHub and GitLab connection, made by a project admin in the project's settings, never through this tool; when there is none, the answer says so. |
| connect-repositories | Connect GitHub repositories or GitLab projects to a project, by the repository ids list-repositories shows as available, one provider per call. A GitLab project gets a webhook added to it. From then on commits and pull or merge requests that mention a card key link to that card, and a merge moves it. Requires admin rights on the project; refused when the connection acts as an AI agent. |
| disconnect-repository | Disconnect a GitHub repository or GitLab project from its project, removing the webhook TaskDeck added on GitLab. Cards stop reacting to its commits and pull or merge requests, and the links on cards go. Requires admin rights; refused when the connection acts as an AI agent. |
| create-board | Create a board in a project, ready to hold cards. Give it a short title. Optionally set a prefix of 2 to 5 letters or digits that card keys are built from (ACM gives ACM-1, ACM-2, ...) — omit it to derive one from the title — the icon it is drawn with, and the columns it starts with, as titles or as objects with a role (todo, doing, review, done) and archive_after_days — omit them for To Do, In Progress and Done. Requires admin rights on the project. Refused when the connection acts as an AI agent. |
| update-board | Rename a board, change its description or its icon, change the prefix its card keys use, or change its rules for how cards started by an assistant are filled in (tags, tag_names, estimate, deadline, assignee, reporter, observer). Requires admin rights on the project. Refused when the connection acts as an AI agent. |
| delete-board | Delete a board with all of its columns and cards. There is no undo. Requires admin rights on the project; refused when the connection acts as an AI agent. Confirm with the person before calling this. |
| create-column | Add a column to the end of a board. Columns are the stages a card moves through, such as To Do, In Progress and Done. Requires admin rights on the board's project. Refused when the connection acts as an AI agent. |
| update-column | Rename a column, recolour it, move it after another column on the same board, set how many days cards wait in it before being archived, or give it a role in the board's flow (todo, doing, review or done; a role held by another column moves to this one). Requires admin rights on the project. Refused when the connection acts as an AI agent. |
| delete-column | Delete a column and every card in it. There is no undo — move the cards elsewhere first if they matter. Requires admin rights on the project; refused when the connection acts as an AI agent. |
| create-automation | Add an automation to a board: when a card moves from one of the from columns to one of the to columns and every condition holds, its actions run on the card in order, with the board's authority. It joins the end of the board's list, and the list runs in order, so a later rule has the last word. A value the moving request sets itself is never overridden. Requires admin rights on the board's project; refused when the connection acts as an AI agent. workspace-overview lists a board's automations. |
| update-automation | Change a board automation: rename it, switch it off or on, or rewrite its trigger columns, conditions or actions. Pass only what changes; a list you pass replaces the old one whole. Requires admin rights on the board's project; refused when the connection acts as an AI agent. Automation ids come from workspace-overview. |
| reorder-automations | Put a board's automations in the order they should run: name every one of them once, first to run first. When two rules set the same thing, the later one has the last word. Requires admin rights on the board's project; refused when the connection acts as an AI agent. |
| delete-automation | Delete a board automation. What it already did to cards stays, and the history still names it. To stop it for a while instead, update-automation with enabled false. Requires admin rights on the board's project; refused when the connection acts as an AI agent. |
| show-board | Show a board to the person: its columns with their counts and cards, who holds what, and any card opened in full. Call it whenever someone asks to see a board or how work stands — "show the board", "what is on TaskDeck", "where are we" — and name no board to get the one this repository tracks or the most recently active one. You get the counts back, with the board's automations as sentences, what a move there sets off; the person gets the board itself. For the board's pace and numbers over time, call show-insights instead. |
| show-insights | Show a board's insights to the person: cards created and finished per day, how many are open, sent back, overdue or due within seven days, and the median hours cards spend in each column, over the last 30 days. Call it whenever someone asks how a board is doing or how work moves — "how are we doing", "what is overdue", "how fast do cards move", "show the insights" — and name no board to get the one this repository tracks or the most recently active one. You get the numbers as text; the person gets the tiles and the charts. For the cards themselves, call show-board. |
| list-cards | List the cards on a board, or in one column, in board order. Archived cards and closed cards (those in the board's Closed column) are left out unless asked for. Each card says how many unfinished cards it is waiting for and how many are waiting for it, and, when it has them, its parent's key and how many of its children are done. Use search-cards when you know words from the card; use this to see what a board holds. |
| search-cards | Search cards by title and description across every board this account can see, best match first. A card key such as ACM-12, written with or without the hyphen, finds that card outright, so this turns either a key or a description of a task into something you can act on. Results carry the human card key and the board they belong to. |
| read-card | Read one card in full: title, description as Markdown, column, board, assignee, reporter, observer, estimate, dates, tags, checklist (each item with its id and who checked it), what it is waiting for and what is waiting for it, its parent, children and related cards, attachments, comment count, the AI routine sessions (Claude Code or Codex) it was handed to, and the lock one of them holds on it. Read a card before changing its description, since update-card replaces the whole text. |
| create-card | Create a card on a board. Give it a clear title, put the detail in the description (Markdown: headings, lists, links and code become rich text) and put acceptance criteria or steps in checklist, where each item can be checked off on its own. Pass parent to create it as a child of another card of the same project, e.g. one part of a larger piece of work. Call workspace-overview first to choose the right board and column id — do not guess a column id. |
| update-card | Change a card: retitle it, rewrite its description (Markdown, replacing the whole text — read-card first to keep what is there), assign it, set reporter, observer, estimate or dates, move it to another column on the same board, or place it after another card. Pass only the fields you want to change. Moving a card to a different column is how you mark progress. A move can set off the board's automations, which may reassign the card, retag it, set its deadline, comment on it or move it on; workspace-overview lists them, and the result says which ran and what they changed. A field you pass yourself is never overridden by a rule. |
| close-card | Close a card: move it into the board's Closed column, the system column for cards dropped without being done. Pass a reason and it is posted as a comment first. A closed card leaves the board and list-cards unless asked for, keeps its history, and reopen-card puts it back where it was. Members can close cards assigned to them, admins any card. Done means finished; Closed means it will not be done. |
| reopen-card | Reopen a closed card: move it out of the board's Closed column back into the column it was closed from, or into the first column when that one no longer exists. Members can reopen cards assigned to them, admins any card. |
| delete-card | Delete a card permanently, with its comments, notes and attachments. There is no undo — to take a card off the board without losing it, move it to a column that archives instead. Admins can delete any card; members only cards assigned to them. |
| list-tags | List the tags already in use in a project, so you can reuse existing names rather than invent near-duplicates. Tags are plain names, shared by every board in the project. |
| tag-card | Tag a card. By default the names are added to the tags it already has; pass replace=true to make the list exactly these tags (an empty list with replace clears them). Unknown names become new tags in the project. Check list-tags first to reuse existing names. |
| add-checklist-items | Add items to the end of a card's checklist, in the order given: acceptance criteria, steps, anything that gets checked off. Use this rather than - [ ] lines in the description: every item gets an id, update-checklist-item checks it off in one call, and the board shows progress. Returns the whole checklist afterwards. Members can add to any card in their projects. |
| update-checklist-item | Change one checklist item: check it off (done=true), reopen it (done=false) or reword it. Checking is attributed to this account, or to the agent it acts as, and appears in the activity feed with the item's wording. Item ids come from read-card or add-checklist-items. Returns the item and the card's progress. |
| remove-checklist-item | Remove an item from a card's checklist. Prefer reopening or rewording an item over removing it: removal drops its history from the card, though the activity feed keeps a record. There is no undo. |
| block-card | Record that a card is waiting for another card on the same board. The waiting card then reads as blocked on the board until the blocker reaches a done column or is closed, so nobody has to clear it afterwards. Use it when work cannot start or finish until another card does, rather than only saying so in a comment. Refuses a card waiting for itself, a card on another board, a blocker that is already there, and anything that would make two cards wait for each other. |
| ask-question | Ask for information required to continue a card, naming the member who must answer. Every unanswered question blocks the card without changing its column or assignee. Optional questions belong in comments with mentions. Only a card editor can ask; the named respondent answers with answer-question, even while an agent session holds the card. read-card lists questions and their ids. |
| answer-question | Answer a required question as its named respondent, including while an agent session holds the card. The last answer clears the waiting-for-input block; other card dependencies remain. Answers are retained; further clarification is a new question. read-card returns question ids. |
| update-question | Redirect an unanswered required question to another board member, or withdraw it when no longer needed. Its history stays on the card. Only a card editor can do this; an answered question cannot be rewritten. Pass exactly one of respondent_id or cancel=true. |
| acknowledge-answers | Acknowledge received answers when resuming a card. Refuses while any required question remains unanswered. Clears the Answer received indicator without moving the card, changing its assignee, clearing card dependencies or starting a session. Only a card editor can acknowledge. |
| unblock-card | Drop a dependency between two cards: the first card stops waiting for the second. Finishing the blocking card already clears the block on its own, so this is for a dependency that was wrong or no longer applies. Removing one that is not there changes nothing. Returns what the card is still waiting for. |
| link-cards | Link two cards of the same project, on the same board or different ones: make the other card this card's parent, one of its children, or a related card. Use it whenever cards belong together (work split into parts, follow-ups, the same problem seen twice) instead of listing keys in a comment: the link shows on both cards, and the board shows a parent's child progress. A card has at most one parent and any number of children. Refuses linking a card to itself, a card in another project, two cards already linked, a parent for a card that has one, and anything that would make a card its own ancestor. Returns the card's parent, children and related cards. |