Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

com.teamwork/mcp

REMOTE · MCP.AI.TEAMWORK.COM · 3 COMPONENTS · SCANNED SEP 20

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

0 this week 86 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security78
  • The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
  • Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token. View diagnostics → Pass
  • HTTPS enforcement could not be verified: the plaintext port answered with HTTP 404, which proves neither a plaintext path nor enforcement. View diagnostics → Unverified
  • HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
  • DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
  • The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents. View diagnostics → Partial
Transport & Reachability100
Schema Quality & AI Usability73
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 39357 tokens (~183/item across 214 items; 213 tools + 1 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage96
  • 93% of tools have a non-trivial description (not blank, and not just the tool's name).Partial
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (33% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 4 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 214 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
  • Supports UI / widget rendering.Pass
Install

How do I install the com.teamwork/mcp server?

com.teamwork/mcp is a hosted endpoint at https://mcp.ai.teamwork.com/, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · mcp.ai.teamwork.com

# add to Claude Code
claude mcp add --transport http com-teamwork-mcp 'https://mcp.ai.teamwork.com/'
// .cursor/mcp.json
{
  "mcpServers": {
    "com-teamwork-mcp": {
      "url": "https://mcp.ai.teamwork.com/"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "com-teamwork-mcp": {
      "type": "http",
      "url": "https://mcp.ai.teamwork.com/"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.com-teamwork-mcp]
url = "https://mcp.ai.teamwork.com/"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-teamwork-mcp": {
      "type": "remote",
      "url": "https://mcp.ai.teamwork.com/",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add com-teamwork-mcp --url 'https://mcp.ai.teamwork.com/' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  com-teamwork-mcp:
    url: "https://mcp.ai.teamwork.com/"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "com-teamwork-mcp": {
      "Transport": "http",
      "Url": "https://mcp.ai.teamwork.com/"
    }
  }
}
# add to Vellum
assistant mcp add com-teamwork-mcp -t streamable-http -u 'https://mcp.ai.teamwork.com/'
// mcp.json
{
  "mcpServers": {
    "com-teamwork-mcp": {
      "type": "http",
      "url": "https://mcp.ai.teamwork.com/"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 15 Sept 26 0
    • Server version: 1.43.1 → 1.43.2 functional
  • 14 Sept 26 0
    • Tool “twprojects-get_jobrole” rewrote its description, which is the text the model reads security
    • Tool “twprojects-list_jobroles” rewrote its description, which is the text the model reads security
    • Tool “twspaces-list_pages” rewrote its description, which is the text the model reads security
    • Server version: 1.43.0 → 1.43.1 functional
    • Server version: 1.42.0 → 1.43.0 functional
    • Server version: 1.41.1 → 1.42.0 functional
    • Server version: 1.41.0 → 1.41.1 functional
    • “twspaces-list_pages” added an optional parameter “includePrivate” cosmetic
    • “twspaces-list_pages” reworded the description of “pageOffset” cosmetic
    • “twspaces-list_pages” reworded the description of “pageSize” cosmetic
  • 11 Sept 26 0
    • Server version: 1.40.1 → 1.41.0 functional
    • New tool “twprojects-get_file” functional
    • New tool “twprojects-list_files” functional
    • New tool “twprojects-download_file” functional
  • 10 Sept 26 0
    • Stability: fail → pass security
    • Server version: 1.40.0 → 1.40.1 functional
  • 9 Sept 26 0

    We did not load change detail this far back for this component, so this day may have recorded more than is shown.

    • Server version: 1.39.3 → 1.40.0 functional
    • “twprojects-create_task” added an optional parameter “notify” cosmetic
    • “twprojects-update_task” added an optional parameter “notify” cosmetic
    • “twdesk-list_ticket_types” made “fields” optional cosmetic
    • “twdesk-list_helpdoc_sites” made “subdomain” optional cosmetic
    • “twdesk-list_inboxes” made “email” optional cosmetic
    • “twdesk-list_inboxes” made “fields” optional cosmetic
    • “twdesk-list_inboxes” made “name” optional cosmetic
    • “twdesk-list_inboxes” made “orderBy” optional cosmetic
    • “twdesk-list_inboxes” made “orderDirection” optional cosmetic
    • “twdesk-list_inboxes” made “page” optional cosmetic
    • “twdesk-list_inboxes” made “pageSize” optional cosmetic
    • “twdesk-list_priorities” made “color” optional cosmetic
    • “twdesk-list_priorities” made “fields” optional cosmetic
    • “twdesk-list_priorities” made “name” optional cosmetic
    • “twdesk-list_priorities” made “orderBy” optional cosmetic
    • “twdesk-list_priorities” made “orderDirection” optional cosmetic
    • “twdesk-list_priorities” made “page” optional cosmetic
    • “twdesk-list_priorities” made “pageSize” optional cosmetic
    • “twdesk-list_statuses” made “code” optional cosmetic
    • “twdesk-list_statuses” made “color” optional cosmetic
    • “twdesk-list_statuses” made “fields” optional cosmetic
    • “twdesk-list_statuses” made “name” optional cosmetic
    • “twdesk-list_statuses” made “orderBy” optional cosmetic
    • “twdesk-list_statuses” made “orderDirection” optional cosmetic
    • “twdesk-list_statuses” made “page” optional cosmetic
    • “twdesk-list_statuses” made “pageSize” optional cosmetic
    • “twdesk-list_tags” made “color” optional cosmetic
    • “twdesk-list_tags” made “fields” optional cosmetic
    • “twdesk-list_tags” made “inboxIDs” optional cosmetic
    • “twdesk-list_tags” made “name” optional cosmetic
    • “twdesk-list_tags” made “orderBy” optional cosmetic
    • “twdesk-list_tags” made “orderDirection” optional cosmetic
    • “twdesk-list_tags” made “page” optional cosmetic
    • “twdesk-list_tags” made “pageSize” optional cosmetic
    • “twdesk-list_ticket_types” made “inboxIDs” optional cosmetic
    • “twdesk-list_ticket_types” made “name” optional cosmetic
    • “twdesk-list_ticket_types” made “orderBy” optional cosmetic
    • “twdesk-list_ticket_types” made “orderDirection” optional cosmetic
    • “twdesk-list_ticket_types” made “page” optional cosmetic
    • “twdesk-list_ticket_types” made “pageSize” optional cosmetic
    • “twdesk-list_users” made “email” optional cosmetic
    • “twdesk-list_users” made “fields” optional cosmetic
    • “twdesk-list_users” made “firstName” optional cosmetic
    • “twdesk-list_users” made “inboxIDs” optional cosmetic
    • “twdesk-list_users” made “isPartTime” optional cosmetic
    • “twdesk-list_users” made “lastName” optional cosmetic
    • “twdesk-list_users” made “orderBy” optional cosmetic
    • “twdesk-list_users” made “orderDirection” optional cosmetic
    • “twdesk-list_users” made “page” optional cosmetic
    • “twdesk-list_users” made “pageSize” optional cosmetic
    • “twdesk-reply_ticket” made “bcc” optional cosmetic
    • “twdesk-reply_ticket” made “cc” optional cosmetic
    • “twdesk-reply_ticket” made “threadType” optional cosmetic
    • “twdesk-search_helpdoc_articles” made “categoryID” optional cosmetic
    • “twdesk-search_helpdoc_articles” made “page” optional cosmetic
    • “twdesk-search_helpdoc_articles” made “pageSize” optional cosmetic
    • “twdesk-search_helpdoc_articles” made “search” optional cosmetic
    • “twdesk-search_helpdoc_articles” made “siteID” optional cosmetic
    • “twdesk-search_helpdoc_articles” made “status” optional cosmetic
    • “twdesk-search_tickets” made “companyIDs” optional cosmetic
    • “twdesk-search_tickets” made “createdAfter” optional cosmetic
    • “twdesk-search_tickets” made “createdBefore” optional cosmetic
    • “twdesk-search_tickets” made “customerIDs” optional cosmetic
    • “twdesk-search_tickets” made “fields” optional cosmetic
    • “twdesk-search_tickets” made “inboxIDs” optional cosmetic
    • “twdesk-search_tickets” made “omitMerged” optional cosmetic
    • “twdesk-search_tickets” made “orderBy” optional cosmetic
    • “twdesk-search_tickets” made “orderDirection” optional cosmetic
    • “twdesk-search_tickets” made “page” optional cosmetic
    • “twdesk-search_tickets” made “pageSize” optional cosmetic
    • “twdesk-search_tickets” made “priorityIDs” optional cosmetic
    • “twdesk-search_tickets” made “search” optional cosmetic
    • “twdesk-search_tickets” made “statusIDs” optional cosmetic
    • “twdesk-search_tickets” made “tagIDs” optional cosmetic
    • “twdesk-search_tickets” made “userIDs” optional cosmetic
    • “twdesk-update_company” made “description” optional cosmetic
    • “twdesk-update_company” made “details” optional cosmetic
    • “twdesk-update_company” made “domains” optional cosmetic
    • “twdesk-update_company” made “industry” optional cosmetic
    • “twdesk-update_company” made “kind” optional cosmetic
    • “twdesk-update_company” made “name” optional cosmetic
    • “twdesk-update_company” made “note” optional cosmetic
    • “twdesk-update_company” made “permission” optional cosmetic
    • “twdesk-update_company” made “website” optional cosmetic
    • “twdesk-update_customer” made “address” optional cosmetic
    • “twdesk-update_customer” made “email” optional cosmetic
    • “twdesk-update_customer” made “extraData” optional cosmetic
    • “twdesk-update_customer” made “facebookURL” optional cosmetic
    • “twdesk-update_customer” made “firstName” optional cosmetic
    • “twdesk-update_customer” made “jobTitle” optional cosmetic
    • “twdesk-update_customer” made “lastName” optional cosmetic
    • “twdesk-update_customer” made “linkedinURL” optional cosmetic
    • “twdesk-update_customer” made “mobile” optional cosmetic
    • “twdesk-update_customer” made “notes” optional cosmetic
    • “twdesk-update_customer” made “organization” optional cosmetic
    • “twdesk-update_customer” made “phone” optional cosmetic
    • “twdesk-update_customer” made “twitterHandle” optional cosmetic
    • “twdesk-update_helpdoc_article” made “contents” optional cosmetic
    • “twdesk-update_helpdoc_article” made “description” optional cosmetic
    • “twdesk-update_helpdoc_article” made “isPrivate” optional cosmetic
    • “twdesk-update_helpdoc_article” made “status” optional cosmetic
    • “twdesk-update_helpdoc_article” made “title” optional cosmetic
    • “twdesk-update_priority” made “color” optional cosmetic
    • “twdesk-update_priority” made “name” optional cosmetic
    • “twdesk-update_status” made “color” optional cosmetic
    • “twdesk-update_status” made “displayOrder” optional cosmetic
    • “twdesk-create_company” made “description” optional cosmetic
    • “twdesk-create_company” made “details” optional cosmetic
    • “twdesk-create_company” made “domains” optional cosmetic
    • “twdesk-create_company” made “industry” optional cosmetic
    • “twdesk-create_company” made “kind” optional cosmetic
    • “twdesk-create_company” made “note” optional cosmetic
    • “twdesk-create_company” made “permission” optional cosmetic
    • “twdesk-create_company” made “website” optional cosmetic
    • “twdesk-create_customer” made “address” optional cosmetic
    • “twdesk-create_customer” made “email” optional cosmetic
    • “twdesk-create_customer” made “extraData” optional cosmetic
    • “twdesk-create_customer” made “facebookURL” optional cosmetic
    • “twdesk-create_customer” made “firstName” optional cosmetic
    • “twdesk-create_customer” made “jobTitle” optional cosmetic
    • “twdesk-create_customer” made “lastName” optional cosmetic
    • “twdesk-create_customer” made “linkedinURL” optional cosmetic
    • “twdesk-create_customer” made “mobile” optional cosmetic
    • “twdesk-create_customer” made “notes” optional cosmetic
    • “twdesk-create_customer” made “organization” optional cosmetic
    • “twdesk-create_customer” made “phone” optional cosmetic
    • “twdesk-create_customer” made “twitterHandle” optional cosmetic
    • “twdesk-create_file” made “disposition” optional cosmetic
    • “twdesk-create_helpdoc_article” made “contents” optional cosmetic
    • “twdesk-create_helpdoc_article” made “description” optional cosmetic
    • “twdesk-create_helpdoc_article” made “isPrivate” optional cosmetic
    • “twdesk-create_helpdoc_article” made “status” optional cosmetic
    • “twdesk-create_priority” made “color” optional cosmetic
    • “twdesk-create_status” made “color” optional cosmetic
    • “twdesk-create_status” made “displayOrder” optional cosmetic
    • “twdesk-create_tag” made “color” optional cosmetic
    • “twdesk-create_ticket” made “agentId” optional cosmetic
    • “twdesk-create_ticket” made “bcc” optional cosmetic
    • “twdesk-create_ticket” made “cc” optional cosmetic
    • “twdesk-create_ticket” made “customerEmail” optional cosmetic
    • “twdesk-create_ticket” made “customerId” optional cosmetic
    • “twdesk-create_ticket” made “files” optional cosmetic
    • “twdesk-create_ticket” made “notifyCustomer” optional cosmetic
    • “twdesk-create_ticket” made “priorityId” optional cosmetic
    • “twdesk-create_ticket” made “statusId” optional cosmetic
    • “twdesk-create_ticket” made “tags” optional cosmetic
    • “twdesk-create_ticket” made “typeId” optional cosmetic
    • “twdesk-create_ticket_type” made “displayOrder” optional cosmetic
    • “twdesk-create_ticket_type” made “enabledForFutureInboxes” optional cosmetic
    • “twdesk-get_company” made “fields” optional cosmetic
    • “twdesk-get_customer” made “fields” optional cosmetic
    • “twdesk-get_helpdoc_article” made “fields” optional cosmetic
    • “twdesk-get_helpdoc_site” made “fields” optional cosmetic
    • “twdesk-get_inbox” made “fields” optional cosmetic
    • “twdesk-get_priority” made “fields” optional cosmetic
    • “twdesk-get_status” made “fields” optional cosmetic
    • “twdesk-get_tag” made “fields” optional cosmetic
    • “twdesk-get_ticket” made “fields” optional cosmetic
    • “twdesk-get_ticket_type” made “fields” optional cosmetic
    • “twdesk-get_user” made “fields” optional cosmetic
    • “twdesk-list_companies” made “domains” optional cosmetic
    • “twdesk-list_companies” made “fields” optional cosmetic
    • “twdesk-list_companies” made “kind” optional cosmetic
    • “twdesk-list_companies” made “name” optional cosmetic
    • “twdesk-list_companies” made “orderBy” optional cosmetic
    • “twdesk-list_companies” made “orderDirection” optional cosmetic
    • “twdesk-list_companies” made “page” optional cosmetic
    • “twdesk-list_companies” made “pageSize” optional cosmetic
    • “twdesk-list_customers” made “companyIDs” optional cosmetic
    • “twdesk-list_customers” made “companyNames” optional cosmetic
    • “twdesk-list_customers” made “emails” optional cosmetic
    • “twdesk-list_customers” made “fields” optional cosmetic
    • “twdesk-list_customers” made “orderBy” optional cosmetic
    • “twdesk-list_customers” made “orderDirection” optional cosmetic
    • “twdesk-list_customers” made “page” optional cosmetic
    • “twdesk-list_customers” made “pageSize” optional cosmetic
    • “twdesk-list_helpdoc_sites” made “fields” optional cosmetic
    • “twdesk-list_helpdoc_sites” made “name” optional cosmetic
    • “twdesk-list_helpdoc_sites” made “orderBy” optional cosmetic
    • “twdesk-list_helpdoc_sites” made “orderDirection” optional cosmetic
    • “twdesk-list_helpdoc_sites” made “page” optional cosmetic
    • “twdesk-list_helpdoc_sites” made “pageSize” optional cosmetic
  • 26 Aug 26 +1

    We did not load change detail this far back for this component, so this day may have recorded more than is shown.

  • 23 Aug 26 +1

    We did not load change detail this far back for this component, so this day may have recorded more than is shown.

  • 22 Aug 26 84

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Probed https://mcp.ai.teamwork.com

TLS valid

Negotiated TLS 1.2 with TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=*.eks.us.teamworkops.com CN=Amazon RSA 2048 M04,O=Amazon,C=US 21 Jun 2026 4 Jan 2027 RSA 2048 SHA256-RSA 55ecd7796e6cd7996d2683854dc6516
SANs: *.eks.us.teamworkops.com, *.teamwork.com, *.helpdocsite.com, *.us.teamworkops.com, *.helpdocs.com, *.teamworkdesk.com, *.ai.teamwork.com
CN=Amazon RSA 2048 M04,O=Amazon,C=US (CA) CN=Amazon Root CA 1,O=Amazon,C=US 23 Aug 2022 23 Aug 2030 RSA 2048 SHA256-RSA 773124f2a952e3ed18a58bdb85d1bc0ce5f27
CN=Amazon Root CA 1,O=Amazon,C=US (CA) CN=Starfield Services Root Certificate Authority - G2,O=Starfield Technologies\, Inc.,L=Scottsdale,ST=Arizona,C=US 25 May 2015 31 Dec 2037 RSA 2048 SHA256-RSA 67f944a2a27cdf3fac2ae2b01f908eeb9c4c6

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of mcp.ai.teamwork.com. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
com. present 19718 13 Verified
teamwork.com. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Enforced and verified

The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.

Result Enforced and verified
Enforced On tool calls
HTTP status 200

WWW-Authenticate challenge Bearer resource_metadata="https://mcp.ai.teamwork.com/.well-known/oauth-protected-resource"

Bearer resource_metadata="https://mcp.ai.teamwork.com/.well-known/oauth-protected-resource"

Protected resource metadata

Document https://mcp.ai.teamwork.com/.well-known/oauth-protected-resource
Retrieved Yes
Resource https://mcp.ai.teamwork.com
Authorisation server https://teamwork.com

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.ai.teamwork.com Verified 200
http (plaintext) http://mcp.ai.teamwork.com Inconclusive 404
MCP tools · 213 exposed · ~39,338 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
twprojects-update_timelog ~317

Update timelog. It can also be moved to another project or task.

NameTypeReqDescription
billablebooleanIf true, the timelog is billable.
clear_taskbooleanSet to true to detach the timelog from its task, leaving it logged against the project. Cannot be combined with task_id.
datestringThe date of the timelog.
descriptionstringA description of the timelog.
hoursintegerThe number of hours spent on the timelog. Must be a positive integer.
idintegeryesThe ID of the timelog to update.
is_utcbooleanIf true, the time is in UTC.
minutesintegerMinutes spent on the timelog. Must be a positive integer less than 60; otherwise increment hours instead.
project_idintegerMove the timelog to this project. The API takes the project from the task whenever the timelog is logged against one, so pass clear_task alongside it to move a timelog off its task.
tag_idsarrayA list of tag IDs to associate with the timelog.
task_idintegerMove the timelog to this task, and with it to the task's own project.
timestringThe time of the timelog in the format HH:MM:SS.
user_idintegerUser the timelog is logged for. Defaults to the authenticated user.

No output schema declared.

No examples provided.

twprojects-update_timer ~107

Update timer.

NameTypeReqDescription
billablebooleanIf true, the timer is billable.
descriptionstringA description of the timer.
idintegeryesThe ID of the timer to update.
project_idintegerThe ID of the project to associate the timer with.
runningbooleanIf true, the timer will start running immediately.
task_idintegerThe ID of the task to associate the timer with.

No output schema declared.

No examples provided.

twprojects-update_user ~151

Update user.

NameTypeReqDescription
adminbooleanIndicates whether the user is an administrator.
company_idintegerThe ID of the client/company to which the user belongs.
emailstringThe email address of the user.
first_namestringThe first name of the user.
idintegeryesThe ID of the user to update.
last_namestringThe last name of the user.
titlestringThe job title of the user, such as 'Project Manager' or 'Senior Software Developer'.
typestringThe type of user, such as 'account', 'collaborator', or 'contact'.

No output schema declared.

No examples provided.

twprojects-update_workflow ~41

Update workflow.

NameTypeReqDescription
idintegeryesThe ID of the workflow to update.
namestringThe new name of the workflow.

No output schema declared.

No examples provided.

twprojects-update_workflow_stage ~62

Update workflow stage.

NameTypeReqDescription
idintegeryesThe ID of the workflow stage to update.
namestringThe new name of the workflow stage.
workflow_idintegeryesThe ID of the workflow that owns the stage.

No output schema declared.

No examples provided.

twprojects-users_workload ~157

Get task allocation across users for a date range. (workload of users)

NameTypeReqDescription
end_datestringyesEnd of the workload period; the boundary day itself is included.
pageintegerPage number for pagination of results (1-based).
page_sizeintegerNumber of results per page for pagination (1-500).
project_idsarrayFilter workload by project.
start_datestringyesStart of the workload period; the boundary day itself is included.
user_company_idsarrayFilter workload by users' client/company.
user_idsarrayFilter workload by user.
user_team_idsarrayFilter workload by users' team.
NameTypeReqDescription
includedobjectyes
metaobjectyes
workloadobjectyes

No examples provided.

twspaces-create_category ~48

Create space category.

NameTypeReqDescription
colorstringA hex color code for the category (e.g. "#FF5733").
namestringyesThe name of the category.

No output schema declared.

No examples provided.

twspaces-create_comment ~106

Create comment on a page. Use parentId for replies.

NameTypeReqDescription
contentstringyesThe content of the comment.
isPrivatebooleanSet to true to create a private comment visible only to space members.
pageIdintegeryesThe ID of the page to comment on.
parentIdintegerThe ID of the parent comment (for creating a reply).
spaceIdintegeryesThe ID of the space containing the page.

No output schema declared.

No examples provided.

twspaces-create_page ~183

Create page in a space.

NameTypeReqDescription
changeMessagestringA message describing the changes made in this version.
contentstringThe HTML content of the page.
isFullWidthbooleanDisplay the page in full-width layout.
isPublishbooleanSet to true to publish the page immediately (default: draft).
isRequiredReadingbooleanMark this page as required reading for space members.
parentIdintegerThe ID of the parent page (for creating a sub-page).
readerInlineCommentsEnabledbooleanAllow readers to add inline comments on this page.
slugstringA URL-friendly slug for the page.
spaceIdintegeryesThe ID of the space to create the page in.
titlestringyesThe title of the page.

No output schema declared.

No examples provided.

twspaces-create_space ~141

Create space.

NameTypeReqDescription
categoryIdintegerCategory to assign. Use twspaces-list_categories to discover.
codestringyesA short unique code/identifier for the space (e.g. "ENG", "DOCS").
iconstringAn icon identifier for the space.
projectIdintegerThe ID of a Teamwork project to link to this space.
purposestringA brief description of the space's purpose.
spaceColorstringA hex color code for the space (e.g. "#FF5733").
titlestringyesThe title of the space.

No output schema declared.

No examples provided.

twspaces-create_tags ~31

Create one or more Spaces tags in a single request.

NameTypeReqDescription
tagsarrayyesTags to create.

No output schema declared.

No examples provided.

twspaces-duplicate_page ~99

Duplicate page with a new title.

NameTypeReqDescription
pageIdintegeryesThe ID of the page to duplicate.
parentIdintegerThe ID of the parent page for the duplicate (defaults to same parent).
slugstringA URL-friendly slug for the duplicated page.
spaceIdintegeryesThe ID of the space containing the page.
titlestringyesThe title for the duplicated page.

No output schema declared.

No examples provided.

twspaces-get_category ~28

Get space category.

NameTypeReqDescription
idintegeryesThe ID of the category to retrieve.

No output schema declared.

No examples provided.

twspaces-get_comment ~61

Get page comment.

NameTypeReqDescription
commentIdintegeryesThe ID of the comment to retrieve.
pageIdintegeryesThe ID of the page containing the comment.
spaceIdintegeryesThe ID of the space containing the page.

No output schema declared.

No examples provided.

twspaces-get_homepage ~35

Get a space's homepage.

NameTypeReqDescription
spaceIdintegeryesThe ID of the space to retrieve the homepage for.

No output schema declared.

No examples provided.

twspaces-get_page ~55

Get page. Returns content, metadata, tags, and revision info.

NameTypeReqDescription
pageIdintegeryesThe ID of the page to retrieve.
spaceIdintegeryesThe ID of the space containing the page.

No output schema declared.

No examples provided.

twspaces-get_space ~27

Get space.

NameTypeReqDescription
idintegeryesThe ID of the space to retrieve.

No output schema declared.

No examples provided.

twspaces-get_tag ~28

Get Spaces tag.

NameTypeReqDescription
idintegeryesThe ID of the tag to retrieve.

No output schema declared.

No examples provided.

twspaces-list_categories ~54

List space categories.

NameTypeReqDescription
pageOffsetintegerThe index position to start retrieving results from (not a page number).
pageSizeintegerNumber of results per page for pagination (1-500).

No output schema declared.

No examples provided.

twspaces-list_comments ~96

List comments on a page. Returns top-level comments with replies.

NameTypeReqDescription
pageIdintegeryesThe ID of the page to list comments for.
pageOffsetintegerThe index position to start retrieving results from (not a page number).
pageSizeintegerNumber of results per page for pagination (1-500).
spaceIdintegeryesThe ID of the space containing the page.

No output schema declared.

No examples provided.

twspaces-list_pages ~288

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.

NameTypeReqDescription
includePrivatebooleanReturn the restricted pages the calling user has access to as well, under a `private` key beside `pages`. Defaults to false, so an unfiltered call answers with the open pages only and a private page…
pageOffsetintegerNumber of pages to skip, counted in depth-first order (not a page number), across the open tree and then the private one. Use the value the `truncated` marker names to read the next set.
pageSizeintegerMaximum number of pages to return (1-500). Defaults to 100.
spaceIdintegeryesThe ID of the space to list pages for.

No output schema declared.

No examples provided.

twspaces-list_space_collaborators ~37

List space collaborators (users and teams).

NameTypeReqDescription
idintegeryesThe ID of the space to retrieve collaborators for.

No output schema declared.

No examples provided.

twspaces-list_spaces ~53

List spaces.

NameTypeReqDescription
pageOffsetintegerThe index position to start retrieving results from (not a page number).
pageSizeintegerNumber of results per page for pagination (1-500).

No output schema declared.

No examples provided.

twspaces-list_tags ~54

List Spaces tags.

NameTypeReqDescription
pageOffsetintegerThe index position to start retrieving results from (not a page number).
pageSizeintegerNumber of results per page for pagination (1-500).

No output schema declared.

No examples provided.

twspaces-search ~105

Full-text search across pages. Filter by space.

NameTypeReqDescription
includeDeletedbooleanInclude deleted pages in search results.
pageOffsetintegerThe index position to start retrieving results from (not a page number).
pageSizeintegerNumber of results per page for pagination (1-500).
querystringyesThe search query string.
spaceIdsarrayLimit search to specific spaces. Use twspaces-list_spaces to discover.

No output schema declared.

No examples provided.

twspaces-update_category ~56

Update space category.

NameTypeReqDescription
colorstringA new hex color code for the category.
idintegeryesThe ID of the category to update.
namestringThe new name for the category.

No output schema declared.

No examples provided.

twspaces-update_comment ~111

Update page comment.

NameTypeReqDescription
commentIdintegeryesThe ID of the comment to update.
contentstringThe new content of the comment.
isPrivatebooleanChange the privacy setting of the comment.
pageIdintegeryesThe ID of the page containing the comment.
spaceIdintegeryesThe ID of the space containing the page.
statestringThe new state of the comment (e.g. "active", "resolved").

No output schema declared.

No examples provided.

twspaces-update_page ~313

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

NameTypeReqDescription
changeMessagestringA message describing the changes made in this version.
contentstringThe new HTML content of the page.
draftVersionintegerOptimistic concurrency token for the page's draft content. Required when updating `content`; optional otherwise. Obtain the current value from the `draftVersion` field with twspaces-get_page or twspa…
isFullWidthbooleanToggle full-width layout for this page.
isMinorChangebooleanMark this update as a minor change (won't notify watchers).
isPublishbooleanSet to true to publish the page, false to revert to draft.
isRequiredReadingbooleanMark or unmark this page as required reading.
pageIdintegeryesThe ID of the page to update.
parentIdintegerThe ID of the new parent page (to move the page).
readerInlineCommentsEnabledbooleanAllow or disallow readers from adding inline comments.
slugstringA new URL-friendly slug for the page.
spaceIdintegeryesThe ID of the space containing the page.
titlestringThe new title of the page.

No output schema declared.

No examples provided.

twspaces-update_space ~164

Update space.

NameTypeReqDescription
categoryIdintegerCategory to assign. Use twspaces-list_categories to discover.
codestringA new short unique code/identifier for the space.
iconstringA new icon identifier for the space.
idintegeryesThe ID of the space to update.
projectIdintegerThe ID of a Teamwork project to link to this space.
purposestringA new brief description of the space's purpose.
spaceColorstringA new hex color code for the space.
statestringThe state of the space (e.g. "active", "archived").
titlestringThe new title of the space.

No output schema declared.

No examples provided.

twspaces-update_tag ~56

Update Spaces tag.

NameTypeReqDescription
colorstringA new hex color code for the tag.
idintegeryesThe ID of the tag to update.
namestringThe new name for the tag.

No output schema declared.

No examples provided.

Common questions

What is the com.teamwork/mcp server?

com.teamwork/mcp is listed in the public MCP registry as com.teamwork/mcp. The Teamwork.com official MCP server helps teams efficiently manage client projects with AI. This page covers its hosted endpoint (https://mcp.ai.teamwork.com).

Is the com.teamwork/mcp server safe to use?

com.teamwork/mcp scores 86 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the com.teamwork/mcp server expose?

com.teamwork/mcp exposes 213 tools: twprojects-get_task, twprojects-list_tasks, twprojects-create_task, twprojects-list_comments, twprojects-update_task, and 208 more. Their descriptions and schemas cost roughly 39,338 tokens of context every time the server is loaded.

Does the com.teamwork/mcp server require authentication?

Yes. com.teamwork/mcp asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

Is the com.teamwork/mcp server still maintained?

com.teamwork/mcp is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.