teamboard-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@teamboard-mcpsearch for tasks related to login bug"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
teamboard-mcp
MCP server for TeamBoard. Lets any MCP-aware client (Claude Code, etc.) read and write TeamBoard tasks over the HTTP API.
You never pass an ObjectId. Tasks are referenced by TASK-42 (any casing or
zero-padding) or by title; people by name, email or username; projects by code or
name. When a reference is ambiguous the tool returns the candidate list instead of
guessing — so an edit never lands on the wrong task or the wrong assignee.
Usage (no install)
Add this to your Claude Code MCP config (~/.claude.json, or .mcp.json in any project):
{
"mcpServers": {
"teamboard": {
"command": "npx",
"args": ["-y", "github:uplsuman/teamboard-mcp"],
"env": {
"TEAMBOARD_BASE_URL": "https://teamboard.utplco.com",
"TEAMBOARD_TOKEN": "tbp_..."
}
}
}
}Generate the token in TeamBoard → Settings → API Tokens. Grant the scopes for what you want it to do:
scope | unlocks |
| search, read, create, edit, subtasks, links, attachments, saved filters, global search |
| post, edit and delete comments |
| project list and member rosters (needed to resolve an assignee) |
| people lookup, |
| the tag vocabulary |
| time logs, timers, manual entries |
| read your inbox, mark items read |
MCP servers only pick up env changes on restart — run | |
changing the token. |
Related MCP server: Trello MCP Server
Tools
Tool | What it does |
| Find tasks by keyword and/or filters — |
| One query across tasks, projects, people, departments and saved filters. |
| Full detail for one task, plus any of |
| Create a task. Project by code or name, assignee/reporters by name. |
| Update title, description, status, priority, type, assignee, reporters, dates, progress, tags, project, parent task, watchers. |
| Add a subtask under a task; inherits the parent's project. |
| Typed relationships: blocks, blocked_by, clones, cloned_by, splits_into, splits_from, causes, caused_by, duplicate_of, relates_to. The inverse is implied. |
| Post a comment (HTML), a threaded reply with |
| Toggle an emoji reaction on a comment. |
| Your inbox — mentions, assignments, due reminders, team digests. |
| Mark one read, or all. |
| Change or remove a comment by id — your own, or any as an admin. |
| Upload a local file onto a task. |
| Save an attachment to a local file. |
| Detach a file and delete it from storage. |
| Record work already done (minutes). Manual entries start pending approval. |
| Run the clock on a task. One foreground timer at a time. |
| What you are tracking right now, and for how long. |
| Saved JQL queries; run one with |
| The workspace tag vocabulary — reuse a name rather than inventing a variant. |
| Permanently delete a task (admin only, irreversible). |
| Projects you can see, with their codes. |
| People by name/email; pass |
Notes that bite:
Rich text is HTML.
descriptionandcommenttake literal<h3>/<ul>/<li>/<strong>/<code>markup, not plain text with newlines.An assignee must be a member of the task's project.
list_teamboard_userswithprojectshows who is eligible; the assignee lookup is scoped to that roster, so a non-member name fails with the roster rather than picking someone.tagsreplaces the whole list — pass every tag you want to keep."none"clearsassignee,project,parentortype.Statuses, priorities, task types and resolutions are read from the workspace at startup, so the tool descriptions list your real values and a typo is rejected locally. Resolutions are the one exception to local rejection: a project may override the workspace list, so the value is sent as given and the server judges it.
Moving a task to another project changes its task id; the tool reports the new one.
Two arguments are mandatory for the moves that need them, not optional extras:
resolution— moving a task into a done status (Completed, Cancelled, Closed…). A status says where a task is; the resolution says how it ended, and the move is refused without one.trackerDecision— moving a task into an in-progress status, which would start the assignee's timer. Passskipto change the status without starting a timer, orforegroundto start it. The other values resolve a clash when that person is already tracking something.
Other server rules surface as tool errors and need a follow-up argument:
clarification(10+ chars) when an active task's due date or status changes.
Development
pnpm install
node test.mjs # resolution tests, no network (fetch is stubbed)
TEAMBOARD_BASE_URL=http://localhost:3000 TEAMBOARD_TOKEN=tbp_xxx node index.jsresolve.js holds the API client and the reference resolvers; index.js is only
tool definitions and formatting.
Performance notes
Sections load in parallel.
get_teamboard_taskwith a fullincludeissues its five sub-requests together rather than one after another.Resolutions are cached for 60s. The same project code or person's name costs one round trip per minute, not one per tool call. The TTL is deliberately short: a stale hit here would address the wrong row.
invalidateCache()clears it.Every request has a 30s timeout, and an unreachable server fails with the base URL in the message instead of hanging the tool call.
Long lists are capped (25 rows per section, 4 children per digest notification) with an "…and N more" line, so one busy task cannot bury the rest of a reply.
Tool schemas cost ~5.4k tokens for 28 tools. The workspace vocabulary is listed once per tool, on the field that needs it, not repeated in the description.
Attachments are addressed by name, never by their storage URL, and an ambiguous name lists the candidates rather than picking one — deleting the wrong file is not recoverable.
Requires
TeamBoard with personal-access-token support on /api/tasks, /api/tasks/meta,
/api/tasks/statuses, /api/tasks/:id/{subtasks,links,activities}, /api/projects,
/api/projects/:id/members, /api/users, /api/users/me, /api/comments,
/api/comments/:id and /api/uploads/* (TB dev after Sep 2026).
This server cannot be deployed
Maintenance
Related MCP Connectors
Task management for people and AI agents, with scoped OAuth access to issues, projects, and docs.
Create and manage MeisterTask projects, tasks, and notes from your AI assistant.
Task & board management for AI agents + humans. Kanban, comments, digests via MCP.
Remote MCP for Kanban AI boards—manage projects, tasks, and comments from AI tools.
Related MCP Servers
- FlicenseBqualityDmaintenanceIntegrates GitHub Copilot Chat with your Taskboard instance to manage workspaces, boards, lists, and cards using natural language. It supports full task lifecycle operations, searching capabilities, and knowledge base queries via RAG.12-
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to interact with Trello boards, cards, lists, and more through a standardized interface.-
- FlicenseCqualityDmaintenanceEnables AI assistants to manage Trackfusion projects and tasks, including listing, creating, updating, and filtering tasks.761-
- AlicenseBqualityDmaintenanceEnables AI assistants to manage game development projects, sprints, tasks, and design documents via the HacknPlan API.916MIT