com.teamwork/mcp
OCI · DOCKER.IO/TEAMWORK/MCP:V1.43.2 · 3 COMPONENTS · SCANNED SEP 20
The Teamwork.com official MCP server helps teams efficiently manage client projects with AI.
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security0
- Malware scan not yet available for this package.Unverified
- Known CVEs could not be checked: this artifact ships no SBOM, so there is no dependency list to read. Publishing one would let us assess it.Unverified
- Install-script risk not yet assessed.Unverified
- Dependency health could not be checked: this artifact ships no SBOM, so there is no dependency list to read. Publishing one would let us assess it.Unverified
Provenance & Transparency35
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- License check failed: no license is declared. See how to fix → Fail
- Actively maintained (last published 4 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
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 Management0
- Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
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
Unverified: 2 categories
Categories scored 0 because we could not verify them: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.
How do I install the com.teamwork/mcp server?
com.teamwork/mcp runs locally as a container image, launched with docker run --rm -i docker.io/teamwork/mcp:v1.43.2. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.
oci · docker.io/teamwork/mcp:v1.43.2
claude mcp add com-teamwork-mcp -- docker run --rm -i docker.io/teamwork/mcp:v1.43.2
{
"mcpServers": {
"com-teamwork-mcp": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"docker.io/teamwork/mcp:v1.43.2"
]
}
}
} {
"servers": {
"com-teamwork-mcp": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"docker.io/teamwork/mcp:v1.43.2"
]
}
}
} codex mcp add com-teamwork-mcp -- docker run --rm -i docker.io/teamwork/mcp:v1.43.2
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"com-teamwork-mcp": {
"type": "local",
"command": [
"docker",
"run",
"--rm",
"-i",
"docker.io/teamwork/mcp:v1.43.2"
],
"enabled": true
}
}
} mcp_servers:
com-teamwork-mcp:
command: "docker"
args: ["run", "--rm", "-i", "docker.io/teamwork/mcp:v1.43.2"] {
"McpServers": {
"com-teamwork-mcp": {
"Transport": "stdio",
"Command": "docker",
"Arguments": [
"run",
"--rm",
"-i",
"docker.io/teamwork/mcp:v1.43.2"
]
}
}
} {
"mcpServers": {
"com-teamwork-mcp": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"docker.io/teamwork/mcp:v1.43.2"
]
}
}
} 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 38
First indexed and scored.
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 · Analysed oci/docker.io/teamwork/mcp:v1.43.2
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | oci |
| Reason | Verification failed |
| Discovered via | OCI referrers API |
Background: How many MCP packages publish verified provenance →
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 →
twchat-get_conversation ~36
Get a single Teamwork Chat conversation by ID.
| Name | Type | Req | Description |
|---|---|---|---|
| conversation_id | integer | yes | The ID of the conversation to retrieve. |
No output schema declared.
No examples provided.
twchat-get_current_user ~35
Get the current authenticated Teamwork Chat user, including identity, counts (unread conversations/messages, mentions), and settings.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
twchat-get_or_create_dm ~103
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.
| Name | Type | Req | Description |
|---|---|---|---|
| user_id | integer | yes | The ID of the person to get the direct-message conversation with. Must be somebody other than the authenticated user; see get_current_user. |
No output schema declared.
No examples provided.
twchat-list_conversations ~148
List Teamwork Chat conversations the current user is a member of.
| Name | Type | Req | Description |
|---|---|---|---|
| include_message_data | boolean | – | Include the latest message in each conversation. |
| page_limit | integer | – | Number of conversations to return (max 10). |
| page_offset | integer | – | The index position to start retrieving results from (not a page number). |
| search_term | string | – | A search term to filter conversations by title. |
| sort | string | – | Sort order for the returned conversations. |
| status | string | – | Filter by conversation status. |
| type | string | – | Filter by conversation type: "rooms" for group/channel conversations, "pair" for 1:1 direct messages. |
No output schema declared.
No examples provided.
twchat-list_messages ~242
List messages within a Teamwork Chat conversation. Requires conversation_id.
| Name | Type | Req | Description |
|---|---|---|---|
| after_message_id | integer | – | Return messages newer than this message ID (cursor). |
| before_message_id | integer | – | Return messages older than this message ID (cursor). |
| conversation_id | integer | yes | The ID of the conversation to read messages from. |
| created_after | – | – | Return messages created after this time. Accepts an RFC 3339 timestamp (2026-08-03T14:30:00Z) or a plain YYYY-MM-DD date (2026-08-03), which covers that whole day in UTC. |
| created_before | – | – | Return messages created before this time. Accepts an RFC 3339 timestamp (2026-08-03T14:30:00Z) or a plain YYYY-MM-DD date (2026-08-03), which covers that whole day in UTC. |
| page | integer | – | Page number for pagination of results (1-based). |
| page_size | integer | – | Number of messages per page (1-200). |
| search_term | string | – | A search term to filter messages by text content. |
No output schema declared.
No examples provided.
twchat-list_people ~79
List people in the Teamwork Chat installation. Useful for resolving names to user IDs.
| Name | Type | Req | Description |
|---|---|---|---|
| page_limit | integer | – | Number of people to return. |
| page_offset | integer | – | The index position to start retrieving results from (not a page number). |
| search_term | string | – | A search term to filter people by name or email. |
No output schema declared.
No examples provided.
twchat-send_dm ~125
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.
| Name | Type | Req | Description |
|---|---|---|---|
| body | string | yes | The message text. Supports Markdown. |
| user_id | integer | yes | The ID of the person to send the direct message to. Must be somebody other than the authenticated user; see get_current_user. |
No output schema declared.
No examples provided.
twchat-send_message ~57
Send a message to a Teamwork Chat conversation. Requires conversation_id and body.
| Name | Type | Req | Description |
|---|---|---|---|
| body | string | yes | The message text. Supports Markdown. |
| conversation_id | integer | yes | The ID of the conversation to post the message to. |
No output schema declared.
No examples provided.
twdesk-create_company ~123
Create Desk company.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | – | The description of the company. |
| details | string | – | The details of the company. |
| domains | array | – | The domains for the company. |
| industry | string | – | The industry of the company. |
| kind | string | – | The kind of the company. |
| name | string | yes | The name of the company. |
| note | string | – | The note for the company. |
| permission | string | – | The permission level of the company. |
| website | string | – | The website of the company. |
No output schema declared.
No examples provided.
twdesk-create_customer ~186
Create customer.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | – | The address of the customer. |
| string | – | The email of the customer. | |
| extraData | string | – | The extra data of the customer. |
| facebookURL | string | – | The Facebook URL of the customer. |
| firstName | string | – | The first name of the customer. |
| jobTitle | string | – | The job title of the customer. |
| lastName | string | – | The last name of the customer. |
| linkedinURL | string | – | The LinkedIn URL of the customer. |
| mobile | string | – | The mobile number of the customer. |
| notes | string | – | The notes of the customer. |
| organization | string | – | The organization of the customer. |
| phone | string | – | The phone number of the customer. |
| twitterHandle | string | – | The Twitter handle of the customer. |
No output schema declared.
No examples provided.
twdesk-create_file ~79
Upload file. Attach the returned ID to tickets or messages.
| Name | Type | Req | Description |
|---|---|---|---|
| data | string | yes | The content of the file as a base64-encoded string. |
| disposition | string | – | The disposition of the file. |
| mimeType | string | yes | The MIME type of the file. |
| name | string | yes | The name of the file. |
No output schema declared.
No examples provided.
twdesk-create_helpdoc_article ~126
Create a new help doc article.
| Name | Type | Req | Description |
|---|---|---|---|
| contents | string | – | The body content of the article. |
| description | string | – | A short description / summary of the article. |
| isPrivate | boolean | – | Set to true to make the article private. |
| siteID | integer | yes | The ID of the help doc site to create the article in. Use twdesk-list_helpdoc_sites to discover. |
| status | string | – | Publication status of the article (e.g. "published", "draft"). |
| title | string | yes | The title of the article. |
No output schema declared.
No examples provided.
twdesk-create_priority ~38
Create ticket priority.
| Name | Type | Req | Description |
|---|---|---|---|
| color | string | – | The color of the priority. |
| name | string | yes | The name of the priority. |
No output schema declared.
No examples provided.
twdesk-create_status ~52
Create ticket status.
| Name | Type | Req | Description |
|---|---|---|---|
| color | string | – | The color of the status. |
| displayOrder | integer | – | The display order of the status. |
| name | string | yes | The name of the status. |
No output schema declared.
No examples provided.
twdesk-create_tag ~38
Create Desk tag.
| Name | Type | Req | Description |
|---|---|---|---|
| color | string | – | The color of the tag. |
| name | string | yes | The name of the tag. |
No output schema declared.
No examples provided.
twdesk-create_ticket ~278
Create ticket.
| Name | Type | Req | Description |
|---|---|---|---|
| agentId | integer | – | Agent the ticket is assigned to. Use twdesk-list_users to discover. |
| bcc | array | – | Email addresses to BCC. |
| body | string | yes | The body of the ticket. |
| cc | array | – | Email addresses to CC. |
| customerEmail | string | – | Customer email; required when customerId is not given. Existing customers are matched, otherwise a new customer is created. |
| customerId | integer | – | Customer of the ticket. Use twdesk-list_customers to discover. |
| files | array | – | File IDs to attach. Use twdesk-create_file to upload. |
| inboxId | integer | yes | Inbox of the ticket. Use twdesk-list_inboxes to discover. |
| notifyCustomer | boolean | – | Set to true if the customer should be sent a copy of the ticket. |
| priorityId | integer | – | Priority of the ticket. Use twdesk-list_priorities to discover. |
| statusId | integer | – | Status of the ticket. Use twdesk-list_statuses to discover. |
| subject | string | yes | The subject of the ticket. |
| tags | array | – | Tags to associate with the ticket. Use twdesk-list_tags to discover. |
| typeId | integer | – | Ticket type. Use twdesk-list_ticket_types to discover. |
No output schema declared.
No examples provided.
twdesk-create_ticket_type ~62
Create ticket type.
| Name | Type | Req | Description |
|---|---|---|---|
| displayOrder | integer | – | The display order of the type. |
| enabledForFutureInboxes | boolean | – | Whether the type is enabled for future inboxes. |
| name | string | yes | The name of the ticket type. |
No output schema declared.
No examples provided.
twdesk-get_company ~61
Get Desk company (customer organization).
| Name | Type | Req | Description |
|---|---|---|---|
| fields | array | – | Sparse fieldset: field names to include (e.g. ["id","name"]). Omit to receive all fields. |
| id | integer | yes | The ID of the company to retrieve. |
No output schema declared.
No examples provided.
twdesk-get_customer ~57
Get customer.
| Name | Type | Req | Description |
|---|---|---|---|
| fields | array | – | Sparse fieldset: field names to include (e.g. ["id","name"]). Omit to receive all fields. |
| id | integer | yes | The ID of the customer to retrieve. |
No output schema declared.
No examples provided.
twdesk-get_helpdoc_article ~66
Get a help doc article by ID.
| Name | Type | Req | Description |
|---|---|---|---|
| fields | array | – | Sparse fieldset: field names to include (e.g. ["id","name"]). Omit to receive all fields. |
| id | integer | yes | The ID of the help doc article to retrieve. |
No output schema declared.
No examples provided.
twdesk-get_helpdoc_site ~80
Get a help doc site (knowledge base) by ID, including its subdomain, branding and article counts.
| Name | Type | Req | Description |
|---|---|---|---|
| fields | array | – | Sparse fieldset: field names to include (e.g. ["id","name"]). Omit to receive all fields. |
| id | integer | yes | The ID of the help doc site to retrieve. |
No output schema declared.
No examples provided.
twdesk-get_inbox ~58
Get inbox.
| Name | Type | Req | Description |
|---|---|---|---|
| fields | array | – | Sparse fieldset: field names to include (e.g. ["id","name"]). Omit to receive all fields. |
| id | integer | yes | The ID of the inbox to retrieve. |
No output schema declared.
No examples provided.
twdesk-get_priority ~58
Get ticket priority.
| Name | Type | Req | Description |
|---|---|---|---|
| fields | array | – | Sparse fieldset: field names to include (e.g. ["id","name"]). Omit to receive all fields. |
| id | integer | yes | The ID of the priority to retrieve. |
No output schema declared.
No examples provided.
twdesk-get_status ~58
Get ticket status.
| Name | Type | Req | Description |
|---|---|---|---|
| fields | array | – | Sparse fieldset: field names to include (e.g. ["id","name"]). Omit to receive all fields. |
| id | integer | yes | The ID of the status to retrieve. |
No output schema declared.
No examples provided.
twdesk-get_tag ~58
Get Desk tag.
| Name | Type | Req | Description |
|---|---|---|---|
| fields | array | – | Sparse fieldset: field names to include (e.g. ["id","name"]). Omit to receive all fields. |
| id | integer | yes | The ID of the tag to retrieve. |
No output schema declared.
No examples provided.
twdesk-get_ticket ~57
Get ticket.
| Name | Type | Req | Description |
|---|---|---|---|
| fields | array | – | Sparse fieldset: field names to include (e.g. ["id","name"]). Omit to receive all fields. |
| id | integer | yes | The ID of the ticket to retrieve. |
No output schema declared.
No examples provided.
twdesk-get_ticket_type ~60
Get ticket type.
| Name | Type | Req | Description |
|---|---|---|---|
| fields | array | – | Sparse fieldset: field names to include (e.g. ["id","name"]). Omit to receive all fields. |
| id | integer | yes | The ID of the ticket type to retrieve. |
No output schema declared.
No examples provided.
twdesk-get_user ~58
Get support agent.
| Name | Type | Req | Description |
|---|---|---|---|
| fields | array | – | Sparse fieldset: field names to include (e.g. ["id","name"]). Omit to receive all fields. |
| id | integer | yes | The ID of the user to retrieve. |
No output schema declared.
No examples provided.
twdesk-link_task_to_ticket ~85
Link a Teamwork Projects task to a Desk ticket, so the ticket shows the work tracked by that task.
| Name | Type | Req | Description |
|---|---|---|---|
| taskId | integer | yes | The ID of the Teamwork Projects task. Use twprojects-list_tasks or twprojects-search to discover. |
| ticketId | integer | yes | The ID of the Desk ticket. Use twdesk-search_tickets to discover. |
No output schema declared.
No examples provided.
twdesk-list_companies ~188
List Desk companies. Filter by name, domains, or kind.
| Name | Type | Req | Description |
|---|---|---|---|
| domains | array | – | The domains of the company to filter by. |
| fields | array | – | Sparse fieldset: field names to include (e.g. ["id","name"]). Omit to receive all fields. |
| kind | string | – | The kind of the company to filter by. |
| name | string | – | The name of the company to filter by. |
| orderBy | string | – | The field to order the results by. |
| orderDirection | string | – | The direction to order the results by (asc, desc). |
| page | integer | – | Page number for pagination of results (1-based). |
| pageSize | integer | – | Number of results per page for pagination (1-100). The API silently reduces anything above 100, so a larger value returns fewer results rather than more. |
No output schema declared.
No examples provided.
twdesk-list_customers ~186
List customers. Filter by company or email.
| Name | Type | Req | Description |
|---|---|---|---|
| companyIDs | array | – | The IDs of the companies to filter by. |
| companyNames | array | – | The names of the companies to filter by. |
| emails | array | – | The emails of the customers to filter by. |
| fields | array | – | Sparse fieldset: field names to include (e.g. ["id","name"]). Omit to receive all fields. |
| orderBy | string | – | The field to order the results by. |
| orderDirection | string | – | The direction to order the results by (asc, desc). |
| page | integer | – | Page number for pagination of results (1-based). |
| pageSize | integer | – | Number of results per page for pagination (1-100). The API silently reduces anything above 100, so a larger value returns fewer results rather than more. |
No output schema declared.
No examples provided.
twdesk-list_helpdoc_sites ~197
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.
| Name | Type | Req | Description |
|---|---|---|---|
| fields | array | – | Sparse fieldset: field names to include (e.g. ["id","name"]). Omit to receive all fields. |
| name | array | – | The name of the help doc site to filter by. |
| orderBy | string | – | The field to order the results by. |
| orderDirection | string | – | The direction to order the results by (asc, desc). |
| page | integer | – | Page number for pagination of results (1-based). |
| pageSize | integer | – | Number of results per page for pagination (1-100). The API silently reduces anything above 100, so a larger value returns fewer results rather than more. |
| subdomain | array | – | The subdomain of the help doc site to filter by. |
No output schema declared.
No examples provided.
twdesk-list_inboxes ~170
List inboxes. Filter by name or email.
| Name | Type | Req | Description |
|---|---|---|---|
| array | – | The email of the inbox to filter by. | |
| fields | array | – | Sparse fieldset: field names to include (e.g. ["id","name"]). Omit to receive all fields. |
| name | array | – | The name of the inbox to filter by. |
| orderBy | string | – | The field to order the results by. |
| orderDirection | string | – | The direction to order the results by (asc, desc). |
| page | integer | – | Page number for pagination of results (1-based). |
| pageSize | integer | – | Number of results per page for pagination (1-100). The API silently reduces anything above 100, so a larger value returns fewer results rather than more. |
No output schema declared.
No examples provided.
twdesk-list_priorities ~170
List ticket priorities. Filter by name or color.
| Name | Type | Req | Description |
|---|---|---|---|
| color | array | – | The color of the priority to filter by. |
| fields | array | – | Sparse fieldset: field names to include (e.g. ["id","name"]). Omit to receive all fields. |
| name | array | – | The name of the priority to filter by. |
| orderBy | string | – | The field to order the results by. |
| orderDirection | string | – | The direction to order the results by (asc, desc). |
| page | integer | – | Page number for pagination of results (1-based). |
| pageSize | integer | – | Number of results per page for pagination (1-100). The API silently reduces anything above 100, so a larger value returns fewer results rather than more. |
No output schema declared.
No examples provided.
twdesk-list_statuses ~188
List ticket statuses. Filter by name, color, or code.
| Name | Type | Req | Description |
|---|---|---|---|
| code | array | – | The code of the status to filter by. |
| color | array | – | The color of the status to filter by. |
| fields | array | – | Sparse fieldset: field names to include (e.g. ["id","name"]). Omit to receive all fields. |
| name | array | – | The name of the status to filter by. |
| orderBy | string | – | The field to order the results by. |
| orderDirection | string | – | The direction to order the results by (asc, desc). |
| page | integer | – | Page number for pagination of results (1-based). |
| pageSize | integer | – | Number of results per page for pagination (1-100). The API silently reduces anything above 100, so a larger value returns fewer results rather than more. |
No output schema declared.
No examples provided.
twdesk-list_tags ~189
List Desk tags. Filter by name, color, or inbox.
| Name | Type | Req | Description |
|---|---|---|---|
| color | string | – | The color of the tag to filter by. |
| fields | array | – | Sparse fieldset: field names to include (e.g. ["id","name"]). Omit to receive all fields. |
| inboxIDs | array | – | The IDs of the inboxes to filter by. |
| name | string | – | The name of the tag to filter by. |
| orderBy | string | – | The field to order the results by. |
| orderDirection | string | – | The direction to order the results by (asc, desc). |
| page | integer | – | Page number for pagination of results (1-based). |
| pageSize | integer | – | Number of results per page for pagination (1-100). The API silently reduces anything above 100, so a larger value returns fewer results rather than more. |
No output schema declared.
No examples provided.
twdesk-list_ticket_types ~175
List ticket types. Filter by name or inbox.
| Name | Type | Req | Description |
|---|---|---|---|
| fields | array | – | Sparse fieldset: field names to include (e.g. ["id","name"]). Omit to receive all fields. |
| inboxIDs | array | – | Filter by inbox. Use twdesk-list_inboxes to discover. |
| name | array | – | The name of the type to filter by. |
| orderBy | string | – | The field to order the results by. |
| orderDirection | string | – | The direction to order the results by (asc, desc). |
| page | integer | – | Page number for pagination of results (1-based). |
| pageSize | integer | – | Number of results per page for pagination (1-100). The API silently reduces anything above 100, so a larger value returns fewer results rather than more. |
No output schema declared.
No examples provided.
twdesk-list_users ~228
List support agents. For customers, use twdesk-list_customers.
| Name | Type | Req | Description |
|---|---|---|---|
| array | – | The email addresses of the users to filter by. | |
| fields | array | – | Sparse fieldset: field names to include (e.g. ["id","name"]). Omit to receive all fields. |
| firstName | array | – | The first names of the users to filter by. |
| inboxIDs | array | – | The IDs of the inboxes to filter by. |
| isPartTime | boolean | – | Whether to include part-time users in the results. |
| lastName | array | – | The last names of the users to filter by. |
| orderBy | string | – | The field to order the results by. |
| orderDirection | string | – | The direction to order the results by (asc, desc). |
| page | integer | – | Page number for pagination of results (1-based). |
| pageSize | integer | – | Number of results per page for pagination (1-100). The API silently reduces anything above 100, so a larger value returns fewer results rather than more. |
No output schema declared.
No examples provided.
twdesk-reply_ticket ~107
Reply to a ticket. Use threadType=note for internal agent notes.
| Name | Type | Req | Description |
|---|---|---|---|
| bcc | array | – | Email addresses to BCC. |
| body | string | yes | The body of the message. |
| cc | array | – | Email addresses to CC. |
| threadType | string | – | 'message' is a customer-facing reply; 'note' is an internal agent note. |
| ticketID | integer | yes | The ID of the ticket that the message will be sent to. |
No output schema declared.
No examples provided.
twdesk-search_helpdoc_articles ~129
Search help doc articles. Filter by search term, status, site, or category.
| Name | Type | Req | Description |
|---|---|---|---|
| categoryID | integer | – | Filter by help doc category ID. |
| page | integer | – | Page number (1-based). |
| pageSize | integer | – | Number of results per page. |
| search | string | – | Free-text search term matched against article title and content. |
| siteID | integer | – | Filter by help doc site ID. Use twdesk-list_helpdoc_sites to discover. |
| status | string | – | Filter by article status (e.g. "published", "draft"). |
No output schema declared.
No examples provided.
twdesk-search_tickets ~659
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.
| Name | Type | Req | Description |
|---|---|---|---|
| companyIDs | array | – | Filter by company. Use twdesk-list_companies to discover. |
| createdAfter | – | – | Filter by ticket creation date: only tickets created on or after this day. This search filters by whole days, so a time of day is ignored. Accepts an RFC 3339 timestamp (2026-08-03T14:30:00Z) or a pl… |
| createdBefore | – | – | Filter by ticket creation date: only tickets created on or before this day. This search filters by whole days, so a time of day is ignored. Accepts an RFC 3339 timestamp (2026-08-03T14:30:00Z) or a p… |
| customerIDs | array | – | Filter by customer. Use twdesk-list_customers to discover. |
| fields | array | – | The attributes to return for each ticket, from the listed names. Omit to receive the whole record, which carries every activity, message, file and timelog identifier the ticket has and is large enoug… |
| inboxIDs | array | – | Filter by inbox. Use twdesk-list_inboxes to discover. |
| omitMerged | boolean | – | If true, exclude tickets that have been merged into another ticket. Merged tickets are not a status, so they cannot be filtered out with statusIDs. Defaults to false, which returns them alongside the… |
| orderBy | string | – | The field to order the results by. |
| orderDirection | string | – | The direction to order the results by (asc, desc). |
| page | integer | – | Page number for pagination of results (1-based). |
| pageSize | integer | – | Number of results per page for pagination (1-200). The API silently reduces anything above 200, so a larger value returns fewer results rather than more. |
| priorityIDs | array | – | Filter by priority. Use twdesk-list_priorities to discover. |
| search | string | – | Search term matched against subject, body, and other ticket fields. |
| statusIDs | array | – | Filter by status. Use twdesk-list_statuses to discover. |
| tagIDs | array | – | Filter by tag. Use twdesk-list_tags to discover. |
| userIDs | array | – | Filter by user. Use twdesk-list_users to discover. |
No output schema declared.
No examples provided.
twdesk-unlink_task_from_ticket ~85
Unlink a Teamwork Projects task from a Desk ticket. The task and the ticket themselves are kept.
| Name | Type | Req | Description |
|---|---|---|---|
| taskId | integer | yes | The ID of the Teamwork Projects task. Use twprojects-list_tasks or twprojects-search to discover. |
| ticketId | integer | yes | The ID of the Desk ticket. Use twdesk-search_tickets to discover. |
No output schema declared.
No examples provided.
twdesk-update_company ~146
Update Desk company.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | – | The new description of the company. |
| details | string | – | The new details of the company. |
| domains | array | – | The new domains for the company. |
| id | integer | yes | The ID of the company to update. |
| industry | string | – | The new industry of the company. |
| kind | string | – | The new kind of the company. |
| name | string | – | The new name of the company. |
| note | string | – | The new note for the company. |
| permission | string | – | The new permission level of the company. |
| website | string | – | The new website of the company. |
No output schema declared.
No examples provided.
twdesk-update_customer ~213
Update customer.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | – | The new address of the customer. |
| string | – | The new email of the customer. | |
| extraData | string | – | The new extra data of the customer. |
| facebookURL | string | – | The new Facebook URL of the customer. |
| firstName | string | – | The new first name of the customer. |
| id | integer | yes | The ID of the customer to update. |
| jobTitle | string | – | The new job title of the customer. |
| lastName | string | – | The new last name of the customer. |
| linkedinURL | string | – | The new LinkedIn URL of the customer. |
| mobile | string | – | The new mobile number of the customer. |
| notes | string | – | The new notes of the customer. |
| organization | string | – | The new organization of the customer. |
| phone | string | – | The new phone number of the customer. |
| twitterHandle | string | – | The new Twitter handle of the customer. |
No output schema declared.
No examples provided.
twdesk-update_helpdoc_article ~111
Update an existing help doc article.
| Name | Type | Req | Description |
|---|---|---|---|
| contents | string | – | The new body content of the article. |
| description | string | – | A short description / summary of the article. |
| id | integer | yes | The ID of the help doc article to update. |
| isPrivate | boolean | – | Set to true to make the article private. |
| status | string | – | Publication status (e.g. "published", "draft"). |
| title | string | – | The new title of the article. |
No output schema declared.
No examples provided.
twdesk-update_priority ~53
Update ticket priority.
| Name | Type | Req | Description |
|---|---|---|---|
| color | string | – | The color of the priority. |
| id | integer | yes | The ID of the priority to update. |
| name | string | – | The new name of the priority. |
No output schema declared.
No examples provided.
twdesk-update_status ~67
Update ticket status.
| Name | Type | Req | Description |
|---|---|---|---|
| color | string | – | The color of the status. |
| displayOrder | integer | – | The display order of the status. |
| id | integer | yes | The ID of the status to update. |
| name | string | – | The new name of the status. |
No output schema declared.
No examples provided.
twdesk-update_tag ~53
Update Desk tag.
| Name | Type | Req | Description |
|---|---|---|---|
| color | string | – | The color of the tag. |
| id | integer | yes | The ID of the tag to update. |
| name | string | – | The new name of the tag. |
No output schema declared.
No examples provided.
twdesk-update_ticket ~222
Update ticket.
| Name | Type | Req | Description |
|---|---|---|---|
| agentId | integer | – | Agent the ticket is assigned to. Use twdesk-list_users to discover. |
| bcc | array | – | Email addresses to BCC. |
| body | string | – | The body of the ticket. |
| cc | array | – | Email addresses to CC. |
| deleteTags | array | – | Tags to remove from the ticket. Use twdesk-list_tags to discover. |
| id | integer | yes | The ID of the ticket to update. |
| inboxId | integer | – | Inbox of the ticket. Use twdesk-list_inboxes to discover. |
| priorityId | integer | – | Priority of the ticket. Use twdesk-list_priorities to discover. |
| statusId | integer | – | Status of the ticket. Use twdesk-list_statuses to discover. |
| subject | string | – | The subject of the ticket. |
| tags | array | – | Tags to associate with the ticket. Use twdesk-list_tags to discover. |
| typeId | integer | – | Ticket type. Use twdesk-list_ticket_types to discover. |
No output schema declared.
No examples provided.
twdesk-update_ticket_type ~77
Update ticket type.
| Name | Type | Req | Description |
|---|---|---|---|
| displayOrder | integer | – | The display order of the type. |
| enabledForFutureInboxes | boolean | – | Whether the type is enabled for future inboxes. |
| id | integer | yes | The ID of the ticket type to update. |
| name | string | – | The new name of the type. |
No output schema declared.
No examples provided.
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 container image (docker.io/teamwork/mcp:v1.43.2).
Is the com.teamwork/mcp server safe to use?
com.teamwork/mcp scores 38 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.
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.