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 →
twprojects-update_timelog ~317
Update timelog. It can also be moved to another project or task.
| Name | Type | Req | Description |
|---|---|---|---|
| billable | boolean | – | If true, the timelog is billable. |
| clear_task | boolean | – | Set to true to detach the timelog from its task, leaving it logged against the project. Cannot be combined with task_id. |
| date | string | – | The date of the timelog. |
| description | string | – | A description of the timelog. |
| hours | integer | – | The number of hours spent on the timelog. Must be a positive integer. |
| id | integer | yes | The ID of the timelog to update. |
| is_utc | boolean | – | If true, the time is in UTC. |
| minutes | integer | – | Minutes spent on the timelog. Must be a positive integer less than 60; otherwise increment hours instead. |
| project_id | integer | – | Move 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_ids | array | – | A list of tag IDs to associate with the timelog. |
| task_id | integer | – | Move the timelog to this task, and with it to the task's own project. |
| time | string | – | The time of the timelog in the format HH:MM:SS. |
| user_id | integer | – | User the timelog is logged for. Defaults to the authenticated user. |
No output schema declared.
No examples provided.
twprojects-update_timer ~107
Update timer.
| Name | Type | Req | Description |
|---|---|---|---|
| billable | boolean | – | If true, the timer is billable. |
| description | string | – | A description of the timer. |
| id | integer | yes | The ID of the timer to update. |
| project_id | integer | – | The ID of the project to associate the timer with. |
| running | boolean | – | If true, the timer will start running immediately. |
| task_id | integer | – | The ID of the task to associate the timer with. |
No output schema declared.
No examples provided.
twprojects-update_user ~151
Update user.
| Name | Type | Req | Description |
|---|---|---|---|
| admin | boolean | – | Indicates whether the user is an administrator. |
| company_id | integer | – | The ID of the client/company to which the user belongs. |
| string | – | The email address of the user. | |
| first_name | string | – | The first name of the user. |
| id | integer | yes | The ID of the user to update. |
| last_name | string | – | The last name of the user. |
| title | string | – | The job title of the user, such as 'Project Manager' or 'Senior Software Developer'. |
| type | string | – | The type of user, such as 'account', 'collaborator', or 'contact'. |
No output schema declared.
No examples provided.
twprojects-update_workflow ~41
Update workflow.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | The ID of the workflow to update. |
| name | string | – | The new name of the workflow. |
No output schema declared.
No examples provided.
twprojects-update_workflow_stage ~62
Update workflow stage.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | The ID of the workflow stage to update. |
| name | string | – | The new name of the workflow stage. |
| workflow_id | integer | yes | The 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)
| Name | Type | Req | Description |
|---|---|---|---|
| end_date | string | yes | End of the workload period; the boundary day itself is included. |
| page | integer | – | Page number for pagination of results (1-based). |
| page_size | integer | – | Number of results per page for pagination (1-500). |
| project_ids | array | – | Filter workload by project. |
| start_date | string | yes | Start of the workload period; the boundary day itself is included. |
| user_company_ids | array | – | Filter workload by users' client/company. |
| user_ids | array | – | Filter workload by user. |
| user_team_ids | array | – | Filter workload by users' team. |
| Name | Type | Req | Description |
|---|---|---|---|
| included | object | yes | – |
| meta | object | yes | – |
| workload | object | yes | – |
No examples provided.
twspaces-create_category ~48
Create space category.
| Name | Type | Req | Description |
|---|---|---|---|
| color | string | – | A hex color code for the category (e.g. "#FF5733"). |
| name | string | yes | The name of the category. |
No output schema declared.
No examples provided.
twspaces-create_comment ~106
Create comment on a page. Use parentId for replies.
| Name | Type | Req | Description |
|---|---|---|---|
| content | string | yes | The content of the comment. |
| isPrivate | boolean | – | Set to true to create a private comment visible only to space members. |
| pageId | integer | yes | The ID of the page to comment on. |
| parentId | integer | – | The ID of the parent comment (for creating a reply). |
| spaceId | integer | yes | The ID of the space containing the page. |
No output schema declared.
No examples provided.
twspaces-create_page ~183
Create page in a space.
| Name | Type | Req | Description |
|---|---|---|---|
| changeMessage | string | – | A message describing the changes made in this version. |
| content | string | – | The HTML content of the page. |
| isFullWidth | boolean | – | Display the page in full-width layout. |
| isPublish | boolean | – | Set to true to publish the page immediately (default: draft). |
| isRequiredReading | boolean | – | Mark this page as required reading for space members. |
| parentId | integer | – | The ID of the parent page (for creating a sub-page). |
| readerInlineCommentsEnabled | boolean | – | Allow readers to add inline comments on this page. |
| slug | string | – | A URL-friendly slug for the page. |
| spaceId | integer | yes | The ID of the space to create the page in. |
| title | string | yes | The title of the page. |
No output schema declared.
No examples provided.
twspaces-create_space ~141
Create space.
| Name | Type | Req | Description |
|---|---|---|---|
| categoryId | integer | – | Category to assign. Use twspaces-list_categories to discover. |
| code | string | yes | A short unique code/identifier for the space (e.g. "ENG", "DOCS"). |
| icon | string | – | An icon identifier for the space. |
| projectId | integer | – | The ID of a Teamwork project to link to this space. |
| purpose | string | – | A brief description of the space's purpose. |
| spaceColor | string | – | A hex color code for the space (e.g. "#FF5733"). |
| title | string | yes | The 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.
| Name | Type | Req | Description |
|---|---|---|---|
| tags | array | yes | Tags to create. |
No output schema declared.
No examples provided.
twspaces-duplicate_page ~99
Duplicate page with a new title.
| Name | Type | Req | Description |
|---|---|---|---|
| pageId | integer | yes | The ID of the page to duplicate. |
| parentId | integer | – | The ID of the parent page for the duplicate (defaults to same parent). |
| slug | string | – | A URL-friendly slug for the duplicated page. |
| spaceId | integer | yes | The ID of the space containing the page. |
| title | string | yes | The title for the duplicated page. |
No output schema declared.
No examples provided.
twspaces-get_category ~28
Get space category.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | The ID of the category to retrieve. |
No output schema declared.
No examples provided.
twspaces-get_comment ~61
Get page comment.
| Name | Type | Req | Description |
|---|---|---|---|
| commentId | integer | yes | The ID of the comment to retrieve. |
| pageId | integer | yes | The ID of the page containing the comment. |
| spaceId | integer | yes | The ID of the space containing the page. |
No output schema declared.
No examples provided.
twspaces-get_homepage ~35
Get a space's homepage.
| Name | Type | Req | Description |
|---|---|---|---|
| spaceId | integer | yes | The 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.
| Name | Type | Req | Description |
|---|---|---|---|
| pageId | integer | yes | The ID of the page to retrieve. |
| spaceId | integer | yes | The ID of the space containing the page. |
No output schema declared.
No examples provided.
twspaces-get_space ~27
Get space.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | The ID of the space to retrieve. |
No output schema declared.
No examples provided.
twspaces-get_tag ~28
Get Spaces tag.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | The ID of the tag to retrieve. |
No output schema declared.
No examples provided.
twspaces-list_categories ~54
List space categories.
| Name | Type | Req | Description |
|---|---|---|---|
| pageOffset | integer | – | The index position to start retrieving results from (not a page number). |
| pageSize | integer | – | Number 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.
| Name | Type | Req | Description |
|---|---|---|---|
| pageId | integer | yes | The ID of the page to list comments for. |
| pageOffset | integer | – | The index position to start retrieving results from (not a page number). |
| pageSize | integer | – | Number of results per page for pagination (1-500). |
| spaceId | integer | yes | The 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.
| Name | Type | Req | Description |
|---|---|---|---|
| includePrivate | boolean | – | Return 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… |
| pageOffset | integer | – | Number 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. |
| pageSize | integer | – | Maximum number of pages to return (1-500). Defaults to 100. |
| spaceId | integer | yes | The 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).
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | The ID of the space to retrieve collaborators for. |
No output schema declared.
No examples provided.
twspaces-list_spaces ~53
List spaces.
| Name | Type | Req | Description |
|---|---|---|---|
| pageOffset | integer | – | The index position to start retrieving results from (not a page number). |
| pageSize | integer | – | Number of results per page for pagination (1-500). |
No output schema declared.
No examples provided.
twspaces-list_tags ~54
List Spaces tags.
| Name | Type | Req | Description |
|---|---|---|---|
| pageOffset | integer | – | The index position to start retrieving results from (not a page number). |
| pageSize | integer | – | Number 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.
| Name | Type | Req | Description |
|---|---|---|---|
| includeDeleted | boolean | – | Include deleted pages in search results. |
| pageOffset | integer | – | The index position to start retrieving results from (not a page number). |
| pageSize | integer | – | Number of results per page for pagination (1-500). |
| query | string | yes | The search query string. |
| spaceIds | array | – | Limit search to specific spaces. Use twspaces-list_spaces to discover. |
No output schema declared.
No examples provided.
twspaces-update_category ~56
Update space category.
| Name | Type | Req | Description |
|---|---|---|---|
| color | string | – | A new hex color code for the category. |
| id | integer | yes | The ID of the category to update. |
| name | string | – | The new name for the category. |
No output schema declared.
No examples provided.
twspaces-update_comment ~111
Update page comment.
| Name | Type | Req | Description |
|---|---|---|---|
| commentId | integer | yes | The ID of the comment to update. |
| content | string | – | The new content of the comment. |
| isPrivate | boolean | – | Change the privacy setting of the comment. |
| pageId | integer | yes | The ID of the page containing the comment. |
| spaceId | integer | yes | The ID of the space containing the page. |
| state | string | – | The 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).
| Name | Type | Req | Description |
|---|---|---|---|
| changeMessage | string | – | A message describing the changes made in this version. |
| content | string | – | The new HTML content of the page. |
| draftVersion | integer | – | Optimistic 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… |
| isFullWidth | boolean | – | Toggle full-width layout for this page. |
| isMinorChange | boolean | – | Mark this update as a minor change (won't notify watchers). |
| isPublish | boolean | – | Set to true to publish the page, false to revert to draft. |
| isRequiredReading | boolean | – | Mark or unmark this page as required reading. |
| pageId | integer | yes | The ID of the page to update. |
| parentId | integer | – | The ID of the new parent page (to move the page). |
| readerInlineCommentsEnabled | boolean | – | Allow or disallow readers from adding inline comments. |
| slug | string | – | A new URL-friendly slug for the page. |
| spaceId | integer | yes | The ID of the space containing the page. |
| title | string | – | The new title of the page. |
No output schema declared.
No examples provided.
twspaces-update_space ~164
Update space.
| Name | Type | Req | Description |
|---|---|---|---|
| categoryId | integer | – | Category to assign. Use twspaces-list_categories to discover. |
| code | string | – | A new short unique code/identifier for the space. |
| icon | string | – | A new icon identifier for the space. |
| id | integer | yes | The ID of the space to update. |
| projectId | integer | – | The ID of a Teamwork project to link to this space. |
| purpose | string | – | A new brief description of the space's purpose. |
| spaceColor | string | – | A new hex color code for the space. |
| state | string | – | The state of the space (e.g. "active", "archived"). |
| title | string | – | The new title of the space. |
No output schema declared.
No examples provided.
twspaces-update_tag ~56
Update Spaces tag.
| Name | Type | Req | Description |
|---|---|---|---|
| color | string | – | A new hex color code for the tag. |
| id | integer | yes | The ID of the tag to update. |
| name | string | – | The new name for the tag. |
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.