mcpbeat Sign in

Teamwork MCP Server

answering

Teamwork is answering right now. Last checked moments ago. It exposes 213 tools. Last commit 15 Sep 2026.

The Teamwork.com official MCP server helps teams efficiently manage client projects with AI.

Uptime history 47 days of history · worst day 49%
47 days agonow
50.0%
Uptime 24h
92 of 184 checks
213
Tools
read from the server
536 ms
Response time
average over 24h
25
Stars
last commit 15 Sep 2026

What changed 431

Every tool that appeared, vanished or quietly changed what it asks for. Recorded since 10 August 2026. No other catalogue keeps this.

15 Sep a tool changed version
14 Sep 3 tool descriptions were rewritten4 times that day twprojects-get_jobrole, twprojects-list_jobroles, twspaces-list_pages
14 Sep a tool changed version4 times that day
14 Sep a tool changed the parameters it asks for2 times that day twspaces-list_pages
11 Sep 9 tools changed the parameters they ask for twprojects-get_comment, twprojects-get_message, twprojects-get_message_reply and 6 more
11 Sep 3 tools appeared twprojects-download_file, twprojects-get_file, twprojects-list_files
11 Sep a tool changed version
10 Sep a tool changed version
9 Sep 169 tools changed the parameters they ask for171 times that day twchat-list_conversations, twchat-list_messages, twchat-list_people and 166 more
9 Sep a tool changed version2 times that day
and 241 more, back to 10 August 2026

Teamwork does not always answer

Over the last week it answered 49.9% of our checks. We check every 15 minutes, so you hear about the next outage within the hour — not from your users.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 0 min ago.

run in your terminal
claude mcp add mcp --transport http https://mcp.ai.teamwork.com
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "mcp": {
      "url": "https://mcp.ai.teamwork.com"
    }
  }
}
~/.codex/config.toml
[mcp_servers.mcp]
url = "https://mcp.ai.teamwork.com"
.cursor/mcp.json
{
  "mcpServers": {
    "mcp": {
      "url": "https://mcp.ai.teamwork.com"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "mcp": {
      "url": "https://mcp.ai.teamwork.com"
    }
  }
}

This server publishes 1 more address. The block above uses the one we reach during checks; the full list is under Endpoints below, and the author may intend a particular one for your client.

Available tools 213

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

twprojects
twprojects-add_project_file
Store an uploaded file in a project's files area, where people find it outside any one task or comment. Upload it first with twprojects-create_upload_url, then pass the reference here. Returns a numeric file ID which, unlike a reference, survives being used: pass it in attachment_file_ids on twprojects-create_task or twprojects-update_task to attach the same file to as many tasks as needed. Attaching a reference to a task, comment or message already files it here, so use this tool to store a file on its own, to describe or categorise it, or when it has to reach more than one place.
twprojects-add_project_member
Add a user to a project.
twprojects-clone_project
Clone/copy an existing project or instantiate one from a template.
twprojects-complete_task
Mark task complete.
twprojects-complete_timer
Stop a timer permanently and convert it to a timelog. Use pause_timer to pause without converting.
twprojects-count_milestones
Exact milestone count for any filter set: one call, one number, no rows. Use for "how many milestones" questions (per project, per tag, matching a term) instead of paging twprojects-list_milestones to count rows. Use twprojects-list_milestones when the rows are needed.
twprojects-count_projects
Exact project count for any filter set: one call, one number, no rows. Use for "how many projects" questions (mine, late, per category, per tag, per company, per owner, matching a term) instead of paging twprojects-list_projects to count rows. Use twprojects-list_projects when the rows are needed.
twprojects-count_tasks
Exact task count for any filter set: one call, one number, no rows. Use for "how many" questions (totals, late, per person, per project, per tag, completed in a window) instead of paging twprojects-list_tasks to count rows. Note due_before excludes tasks with no due date, unless a related milestone due date matches. Use twprojects-list_tasks when the rows are needed.
twprojects-count_timelogs
Exact count of time entries for any filter set: one call, one number, no rows. This counts entries, not hours — for logged, billable or billed time totals use twprojects-summarize_timelogs. Use for "how many time entries" questions (per project, per task, per person, in a date window) instead of paging twprojects-list_timelogs to count rows.
twprojects-create_allocation
Commit a user's time to a project over a date range (a scheduler allocation). This is planned time, a separate plane from task estimates and logged time.
twprojects-create_comment
Create comment on a task, milestone, notebook, file, or link.
twprojects-create_company
Create company (aka client).
twprojects-create_custom_field
Create custom field.
twprojects-create_custom_field_value
Set a custom field value on a task, project or company. The custom field must already exist and be applicable to the target entity.
twprojects-create_custom_item
Create a new custom item type (e.g. Contracts, Leads, Deals) on a project. Custom items are user-defined entity types — Contracts, Leads, Deals, or anything else a customer has set up on a project. Use these tools when the user refers to an entity that is NOT a built-in Teamwork concept (Task, Tasklist, Project, Milestone, Comment, Notebook, Company, Team, User, Tag). If you don't recognise an entity name in the user's request, assume it is a custom item and call twprojects-list_custom_items on the relevant project to confirm.
twprojects-create_custom_item_field
Add a field (column) to a custom item type. Field types include text, number, dropdown, multiselect, checkbox, url, user, date, time and datetime. Custom items are user-defined entity types — Contracts, Leads, Deals, or anything else a customer has set up on a project. Use these tools when the user refers to an entity that is NOT a built-in Teamwork concept (Task, Tasklist, Project, Milestone, Comment, Notebook, Company, Team, User, Tag). If you don't recognise an entity name in the user's request, assume it is a custom item and call twprojects-list_custom_items on the relevant project to confirm.
twprojects-create_custom_item_record
Create a record (row) on a custom item type. For example, add a Contract on the Contracts type. Pass field values by name; the tool resolves names to the API's internal IDs. Custom items are user-defined entity types — Contracts, Leads, Deals, or anything else a customer has set up on a project. Use these tools when the user refers to an entity that is NOT a built-in Teamwork concept (Task, Tasklist, Project, Milestone, Comment, Notebook, Company, Team, User, Tag). If you don't recognise an entity name in the user's request, assume it is a custom item and call twprojects-list_custom_items on the relevant project to confirm.
twprojects-create_file
Upload short text you are generating yourself, such as a plan, a spec or a CSV, so it can be attached to a task, comment or message. Returns a single-use reference; pass it in attachment_refs on twprojects-create_task, twprojects-update_task, twprojects-create_comment or twprojects-create_message. Content is sent inline as base64, which means you have to emit the whole file as text, so use twprojects-create_upload_url instead for anything that already exists as a file — it hands back a URL to send the bytes to directly, and is the only safe option for a document that must stay byte-for-byte identical.
twprojects-create_jobrole
Create job role.
twprojects-create_link
Create link.
twprojects-create_message
Create message in a project.
twprojects-create_message_reply
Create message reply.
twprojects-create_milestone
Create milestone in a project.
twprojects-create_notebook
Create notebook in a project.
twprojects-create_project
Create project.
twprojects-create_project_category
Create project category.
twprojects-create_project_template
Create project template.
twprojects-create_skill
Create skill.
twprojects-create_tag
Create tag.
twprojects-create_task
Create task in a tasklist.
twprojects-create_tasklist
Create tasklist in a project.
twprojects-create_team
Create team.
twprojects-create_timelog
Create timelog entry against a project or task.
twprojects-create_timer
Create and start a timer.
twprojects-create_upload_url
Reserve an upload for a file and get back a short-lived URL to send its bytes to, plus a single-use reference. Use this for any file that already exists — a PDF, an image, a signed document — because the bytes go straight from you to storage and are never read into the conversation. Send the file with the returned method and URL, setting exactly the headers returned and no authorization of your own. Then pass the reference in attachment_refs on twprojects-create_task, twprojects-update_task, twprojects-create_comment or twprojects-create_message. Prefer twprojects-create_file only for short text you are generating yourself.
twprojects-create_user
Create user.
twprojects-create_workflow
Create workflow.
twprojects-create_workflow_stage
Create workflow stage.
twprojects-download_file
Read the content of a file stored in Teamwork.com: text files come back as text, images as an image, and anything else as a base64 resource with its media type. Files over 10 MB are refused; point the user at the file's downloadURL from twprojects-get_file instead. The file ID is in a task's or message reply's attachments and a comment's files (each {id, type: "files"}), or comes from twprojects-list_files.
twprojects-get_allocation
Get an allocation. linkedTaskEstimatedTime counts each linked task whole, and a task can sit behind more than one allocation, so it must not be summed across allocations.
twprojects-get_comment
Get comment.
twprojects-get_company
Get company (aka client).
twprojects-get_custom_field
Get custom field.
twprojects-get_custom_field_value
Get a single custom field value from a task, project or company.
twprojects-get_custom_item
Get a custom item type with its fields and sections inline, so you can see its schema before creating or updating records. Custom items are user-defined entity types — Contracts, Leads, Deals, or anything else a customer has set up on a project. Use these tools when the user refers to an entity that is NOT a built-in Teamwork concept (Task, Tasklist, Project, Milestone, Comment, Notebook, Company, Team, User, Tag). If you don't recognise an entity name in the user's request, assume it is a custom item and call twprojects-list_custom_items on the relevant project to confirm.
twprojects-get_custom_item_field
Get a single field on a custom item type. Custom items are user-defined entity types — Contracts, Leads, Deals, or anything else a customer has set up on a project. Use these tools when the user refers to an entity that is NOT a built-in Teamwork concept (Task, Tasklist, Project, Milestone, Comment, Notebook, Company, Team, User, Tag). If you don't recognise an entity name in the user's request, assume it is a custom item and call twprojects-list_custom_items on the relevant project to confirm.
twprojects-get_custom_item_record
Get a single record. Field values come back keyed by display name with dropdown values translated to their human-readable labels. Custom items are user-defined entity types — Contracts, Leads, Deals, or anything else a customer has set up on a project. Use these tools when the user refers to an entity that is NOT a built-in Teamwork concept (Task, Tasklist, Project, Milestone, Comment, Notebook, Company, Team, User, Tag). If you don't recognise an entity name in the user's request, assume it is a custom item and call twprojects-list_custom_items on the relevant project to confirm.
twprojects-get_file
Get a file's details: name, size, uploader, version history, the tasks, messages and comments it is attached to, and its downloadURL. The downloadURL needs the caller's own Teamwork session, so hand it to a signed-in user rather than fetching it; use twprojects-download_file to read the content here.
twprojects-get_jobrole
Get job role. The people assigned to the role come back under users, and those holding it as their primary role under primaryUsers; both are references, resolved to names under included.users.
twprojects-get_link
Get link.
twprojects-get_message
Get message.
twprojects-get_message_reply
Get message reply.
twprojects-get_milestone
Get milestone.
twprojects-get_notebook
Get notebook.
twprojects-get_project
Get project.
twprojects-get_project_category
Get project category.
twprojects-get_skill
Get skill.
twprojects-get_tag
Get tag.
twprojects-get_task
Get task.
twprojects-get_tasklist
Get tasklist.
twprojects-get_team
Get team.
twprojects-get_timelog
Get timelog.
twprojects-get_timer
Get timer.
twprojects-get_user
Get user.
twprojects-get_user_me
Get the currently authenticated user.
twprojects-get_workflow
Get workflow.
twprojects-get_workflow_stage
Get workflow stage.
twprojects-link_project_to_workflow
Link a project to a workflow so its tasks track through workflow stages.
twprojects-link_task_to_allocation
Link one task to an allocation, showing what task work sits behind the committed time. The task and the allocation must be in the same project. This adds a single link and leaves the allocation's other links alone, unlike linked_task_ids on twprojects-update_allocation, which replaces the whole set.
twprojects-list_activities
List recent activity events. Scope by project_id or omit for site-wide.
twprojects-list_allocations
List scheduler allocations — who is committed to which project, and when. ALWAYS pass start_date and end_date: with neither set the endpoint returns only today through 30 days from today, and says nothing about having narrowed the range, so an unbounded call silently answers a question about a wider period with one month of data. Allocations are planned time and a separate plane from task estimates and logged time; the two are not summed. linkedTaskEstimatedTime counts each linked task whole and must not be summed across allocations.
twprojects-list_calendar_events
List events from a calendar, including time-blocking events that link a calendar slot to a Teamwork project, task or timelog. Omit calendar_id to read the calling user's own calendar. Use twprojects-list_calendars to name a different one; the calendar of type 'blocked_time' holds the account's time-blocking events.
twprojects-list_calendars
List calendars. Calendars hold events such as meetings, out-of-office periods and time-blocking entries; the calendar of type 'blocked_time' holds the account's time-blocking events.
twprojects-list_comments
List comments. Scope by one of task_id, milestone_id, notebook_id, link_id, or file_version_id; omit all for site-wide. Comment bodies are truncated at 500 characters and marked where they are cut; use twprojects-get_comment for the full text.
twprojects-list_companies
List companies (aka clients).
twprojects-list_custom_field_values
List the custom field values of a task, project or company.
twprojects-list_custom_fields
List custom fields.
twprojects-list_custom_item_fields
List fields on a custom item type. Each entry includes the twId you need when writing record values. Custom items are user-defined entity types — Contracts, Leads, Deals, or anything else a customer has set up on a project. Use these tools when the user refers to an entity that is NOT a built-in Teamwork concept (Task, Tasklist, Project, Milestone, Comment, Notebook, Company, Team, User, Tag). If you don't recognise an entity name in the user's request, assume it is a custom item and call twprojects-list_custom_items on the relevant project to confirm.
twprojects-list_custom_item_records
List records on a custom item type. Returns each record with field values keyed by display name. Use the section_ids filter to scope to a specific section. Custom items are user-defined entity types — Contracts, Leads, Deals, or anything else a customer has set up on a project. Use these tools when the user refers to an entity that is NOT a built-in Teamwork concept (Task, Tasklist, Project, Milestone, Comment, Notebook, Company, Team, User, Tag). If you don't recognise an entity name in the user's request, assume it is a custom item and call twprojects-list_custom_items on the relevant project to confirm.
twprojects-list_custom_items
List the custom item types defined on a project. Returns each type's id, display name and labels — call get_custom_item to see a type's fields and sections. Custom items are user-defined entity types — Contracts, Leads, Deals, or anything else a customer has set up on a project. Use these tools when the user refers to an entity that is NOT a built-in Teamwork concept (Task, Tasklist, Project, Milestone, Comment, Notebook, Company, Team, User, Tag). If you don't recognise an entity name in the user's request, assume it is a custom item and call twprojects-list_custom_items on the relevant project to confirm.
twprojects-list_files
List the files in a project's files area, or across every project when no project_id is given. Files attached to tasks, comments and messages live there too, so task_id answers "what is attached to this task". Deleted files are left out unless show_deleted is true. Each row carries a downloadURL that needs the caller's own Teamwork session; use twprojects-download_file to read the content here.
twprojects-list_industries
List supported company (aka client) industries.
twprojects-list_jobroles
List job roles. A verbose row carries the people assigned to the role under users, and those holding it as their primary role under primaryUsers; both are references, resolved to names under included.users.
twprojects-list_links
List links.
twprojects-list_message_replies
List replies under a message thread. Filter by message_ids or project_ids.
twprojects-list_messages
List project messages (top-level posts). Use twprojects-list_message_replies for thread replies.
twprojects-list_milestones
List milestones. Scope by project_id or omit for site-wide. Completed milestones are included by default; pass show_completed false to see only the outstanding ones. Use due_after and due_before to bound the deadline instead of listing everything and filtering afterwards.
twprojects-list_notebooks
List notebooks.
twprojects-list_project_budgets
Lists top-level project budgets. Filters: project_ids, status.Returns only budgeted projects (diff with twprojects-list_projects for budgetless).Filter server-side via project_ids when known. 1-based page pagination (pageOffset = page - 1)
twprojects-list_project_categories
List project categories.
twprojects-list_project_templates
List project templates.
twprojects-list_project_updates
List project updates: the Markdown text on a project's dashboard and the health it reports. Nothing else returns either — a project row carries no health, and the activity log holds a preview of the text, not the text. Newest first. Only each project's current update is returned unless active_only is false, so an unfiltered call is not the whole history. Rows carry text (Markdown, in full, emoji codes already converted to characters), health (0 not set, 1 bad, 2 ok, 3 good), healthLabel (the name this installation gives that rating — read it, never build one from health) and color (hex, empty when the health is not set). The author and the project are bare IDs, sideloaded under included when verbose is true. Keep a response small with fields and page_size; verbose=false drops the text and returns the ratings.
twprojects-list_projects
List projects with structured filters (membership, progress state, health, category, tag, company, owner). For "my projects" pass user_ids with the ID from twprojects-get_user_me, or only_starred. For projects that have slipped pass project_statuses=["late"] — a project row carries no late flag, so this filter is the only way to ask.
twprojects-list_skills
List skills.
twprojects-list_tags
List tags.
twprojects-list_tasklist_budgets
List tasklist budgets nested under a project budget. Requires project_budget_id.
twprojects-list_tasklists
List tasklists. Scope by project_id or omit for site-wide.
twprojects-list_tasks
List tasks with structured filters (tasklist_id, project_id, or site-wide). For keyword search use search. Completed tasks and tasks in completed tasklists are excluded unless show_completed is true, so an empty result may mean the matching work is already done rather than missing. Ask for "late", "overdue", "due today", "started" or "upcoming" work through date_filter, and leave people out through exclude_assignee_user_ids, rather than reading rows and filtering them yourself.
twprojects-list_teams
List teams. Scope by company_id or project_id, or omit for site-wide.
twprojects-list_timelogs
List timelogs. Scope by project_id or task_id, or omit for site-wide.
twprojects-list_timers
List timers.
twprojects-list_users
List users. Scope by project_id or filter by type (account/collaborator/contact).
twprojects-list_workflow_stages
List workflow stages.
twprojects-list_workflows
List workflows.
twprojects-move_task_to_workflow_stage
Move one or more tasks to a workflow stage.
twprojects-move_tasks
Move tasks and all their subtasks to another tasklist, preserving the parent/child structure. Subtasks move with their parent automatically, so only the topmost task of each subtree needs to be listed. A task whose parent is not part of the move is detached from it, becoming a top-level task in the destination.
twprojects-pause_timer
Pause a running timer; can be resumed later. Use complete_timer to stop permanently.
twprojects-restore_allocation
Restore a deleted allocation. Find the ID first with twprojects-list_allocations and show_deleted set, since a deleted allocation is otherwise not returned.
twprojects-resume_timer
Resume a paused timer back to running.
twprojects-search
Cross-entity keyword search across projects, tasks, messages, comments, users and more; restrict which entity types are searched with types. Long content fields in the sideloaded records are truncated at 500 characters and marked where they are cut; the marker names the tool that returns the full record. Completed items are excluded unless include_completed_items is true, so an empty result may mean the matching work is already done rather than missing.
twprojects-summarize_timelogs
Complete time totals for a date window, grouped by user, project or task (rows in groups) or by day, week or month (rows in periods). One call returns every row, in exact minutes and hours to 2 decimals. Prefer it over twprojects-list_timelogs for any total, sum or breakdown; list_timelogs is for individual entries. Minutes are authoritative, unbilledBillable = billable − billed, and rows sum to totals. One dimension per call: for hours per user per week, call once per user with user_ids. Task rows omit project-level and subtask time, so never add totals across group_by values. Period rows cover every period in order, zeros included, first and last clipped to the window; weeks follow the caller's start-of-week setting, so buckets can differ per user, and a weekend-only week with no time is dropped.
twprojects-unlink_task_from_allocation
Remove the link between one task and an allocation. Only the association is removed: both the task and the allocation are left in place. This removes a single link and leaves the allocation's other links alone.
twprojects-update_allocation
Update an allocation. Changing end_date ADDS or REMOVES committed time rather than redistributing it, because the per-day rate is what is held constant.
twprojects-update_comment
Update comment.
twprojects-update_company
Update company (aka client).
twprojects-update_custom_field
Update custom field.
twprojects-update_custom_field_value
Update a custom field value on a task, project or company.
twprojects-update_custom_item
Update a custom item type's display name, description, or labels. Custom items are user-defined entity types — Contracts, Leads, Deals, or anything else a customer has set up on a project. Use these tools when the user refers to an entity that is NOT a built-in Teamwork concept (Task, Tasklist, Project, Milestone, Comment, Notebook, Company, Team, User, Tag). If you don't recognise an entity name in the user's request, assume it is a custom item and call twprojects-list_custom_items on the relevant project to confirm.
twprojects-update_custom_item_field
Update a field on a custom item type. Custom items are user-defined entity types — Contracts, Leads, Deals, or anything else a customer has set up on a project. Use these tools when the user refers to an entity that is NOT a built-in Teamwork concept (Task, Tasklist, Project, Milestone, Comment, Notebook, Company, Team, User, Tag). If you don't recognise an entity name in the user's request, assume it is a custom item and call twprojects-list_custom_items on the relevant project to confirm.
twprojects-update_custom_item_record
Update a record on a custom item type. Only the fields you supply are changed; others are left as-is. Set section_id to null to remove the record from any section. Custom items are user-defined entity types — Contracts, Leads, Deals, or anything else a customer has set up on a project. Use these tools when the user refers to an entity that is NOT a built-in Teamwork concept (Task, Tasklist, Project, Milestone, Comment, Notebook, Company, Team, User, Tag). If you don't recognise an entity name in the user's request, assume it is a custom item and call twprojects-list_custom_items on the relevant project to confirm.
twprojects-update_jobrole
Update job role.
twprojects-update_link
Update link.
twprojects-update_message
Update message.
twprojects-update_message_reply
Update message reply.
twprojects-update_milestone
Update milestone.
twprojects-update_notebook
Update notebook.
twprojects-update_project
Update project.
twprojects-update_project_category
Update project category.
twprojects-update_skill
Update skill.
twprojects-update_tag
Update tag.
twprojects-update_task
Update task.
twprojects-update_tasklist
Update tasklist.
twprojects-update_team
Update team.
twprojects-update_timelog
Update timelog. It can also be moved to another project or task.
twprojects-update_timer
Update timer.
twprojects-update_user
Update user.
twprojects-update_workflow
Update workflow.
twprojects-update_workflow_stage
Update workflow stage.
twprojects-users_workload
Get task allocation across users for a date range. (workload of users)
twdesk
twdesk-create_company
Create Desk company.
twdesk-create_customer
Create customer.
twdesk-create_file
Upload file. Attach the returned ID to tickets or messages.
twdesk-create_helpdoc_article
Create a new help doc article.
twdesk-create_priority
Create ticket priority.
twdesk-create_status
Create ticket status.
twdesk-create_tag
Create Desk tag.
twdesk-create_ticket
Create ticket.
twdesk-create_ticket_type
Create ticket type.
twdesk-get_company
Get Desk company (customer organization).
twdesk-get_customer
Get customer.
twdesk-get_helpdoc_article
Get a help doc article by ID.
twdesk-get_helpdoc_site
Get a help doc site (knowledge base) by ID, including its subdomain, branding and article counts.
twdesk-get_inbox
Get inbox.
twdesk-get_priority
Get ticket priority.
twdesk-get_status
Get ticket status.
twdesk-get_tag
Get Desk tag.
twdesk-get_ticket
Get ticket.
twdesk-get_ticket_type
Get ticket type.
twdesk-get_user
Get support agent.
twdesk-link_task_to_ticket
Link a Teamwork Projects task to a Desk ticket, so the ticket shows the work tracked by that task.
twdesk-list_companies
List Desk companies. Filter by name, domains, or kind.
twdesk-list_customers
List customers. Filter by company or email.
twdesk-list_helpdoc_sites
List help doc sites (knowledge bases). Filter by name or subdomain. Use this to discover the site ID required by the help doc article tools.
twdesk-list_inboxes
List inboxes. Filter by name or email.
twdesk-list_priorities
List ticket priorities. Filter by name or color.
twdesk-list_statuses
List ticket statuses. Filter by name, color, or code.
twdesk-list_tags
List Desk tags. Filter by name, color, or inbox.
twdesk-list_ticket_types
List ticket types. Filter by name or inbox.
twdesk-list_users
List support agents. For customers, use twdesk-list_customers.
twdesk-reply_ticket
Reply to a ticket. Use threadType=note for internal agent notes.
twdesk-search_helpdoc_articles
Search help doc articles. Filter by search term, status, site, or category.
twdesk-search_tickets
Search tickets. Filter by inbox, customer, company, tag, status, priority, user, or creation date range. Name the attributes you need in fields: a ticket returned whole carries every activity, message, file and timelog identifier it has, and a full page of those is large enough to be truncated in transit. The record and page totals saturate at 10000: a search reporting exactly that many has 10000 or more, and asking for a page past the 10000th result is rejected rather than answered empty, so narrow the filters instead of paging deeper.
twdesk-unlink_task_from_ticket
Unlink a Teamwork Projects task from a Desk ticket. The task and the ticket themselves are kept.
twdesk-update_company
Update Desk company.
twdesk-update_customer
Update customer.
twdesk-update_helpdoc_article
Update an existing help doc article.
twdesk-update_priority
Update ticket priority.
twdesk-update_status
Update ticket status.
twdesk-update_tag
Update Desk tag.
twdesk-update_ticket
Update ticket.
twdesk-update_ticket_type
Update ticket type.
twspaces
twspaces-create_category
Create space category.
twspaces-create_comment
Create comment on a page. Use parentId for replies.
twspaces-create_page
Create page in a space.
twspaces-create_space
Create space.
twspaces-create_tags
Create one or more Spaces tags in a single request.
twspaces-duplicate_page
Duplicate page with a new title.
twspaces-get_category
Get space category.
twspaces-get_comment
Get page comment.
twspaces-get_homepage
Get a space's homepage.
twspaces-get_page
Get page. Returns content, metadata, tags, and revision info.
twspaces-get_space
Get space.
twspaces-get_tag
Get Spaces tag.
twspaces-list_categories
List space categories.
twspaces-list_comments
List comments on a page. Returns top-level comments with replies.
twspaces-list_pages
List pages in a space as a hierarchical tree. Returns the space's open pages under `pages`; set includePrivate to also receive, under a sibling `private` key, the restricted pages the calling user has access to. Returns at most 100 pages per call by default, up to 500 with pageSize, counted across both trees. A space with more pages than that is cut in depth-first order and the response carries a `truncated` marker naming the total page count, the pageOffset that returns the next set, and twspaces-get_page for a single page in full.
twspaces-list_space_collaborators
List space collaborators (users and teams).
twspaces-list_spaces
List spaces.
twspaces-list_tags
List Spaces tags.
twspaces-search
Full-text search across pages. Filter by space.
twspaces-update_category
Update space category.
twspaces-update_comment
Update page comment.
twspaces-update_page
Update page. Note: content and publish changes update the published page only, not the live collaborative editor draft; if the page has an active editor draft, re-publishing from the Spaces web editor can overwrite these changes (known Spaces limitation).
twspaces-update_space
Update space.
twspaces-update_tag
Update Spaces tag.
twchat
twchat-get_conversation
Get a single Teamwork Chat conversation by ID.
twchat-get_current_user
Get the current authenticated Teamwork Chat user, including identity, counts (unread conversations/messages, mentions), and settings.
twchat-get_or_create_dm
Get the 1:1 direct-message conversation with a person, creating it if it does not exist yet. Returns the conversation (use its id with send_message). Use list_people to find user_id. The authenticated user cannot be the target: naming your own user id is rejected.
twchat-list_conversations
List Teamwork Chat conversations the current user is a member of.
twchat-list_messages
List messages within a Teamwork Chat conversation. Requires conversation_id.
twchat-list_people
List people in the Teamwork Chat installation. Useful for resolving names to user IDs.
twchat-send_dm
Send a direct message to a person, resolving (or creating) the 1:1 conversation automatically. Requires user_id and body. Use list_people to find user_id. The authenticated user cannot be the recipient: naming your own user id is rejected and nothing is sent, so report a summary in the conversation instead of messaging yourself in chat.
twchat-send_message
Send a message to a Teamwork Chat conversation. Requires conversation_id and body.

Endpoints

URLTransportStateLatencyChecked
https://mcp.ai.teamwork.com/sse sse answering 522 ms 1 min ago
https://mcp.ai.teamwork.com streamable-http answering 629 ms 0 min ago

Alternatives to Teamwork

same job, measured the same way
Hubd
by bzdos

The project tracker for teams of humans and AI agents — in plain files. MCP server + CLI.

1 881 installs/wk local only
MCP FactorialHR
by t4dhg

Full CRUD MCP server for FactorialHR: employees, teams, time off, projects, ATS, payroll.

158 installs/wk local only
Taskfolk
by taskfolk

Project management for teams and their AI agents.

answering
esa
by esaio

Official MCP server for esa.io - a documentation sharing service for teams

5 466 installs/wk local only
Plate
by plate

Minimal project management for teams and AI agents.

28 tools answering
Smithery Notion
by smithery

A Notion workspace is a collaborative environment where teams can organize work, manage projects,…

answering
Maildev MCP
by pierre3

MailDev MCP server. Manage Docker containers and inspect emails from your AI editor or MCP client.

local only
Outlook Calendar
by mintmcp

A MCP server that works with Outlook Calendar to manage event listing, reading, and updates.

answering

Teamwork — questions

Answers built from our own checks of this server.

What can Teamwork do?
It exposes 213 tools, read directly from the server on our last check. Among them: twchat-get_conversation, twchat-get_current_user, twchat-get_or_create_dm, twchat-list_conversations, twchat-list_messages, twchat-list_people and 207 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
What is Teamwork mostly used for?
Its tools cluster around twprojects, twdesk and twspaces. That is what this server is built to work with — the grouping comes from the actual tool names, not from a category we assigned.
Is Teamwork working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 92 of 184 checks got a reply (50.0%), average response time 536 ms. The bar chart above shows every period we have measured.
How do I connect Teamwork?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does Teamwork need an API key?
No. Teamwork completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 213 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is Teamwork?
It answers our handshake in 536 ms on average, which is faster than 26% of all working MCP servers we measure. The comparison comes from our own checks across the whole registry, every 15 minutes.
Is Teamwork open source?
Yes — it is published under the MIT licence, written in Go, 25 stars on GitHub and 1 open issue. The source link is on this page, so you can read exactly what it does with your data before you connect it.