Connection check
verified live · 27h ago
teamwork-mcp
The Teamwork.com official MCP server helps teams efficiently manage client projects with AI.
Tools
210
GitHub stars
25
Installs / wk
—
Licence
MIT
Transport
sse, streamable-http, stdio
Last checked
27h ago
Tools & capabilities
210 toolsRead from the running server on 27h ago.
twchat-get_conversation
read-only
conversation_id*
Get a single Teamwork Chat conversation by ID. Get a single Teamwork Chat conversation by ID.
twchat-get_current_user
read-only
Get the current authenticated Teamwork Chat user, including identity, counts (unread conversations/messages, mentions), and settings. Get the current authenticated Teamwork Chat user, including identity, counts (unread conversations/messages, mentions), and settings.
twchat-get_or_create_dm
user_id*
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_i… 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.
twchat-list_conversations
read-only
sorttypestatuspage_limitpage_offsetsearch_term
+1
List Teamwork Chat conversations the current user is a member of. List Teamwork Chat conversations the current user is a member of.
twchat-list_messages
read-only
pagepage_sizesearch_termcreated_aftercreated_beforeconversation_id*
+2
List messages within a Teamwork Chat conversation. Requires conversation_id. List messages within a Teamwork Chat conversation. Requires conversation_id.
twchat-list_people
read-only
page_limitpage_offsetsearch_term
List people in the Teamwork Chat installation. Useful for resolving names to user IDs. List people in the Teamwork Chat installation. Useful for resolving names to user IDs.
twchat-send_dm
body*user_id*
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. 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.
twchat-send_message
body*conversation_id*
Send a message to a Teamwork Chat conversation. Requires conversation_id and body. Send a message to a Teamwork Chat conversation. Requires conversation_id and body.
twdesk-create_company
kind*name*note*details*domains*website*
+3
Create Desk company. Create Desk company.
twdesk-create_customer
email*notes*phone*mobile*address*jobTitle*
+7
Create customer. Create customer.
twdesk-create_file
data*name*mimeType*disposition*
Upload file. Attach the returned ID to tickets or messages. Upload file. Attach the returned ID to tickets or messages.
twdesk-create_helpdoc_article
title*siteID*status*contents*isPrivate*description*
Create a new help doc article. Create a new help doc article.
twdesk-create_priority
name*color*
Create ticket priority. Create ticket priority.
twdesk-create_status
name*color*displayOrder*
Create ticket status. Create ticket status.
twdesk-create_tag
name*color*
Create Desk tag. Create Desk tag.
twdesk-create_ticket
can modify data
cc*bcc*body*tags*files*typeId*
+8
Create ticket. Create ticket.
twdesk-create_ticket_type
name*displayOrder*enabledForFutureInboxes*
Create ticket type. Create ticket type.
twdesk-get_company
read-only
id*fields*
Get Desk company (customer organization). Get Desk company (customer organization).
twdesk-get_customer
read-only
id*fields*
Get customer. Get customer.
twdesk-get_helpdoc_article
read-only
id*fields*
Get a help doc article by ID. Get a help doc article by ID.
twdesk-get_helpdoc_site
read-only
id*fields*
Get a help doc site (knowledge base) by ID, including its subdomain, branding and article counts. Get a help doc site (knowledge base) by ID, including its subdomain, branding and article counts.
twdesk-get_inbox
read-only
id*fields*
Get inbox. Get inbox.
twdesk-get_priority
read-only
id*fields*
Get ticket priority. Get ticket priority.
twdesk-get_status
read-only
id*fields*
Get ticket status. Get ticket status.
twdesk-get_tag
read-only
id*fields*
Get Desk tag. Get Desk tag.
twdesk-get_ticket
read-only
id*fields*
Get ticket. Get ticket.
twdesk-get_ticket_type
read-only
id*fields*
Get ticket type. Get ticket type.
twdesk-get_user
read-only
id*fields*
Get support agent. Get support agent.
twdesk-link_task_to_ticket
taskId*ticketId*
Link a Teamwork Projects task to a Desk ticket, so the ticket shows the work tracked by that task. Link a Teamwork Projects task to a Desk ticket, so the ticket shows the work tracked by that task.
twdesk-list_companies
read-only
kind*name*page*fields*domains*orderBy*
+2
List Desk companies. Filter by name, domains, or kind. List Desk companies. Filter by name, domains, or kind.
twdesk-list_customers
read-only
page*emails*fields*orderBy*pageSize*companyIDs*
+2
List customers. Filter by company or email. List customers. Filter by company or email.
twdesk-list_helpdoc_sites
read-only
name*page*fields*orderBy*pageSize*subdomain*
+1
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. List help doc sites (knowledge bases). Filter by name or subdomain. Use this to discover the site ID required by the help doc article tools.
twdesk-list_inboxes
read-only
name*page*email*fields*orderBy*pageSize*
+1
List inboxes. Filter by name or email. List inboxes. Filter by name or email.
twdesk-list_priorities
read-only
name*page*color*fields*orderBy*pageSize*
+1
List ticket priorities. Filter by name or color. List ticket priorities. Filter by name or color.
twdesk-list_statuses
read-only
code*name*page*color*fields*orderBy*
+2
List ticket statuses. Filter by name, color, or code. List ticket statuses. Filter by name, color, or code.
twdesk-list_tags
read-only
name*page*color*fields*orderBy*inboxIDs*
+2
List Desk tags. Filter by name, color, or inbox. List Desk tags. Filter by name, color, or inbox.
twdesk-list_ticket_types
read-only
name*page*fields*orderBy*inboxIDs*pageSize*
+1
List ticket types. Filter by name or inbox. List ticket types. Filter by name or inbox.
twdesk-list_users
read-only
page*email*fields*orderBy*inboxIDs*lastName*
+4
List support agents. For customers, use twdesk-list_customers. List support agents. For customers, use twdesk-list_customers.
twdesk-reply_ticket
can modify data
cc*bcc*body*ticketID*threadType*
Reply to a ticket. Use threadType=note for internal agent notes. Reply to a ticket. Use threadType=note for internal agent notes.
twdesk-search_helpdoc_articles
read-only
page*search*siteID*status*pageSize*categoryID*
Search help doc articles. Filter by search term, status, site, or category. Search help doc articles. Filter by search term, status, site, or category.
twdesk-search_tickets
read-only
page*fields*search*tagIDs*orderBy*userIDs*
+9
Search tickets. Filter by inbox, customer, company, tag, status, priority, user, or creation date range. Search tickets. Filter by inbox, customer, company, tag, status, priority, user, or creation date range.
twdesk-unlink_task_from_ticket
can modify data
taskId*ticketId*
Unlink a Teamwork Projects task from a Desk ticket. The task and the ticket themselves are kept. Unlink a Teamwork Projects task from a Desk ticket. The task and the ticket themselves are kept.
twdesk-update_company
id*kind*name*note*details*domains*
+4
Update Desk company. Update Desk company.
twdesk-update_customer
id*email*notes*phone*mobile*address*
+8
Update customer. Update customer.
twdesk-update_helpdoc_article
id*title*status*contents*isPrivate*description*
Update an existing help doc article. Update an existing help doc article.
twdesk-update_priority
id*name*color*
Update ticket priority. Update ticket priority.
twdesk-update_status
id*name*color*displayOrder*
Update ticket status. Update ticket status.
twdesk-update_tag
id*name*color*
Update Desk tag. Update Desk tag.
twdesk-update_ticket
cc*id*bcc*body*tags*typeId*
+6
Update ticket. Update ticket.
twdesk-update_ticket_type
id*name*displayOrder*enabledForFutureInboxes*
Update ticket type. Update ticket type.
twprojects-add_project_file
nameprivatetag_idsreference*project_id*category_id
+4
Store an uploaded file in a project's files area, where people find it outside any one task or comment. Upload it first with twprojects-create_upload_url, then pass the reference h… Store an uploaded file in a project's files area, where people find it outside any one task or comment. Upload it first with twprojects-create_upload_url, then pass the reference here. Returns a numeric file ID which, unlike a reference, survives being used: pass it in attachment_file_ids on twprojects-create_task or twprojects-update_task to attach the same file to as many tasks as needed. Attaching a reference to a task, comment or message already files it here, so use this tool to store a file on its own, to describe or categorise it, or when it has to reach more than one place.
twprojects-add_project_member
user_idsproject_id*
Add a user to a project. Add a user to a project.
twprojects-clone_project
id*namecompany_iddays_offsetdescriptiontarget_date
+3
Clone/copy an existing project or instantiate one from a template. Clone/copy an existing project or instantiate one from a template.
twprojects-complete_task
id*
Mark task complete. Mark task complete.
twprojects-complete_timer
id*
Stop a timer permanently and convert it to a timelog. Use pause_timer to pause without converting. Stop a timer permanently and convert it to a timelog. Use pause_timer to pause without converting.
twprojects-count_milestones
read-only
tag_idsdue_afterdue_beforeproject_idsearch_termmatch_all_tags
+1
Exact milestone count for any filter set: one call, one number, no rows. Use for "how many milestones" questions (per project, per tag, matching a term) instead of paging twproject… Exact milestone count for any filter set: one call, one number, no rows. Use for "how many milestones" questions (per project, per tag, matching a term) instead of paging twprojects-list_milestones to count rows. Use twprojects-list_milestones when the rows are needed.
twprojects-count_projects
read-only
tag_idsteam_idsuser_idscompany_idssearch_termonly_starred
+12
Exact project count for any filter set: one call, one number, no rows. Use for "how many projects" questions (mine, late, per category, per tag, per company, per owner, matching a… Exact project count for any filter set: one call, one number, no rows. Use for "how many projects" questions (mine, late, per category, per tag, per company, per owner, matching a term) instead of paging twprojects-list_projects to count rows. Use twprojects-list_projects when the rows are needed.
twprojects-count_tasks
read-only
tag_idsdue_afterdue_beforeproject_iddate_filtersearch_term
+16
Exact task count for any filter set: one call, one number, no rows. Use for "how many" questions (totals, late, per person, per project, per tag, completed in a window) instead of… Exact task count for any filter set: one call, one number, no rows. Use for "how many" questions (totals, late, per person, per project, per tag, completed in a window) instead of paging twprojects-list_tasks to count rows. Note due_before excludes tasks with no due date, unless a related milestone due date matches. Use twprojects-list_tasks when the rows are needed.
twprojects-count_timelogs
read-only
tag_idstask_idend_dateticketIdsproject_idstart_date
+6
Exact count of time entries for any filter set: one call, one number, no rows. This counts entries, not hours — for logged, billable or billed time totals use twprojects-summarize_… Exact count of time entries for any filter set: one call, one number, no rows. This counts entries, not hours — for logged, billable or billed time totals use twprojects-summarize_timelogs. Use for "how many time entries" questions (per project, per task, per person, in a date window) instead of paging twprojects-list_timelogs to count rows.
twprojects-create_allocation
color*title*end_date*project_id*start_date*description
+6
Commit a user's time to a project over a date range (a scheduler allocation). This is planned time, a separate plane from task estimates and logged time. Commit a user's time to a project over a date range (a scheduler allocation). This is planned time, a separate plane from task estimates and logged time.
twprojects-create_comment
body*notifyobject*content_typeattachment_refsnotify_current_user
Create comment on a task, milestone, notebook, file, or link. Create comment on a task, milestone, notebook, file, or link.
twprojects-create_company
faxzipcityname*phonestate
+11
Create company (aka client). Create company (aka client).
twprojects-create_custom_field
name*type*unitentity*formulaoptions
+4
Create custom field. Create custom field.
twprojects-create_custom_field_value
value*entity*entity_id*country_codecurrency_codecustom_field_id*
Set a custom field value on a task, project or company. The custom field must already exist and be applicable to the target entity. Set a custom field value on a task, project or company. The custom field must already exist and be applicable to the target entity.
twprojects-create_custom_item
project_id*descriptiondisplay_name*label_plurallabel_singular
Create a new custom item type (e.g. Contracts, Leads, Deals) on a project. Custom items are user-defined entity types — Contracts, Leads, Deals, or anything else a customer has set… Create a new custom item type (e.g. Contracts, Leads, Deals) on a project. Custom items are user-defined entity types — Contracts, Leads, Deals, or anything else a customer has set up on a project. Use these tools when the user refers to an entity that is NOT a built-in Teamwork concept (Task, Tasklist, Project, Milestone, Comment, Notebook, Company, Team, User, Tag). If you don't recognise an entity name in the user's request, assume it is a custom item and call twprojects-list_custom_items on the relevant project to confirm.
twprojects-create_custom_item_field
type*optionstw_typedefinitiondisplay_name*custom_item_id*
+1
Add a field (column) to a custom item type. Field types include text, number, dropdown, multiselect, checkbox, url, user, date, time and datetime. Custom items are user-defined ent… Add a field (column) to a custom item type. Field types include text, number, dropdown, multiselect, checkbox, url, user, date, time and datetime. Custom items are user-defined entity types — Contracts, Leads, Deals, or anything else a customer has set up on a project. Use these tools when the user refers to an entity that is NOT a built-in Teamwork concept (Task, Tasklist, Project, Milestone, Comment, Notebook, Company, Team, User, Tag). If you don't recognise an entity name in the user's request, assume it is a custom item and call twprojects-list_custom_items on the relevant project to confirm.
twprojects-create_custom_item_record
name*section_idfield_valuescustom_item_id*position_after_id
Create a record (row) on a custom item type. For example, add a Contract on the Contracts type. Pass field values by name; the tool resolves names to the API's internal IDs. Custom… Create a record (row) on a custom item type. For example, add a Contract on the Contracts type. Pass field values by name; the tool resolves names to the API's internal IDs. Custom items are user-defined entity types — Contracts, Leads, Deals, or anything else a customer has set up on a project. Use these tools when the user refers to an entity that is NOT a built-in Teamwork concept (Task, Tasklist, Project, Milestone, Comment, Notebook, Company, Team, User, Tag). If you don't recognise an entity name in the user's request, assume it is a custom item and call twprojects-list_custom_items on the relevant project to confirm.
twprojects-create_file
data*name*
Upload short text you are generating yourself, such as a plan, a spec or a CSV, so it can be attached to a task, comment or message. Returns a single-use reference; pass it in atta… Upload short text you are generating yourself, such as a plan, a spec or a CSV, so it can be attached to a task, comment or message. Returns a single-use reference; pass it in attachment_refs on twprojects-create_task, twprojects-update_task, twprojects-create_comment or twprojects-create_message. Content is sent inline as base64, which means you have to emit the whole file as text, so use twprojects-create_upload_url instead for anything that already exists as a file — it hands back a URL to send the bytes to directly, and is the only safe option for a document that must stay byte-for-byte identical.
twprojects-create_jobrole
name*
Create job role. Create job role.
twprojects-create_link
code*titlenotifytag_idsproject_id*description
+1
Create link. Create link.
twprojects-create_message
body*title*notifyproject_id*attachment_refsnotify_current_user
Create message in a project. Create message in a project.
twprojects-create_message_reply
body*notifymessage_id*notify_current_user
Create message reply. Create message reply.
twprojects-create_milestone
name*tag_idsdue_date*assignees*project_id*description
+1
Create milestone in a project. Create milestone in a project.
twprojects-create_notebook
name*type*tag_idscontents*project_id*description
Create notebook in a project. Create notebook in a project.
twprojects-create_project
name*end_attag_idsowned_idstart_atcompany_id
+2
Create project. Create project.
twprojects-create_project_category
name*colorparent_id
Create project category. Create project category.
twprojects-create_project_template
name*end_attag_idsowned_idstart_atcompany_id
+2
Create project template. Create project template.
twprojects-create_skill
name*user_ids
Create skill. Create skill.
twprojects-create_tag
name*colorproject_id
Create tag. Create tag.
twprojects-create_task
name*tag_idsdue_datepriorityprogressstage_id
+13
Create task in a tasklist. Create task in a tasklist.
twprojects-create_tasklist
name*project_id*descriptionmilestone_id
Create tasklist in a project. Create tasklist in a project.
twprojects-create_team
name*handleuser_idscompany_idproject_iddescription
+1
Create team. Create team.
twprojects-create_timelog
date*time*hours*is_utcminutes*tag_ids
+5
Create timelog entry against a project or task. Create timelog entry against a project or task.
twprojects-create_timer
runningsecondstask_idbillableproject_id*description
+1
Create and start a timer. Create and start a timer.
twprojects-create_upload_url
name*size*
Reserve an upload for a file and get back a short-lived URL to send its bytes to, plus a single-use reference. Use this for any file that already exists — a PDF, an image, a signed… Reserve an upload for a file and get back a short-lived URL to send its bytes to, plus a single-use reference. Use this for any file that already exists — a PDF, an image, a signed document — because the bytes go straight from you to storage and are never read into the conversation. Send the file with the returned method and URL, setting exactly the headers returned and no authorization of your own. Then pass the reference in attachment_refs on twprojects-create_task, twprojects-update_task, twprojects-create_comment or twprojects-create_message. Prefer twprojects-create_file only for short text you are generating yourself.
twprojects-create_user
typeadminemail*titlelast_name*company_id
+1
Create user. Create user.
twprojects-create_workflow
name*
Create workflow. Create workflow.
twprojects-create_workflow_stage
name*workflow_id*
Create workflow stage. Create workflow stage.
twprojects-get_allocation
read-only
id*fieldsinclude_financial_details
Get an allocation. linkedTaskEstimatedTime counts each linked task whole, and a task can sit behind more than one allocation, so it must not be summed across allocations. Get an allocation. linkedTaskEstimatedTime counts each linked task whole, and a task can sit behind more than one allocation, so it must not be summed across allocations.
twprojects-get_comment
read-only
id*fields
Get comment. Get comment.
twprojects-get_company
read-only
id*fields
Get company (aka client). Get company (aka client).
twprojects-get_custom_field
read-only
id*
Get custom field. Get custom field.
twprojects-get_custom_field_value
read-only
entity*value_id*entity_id*
Get a single custom field value from a task, project or company. Get a single custom field value from a task, project or company.
twprojects-get_custom_item
read-only
id*
Get a custom item type with its fields and sections inline, so you can see its schema before creating or updating records. Custom items are user-defined entity types — Contracts, L… Get a custom item type with its fields and sections inline, so you can see its schema before creating or updating records. Custom items are user-defined entity types — Contracts, Leads, Deals, or anything else a customer has set up on a project. Use these tools when the user refers to an entity that is NOT a built-in Teamwork concept (Task, Tasklist, Project, Milestone, Comment, Notebook, Company, Team, User, Tag). If you don't recognise an entity name in the user's request, assume it is a custom item and call twprojects-list_custom_items on the relevant project to confirm.
twprojects-get_custom_item_field
read-only
id*custom_item_id*
Get a single field on a custom item type. Custom items are user-defined entity types — Contracts, Leads, Deals, or anything else a customer has set up on a project. Use these tools… Get a single field on a custom item type. Custom items are user-defined entity types — Contracts, Leads, Deals, or anything else a customer has set up on a project. Use these tools when the user refers to an entity that is NOT a built-in Teamwork concept (Task, Tasklist, Project, Milestone, Comment, Notebook, Company, Team, User, Tag). If you don't recognise an entity name in the user's request, assume it is a custom item and call twprojects-list_custom_items on the relevant project to confirm.
twprojects-get_custom_item_record
read-only
id*custom_item_id*
Get a single record. Field values come back keyed by display name with dropdown values translated to their human-readable labels. Custom items are user-defined entity types — Contr… Get a single record. Field values come back keyed by display name with dropdown values translated to their human-readable labels. Custom items are user-defined entity types — Contracts, Leads, Deals, or anything else a customer has set up on a project. Use these tools when the user refers to an entity that is NOT a built-in Teamwork concept (Task, Tasklist, Project, Milestone, Comment, Notebook, Company, Team, User, Tag). If you don't recognise an entity name in the user's request, assume it is a custom item and call twprojects-list_custom_items on the relevant project to confirm.
twprojects-get_jobrole
read-only
id*fields
Get job role. Get job role.
twprojects-get_link
read-only
id*
Get link. Get link.
twprojects-get_message
read-only
id*fields
Get message. Get message.
twprojects-get_message_reply
read-only
id*fields
Get message reply. Get message reply.
twprojects-get_milestone
read-only
id*fields
Get milestone. Get milestone.
twprojects-get_notebook
read-only
id*fields
Get notebook. Get notebook.
twprojects-get_project
read-only
id*fields
Get project. Get project.
twprojects-get_project_category
read-only
id*fields
Get project category. Get project category.
twprojects-get_skill
read-only
id*
Get skill. Get skill.
twprojects-get_tag
read-only
id*
Get tag. Get tag.
twprojects-get_task
read-only
id*fields
Get task. Get task.
twprojects-get_tasklist
read-only
id*fields
Get tasklist. Get tasklist.
twprojects-get_team
read-only
id*
Get team. Get team.
twprojects-get_timelog
read-only
id*fields
Get timelog. Get timelog.
twprojects-get_timer
read-only
id*fields
Get timer. Get timer.
twprojects-get_user
read-only
id*fields
Get user. Get user.
twprojects-get_user_me
read-only
Get the currently authenticated user. Get the currently authenticated user.
twprojects-get_workflow
read-only
id*fields
Get workflow. Get workflow.
twprojects-get_workflow_stage
read-only
id*fieldsworkflow_id*
Get workflow stage. Get workflow stage.
twprojects-link_project_to_workflow
project_id*workflow_id*
Link a project to a workflow so its tasks track through workflow stages. Link a project to a workflow so its tasks track through workflow stages.
twprojects-link_task_to_allocation
task_id*allocation_id*
Link one task to an allocation, showing what task work sits behind the committed time. The task and the allocation must be in the same project. This adds a single link and leaves t… Link one task to an allocation, showing what task work sits behind the committed time. The task and the allocation must be in the same project. This adds a single link and leaves the allocation's other links alone, unlike linked_task_ids on twprojects-update_allocation, which replaces the whole set.
twprojects-list_activities
read-only
pagefieldsverboseend_dateitem_idsorder_by
+8
List recent activity events. Scope by project_id or omit for site-wide. List recent activity events. Scope by project_id or omit for site-wide.
twprojects-list_allocations
read-only
pagefieldsverboseend_dateorder_bypage_size
+17
List scheduler allocations — who is committed to which project, and when. ALWAYS pass start_date and end_date: with neither set the endpoint returns only today through 30 days from… List scheduler allocations — who is committed to which project, and when. ALWAYS pass start_date and end_date: with neither set the endpoint returns only today through 30 days from today, and says nothing about having narrowed the range, so an unbounded call silently answers a question about a wider period with one month of data. Allocations are planned time and a separate plane from task estimates and logged time; the two are not summed. linkedTaskEstimatedTime counts each linked task whole and must not be summed across allocations.
twprojects-list_calendar_events
read-only
limitcursorfieldsverboseorder_byorder_mode
+3
List events from a calendar, including time-blocking events that link a calendar slot to a Teamwork project, task or timelog. Omit calendar_id to read the calling user's own calend… List events from a calendar, including time-blocking events that link a calendar slot to a Teamwork project, task or timelog. Omit calendar_id to read the calling user's own calendar. Use twprojects-list_calendars to name a different one; the calendar of type 'blocked_time' holds the account's time-blocking events.
twprojects-list_calendars
read-only
pagefieldsverboseorder_bypage_sizecount_only
+1
List calendars. Calendars hold events such as meetings, out-of-office periods and time-blocking entries; the calendar of type 'blocked_time' holds the account's time-blocking event… List calendars. Calendars hold events such as meetings, out-of-office periods and time-blocking entries; the calendar of type 'blocked_time' holds the account's time-blocking events.
twprojects-list_comments
read-only
pagefieldslink_idtask_idverboseorder_by
+9
List comments. Scope by one of task_id, milestone_id, notebook_id, link_id, or file_version_id; omit all for site-wide. Comment bodies are truncated at 500 characters and marked wh… List comments. Scope by one of task_id, milestone_id, notebook_id, link_id, or file_version_id; omit all for site-wide. Comment bodies are truncated at 500 characters and marked where they are cut; use twprojects-get_comment for the full text.
twprojects-list_companies
read-only
pagefieldstag_idsverboseorder_bypage_size
+5
List companies (aka clients). List companies (aka clients).
twprojects-list_custom_fields
read-only
idspagefieldsverboseentitiesorder_by
+9
List custom fields. List custom fields.
twprojects-list_custom_field_values
read-only
pageentity*fieldsverboseentity_id*page_size
+2
List the custom field values of a task, project or company. List the custom field values of a task, project or company.
twprojects-list_custom_item_fields
read-only
idspagepage_sizecount_onlyorder_modesearch_term
+2
List fields on a custom item type. Each entry includes the twId you need when writing record values. Custom items are user-defined entity types — Contracts, Leads, Deals, or anythi… List fields on a custom item type. Each entry includes the twId you need when writing record values. Custom items are user-defined entity types — Contracts, Leads, Deals, or anything else a customer has set up on a project. Use these tools when the user refers to an entity that is NOT a built-in Teamwork concept (Task, Tasklist, Project, Milestone, Comment, Notebook, Company, Team, User, Tag). If you don't recognise an entity name in the user's request, assume it is a custom item and call twprojects-list_custom_items on the relevant project to confirm.
twprojects-list_custom_item_records
read-only
idspageorder_bypage_sizecount_onlyorder_mode
+5
List records on a custom item type. Returns each record with field values keyed by display name. Use the section_ids filter to scope to a specific section. Custom items are user-de… List records on a custom item type. Returns each record with field values keyed by display name. Use the section_ids filter to scope to a specific section. Custom items are user-defined entity types — Contracts, Leads, Deals, or anything else a customer has set up on a project. Use these tools when the user refers to an entity that is NOT a built-in Teamwork concept (Task, Tasklist, Project, Milestone, Comment, Notebook, Company, Team, User, Tag). If you don't recognise an entity name in the user's request, assume it is a custom item and call twprojects-list_custom_items on the relevant project to confirm.
twprojects-list_custom_items
read-only
idspageorder_bypage_sizecount_onlyorder_mode
+3
List the custom item types defined on a project. Returns each type's id, display name and labels — call get_custom_item to see a type's fields and sections. Custom items are user-d… List the custom item types defined on a project. Returns each type's id, display name and labels — call get_custom_item to see a type's fields and sections. Custom items are user-defined entity types — Contracts, Leads, Deals, or anything else a customer has set up on a project. Use these tools when the user refers to an entity that is NOT a built-in Teamwork concept (Task, Tasklist, Project, Milestone, Comment, Notebook, Company, Team, User, Tag). If you don't recognise an entity name in the user's request, assume it is a custom item and call twprojects-list_custom_items on the relevant project to confirm.
twprojects-list_industries
read-only
List supported company (aka client) industries. List supported company (aka client) industries.
twprojects-list_jobroles
read-only
pagefieldsverbosepage_sizecount_onlyorder_mode
+1
List job roles. List job roles.
twprojects-list_links
read-only
pagefieldstag_idsverbosepage_sizeproject_id
+2
List links. List links.
twprojects-list_message_replies
read-only
pagefieldsverboseorder_bypage_sizecount_only
+4
List replies under a message thread. Filter by message_ids or project_ids. List replies under a message thread. Filter by message_ids or project_ids.
twprojects-list_messages
read-only
pagefieldstag_idsverboseorder_bypage_size
+5
List project messages (top-level posts). Use twprojects-list_message_replies for thread replies. List project messages (top-level posts). Use twprojects-list_message_replies for thread replies.
twprojects-list_milestones
read-only
pagefieldstag_idsverboseorder_bydue_after
+8
List milestones. Scope by project_id or omit for site-wide. Completed milestones are included by default; pass show_completed false to see only the outstanding ones. Use due_after… List milestones. Scope by project_id or omit for site-wide. Completed milestones are included by default; pass show_completed false to see only the outstanding ones. Use due_after and due_before to bound the deadline instead of listing everything and filtering afterwards.
twprojects-list_notebooks
read-only
pagefieldstag_idsverboseorder_bypage_size
+6
List notebooks. List notebooks.
twprojects-list_project_budgets
read-only
pagelimitcursorfieldsstatusverbose
+3
Lists top-level project budgets. Filters: project_ids, status.Returns only budgeted projects (diff with twprojects-list_projects for budgetless).Filter server-side via project_ids… Lists top-level project budgets. Filters: project_ids, status.Returns only budgeted projects (diff with twprojects-list_projects for budgetless).Filter server-side via project_ids when known. 1-based page pagination (pageOffset = page - 1)
twprojects-list_project_categories
read-only
pagefieldsverbosepage_sizecount_onlysearch_term
List project categories. List project categories.
twprojects-list_projects
read-only
pagefieldstag_idsverboseorder_byteam_ids
+20
List projects with structured filters (membership, progress state, health, category, tag, company, owner). For "my projects" pass user_ids with the ID from twprojects-get_user_me,… List projects with structured filters (membership, progress state, health, category, tag, company, owner). For "my projects" pass user_ids with the ID from twprojects-get_user_me, or only_starred. For projects that have slipped pass project_statuses=["late"] — a project row carries no late flag, so this filter is the only way to ask.
twprojects-list_project_templates
read-only
pagetag_idspage_sizesearch_termmatch_all_tagsproject_category_ids
List project templates. List project templates.
twprojects-list_project_updates
read-only
pagefieldsverboseorder_bypage_sizecount_only
+8
List project updates: the Markdown text on a project's dashboard and the health it reports. Nothing else returns either — a project row carries no health, and the activity log hold… List project updates: the Markdown text on a project's dashboard and the health it reports. Nothing else returns either — a project row carries no health, and the activity log holds a preview of the text, not the text. Newest first. Only each project's current update is returned unless active_only is false, so an unfiltered call is not the whole history. Rows carry text (Markdown, in full, emoji codes already converted to characters), health (0 not set, 1 bad, 2 ok, 3 good), healthLabel (the name this installation gives that rating — read it, never build one from health) and color (hex, empty when the health is not set). The author and the project are bare IDs, sideloaded under included when verbose is true. Keep a response small with fields and page_size; verbose=false drops the text and returns the ratings.
twprojects-list_skills
read-only
pagefieldsverbosepage_sizecount_onlyorder_mode
+1
List skills. List skills.
twprojects-list_tags
read-only
pagefieldsverboseorder_byitem_typepage_size
+4
List tags. List tags.
twprojects-list_tasklist_budgets
read-only
pagefieldsverboseorder_bypage_sizecount_only
+2
List tasklist budgets nested under a project budget. Requires project_budget_id. List tasklist budgets nested under a project budget. Requires project_budget_id.
twprojects-list_tasklists
read-only
pagefieldsverboseorder_bypage_sizecount_only
+4
List tasklists. Scope by project_id or omit for site-wide. List tasklists. Scope by project_id or omit for site-wide.
twprojects-list_tasks
read-only
pagefieldstag_idsverboseorder_bydue_after
+24
List tasks with structured filters (tasklist_id, project_id, or site-wide). For keyword search use search. Completed tasks and tasks in completed tasklists are excluded unless show… List tasks with structured filters (tasklist_id, project_id, or site-wide). For keyword search use search. Completed tasks and tasks in completed tasklists are excluded unless show_completed is true, so an empty result may mean the matching work is already done rather than missing. Ask for "late", "overdue", "due today", "started" or "upcoming" work through date_filter, and leave people out through exclude_assignee_user_ids, rather than reading rows and filtering them yourself.
twprojects-list_teams
read-only
pagefieldsverboseorder_bypage_sizecompany_id
+3
List teams. Scope by company_id or project_id, or omit for site-wide. List teams. Scope by company_id or project_id, or omit for site-wide.
twprojects-list_timelogs
read-only
pagefieldstag_idstask_idverboseend_date
+13
List timelogs. Scope by project_id or task_id, or omit for site-wide. List timelogs. Scope by project_id or task_id, or omit for site-wide.
twprojects-list_timers
read-only
pagefieldstask_iduser_idverbosepage_size
+3
List timers. List timers.
twprojects-list_users
read-only
pagetypefieldsverboseorder_bypage_size
+4
List users. Scope by project_id or filter by type (account/collaborator/contact). List users. Scope by project_id or filter by type (account/collaborator/contact).
twprojects-list_workflows
read-only
pagefieldsverbosepage_sizecount_onlysearch_term
List workflows. List workflows.
twprojects-list_workflow_stages
read-only
pagefieldsverboseorder_bypage_sizecount_only
+2
List workflow stages. List workflow stages.
twprojects-move_tasks
task_ids*tasklist_id*
Move tasks and all their subtasks to another tasklist, preserving the parent/child structure. Subtasks move with their parent automatically, so only the topmost task of each subtre… Move tasks and all their subtasks to another tasklist, preserving the parent/child structure. Subtasks move with their parent automatically, so only the topmost task of each subtree needs to be listed. A task whose parent is not part of the move is detached from it, becoming a top-level task in the destination.
twprojects-move_task_to_workflow_stage
stage_id*task_idsworkflow_id*
Move one or more tasks to a workflow stage. Move one or more tasks to a workflow stage.
twprojects-pause_timer
id*
Pause a running timer; can be resumed later. Use complete_timer to stop permanently. Pause a running timer; can be resumed later. Use complete_timer to stop permanently.
twprojects-restore_allocation
id*
Restore a deleted allocation. Find the ID first with twprojects-list_allocations and show_deleted set, since a deleted allocation is otherwise not returned. Restore a deleted allocation. Find the ID first with twprojects-list_allocations and show_deleted set, since a deleted allocation is otherwise not returned.
twprojects-resume_timer
id*
Resume a paused timer back to running. Resume a paused timer back to running.
twprojects-search
read-only
limittypescursorverbosesideloadproject_id
+5
Cross-entity keyword search across projects, tasks, messages, comments, users and more; restrict which entity types are searched with types. Long content fields in the sideloaded r… Cross-entity keyword search across projects, tasks, messages, comments, users and more; restrict which entity types are searched with types. Long content fields in the sideloaded records are truncated at 500 characters and marked where they are cut; the marker names the tool that returns the full record. Completed items are excluded unless include_completed_items is true, so an empty result may mean the matching work is already done rather than missing.
twprojects-summarize_timelogs
read-only
end_date*group_byorder_bytask_idsteam_idsuser_ids
+7
Complete time totals for a date window, grouped by user, project or task (rows in groups) or by day, week or month (rows in periods). One call returns every row, in exact minutes a… Complete time totals for a date window, grouped by user, project or task (rows in groups) or by day, week or month (rows in periods). One call returns every row, in exact minutes and hours to 2 decimals. Prefer it over twprojects-list_timelogs for any total, sum or breakdown; list_timelogs is for individual entries. Minutes are authoritative, unbilledBillable = billable − billed, and rows sum to totals. One dimension per call: for hours per user per week, call once per user with user_ids. Task rows omit project-level and subtask time, so never add totals across group_by values. Period rows cover every period in order, zeros included, first and last clipped to the window; weeks follow the caller's start-of-week setting, so buckets can differ per user, and a weekend-only week with no time is dropped.
twprojects-unlink_task_from_allocation
task_id*allocation_id*
Remove the link between one task and an allocation. Only the association is removed: both the task and the allocation are left in place. This removes a single link and leaves the a… Remove the link between one task and an allocation. Only the association is removed: both the task and the allocation are left in place. This removes a single link and leaves the allocation's other links alone.
twprojects-update_allocation
id*colortitleend_dateproject_idstart_date
+7
Update an allocation. Changing end_date ADDS or REMOVES committed time rather than redistributing it, because the per-day rate is what is held constant. Update an allocation. Changing end_date ADDS or REMOVES committed time rather than redistributing it, because the per-day rate is what is held constant.
twprojects-update_comment
id*body*notifycontent_typenotify_current_user
Update comment. Update comment.
twprojects-update_company
id*faxzipcitynamephone
+12
Update company (aka client). Update company (aka client).
twprojects-update_custom_field
id*nameunitformulaoptionsrequired
+2
Update custom field. Update custom field.
twprojects-update_custom_field_value
valueentity*value_id*entity_id*country_codecurrency_code
+1
Update a custom field value on a task, project or company. Update a custom field value on a task, project or company.
twprojects-update_custom_item
id*descriptiondisplay_namelabel_plurallabel_singular
Update a custom item type's display name, description, or labels. Custom items are user-defined entity types — Contracts, Leads, Deals, or anything else a customer has set up on a… Update a custom item type's display name, description, or labels. Custom items are user-defined entity types — Contracts, Leads, Deals, or anything else a customer has set up on a project. Use these tools when the user refers to an entity that is NOT a built-in Teamwork concept (Task, Tasklist, Project, Milestone, Comment, Notebook, Company, Team, User, Tag). If you don't recognise an entity name in the user's request, assume it is a custom item and call twprojects-list_custom_items on the relevant project to confirm.
twprojects-update_custom_item_field
id*definitiondisplay_namecustom_item_id*position_after_id
Update a field on a custom item type. Custom items are user-defined entity types — Contracts, Leads, Deals, or anything else a customer has set up on a project. Use these tools whe… Update a field on a custom item type. Custom items are user-defined entity types — Contracts, Leads, Deals, or anything else a customer has set up on a project. Use these tools when the user refers to an entity that is NOT a built-in Teamwork concept (Task, Tasklist, Project, Milestone, Comment, Notebook, Company, Team, User, Tag). If you don't recognise an entity name in the user's request, assume it is a custom item and call twprojects-list_custom_items on the relevant project to confirm.
twprojects-update_custom_item_record
id*namesection_idfield_valuesclear_sectioncustom_item_id*
+1
Update a record on a custom item type. Only the fields you supply are changed; others are left as-is. Set section_id to null to remove the record from any section. Custom items are… Update a record on a custom item type. Only the fields you supply are changed; others are left as-is. Set section_id to null to remove the record from any section. Custom items are user-defined entity types — Contracts, Leads, Deals, or anything else a customer has set up on a project. Use these tools when the user refers to an entity that is NOT a built-in Teamwork concept (Task, Tasklist, Project, Milestone, Comment, Notebook, Company, Team, User, Tag). If you don't recognise an entity name in the user's request, assume it is a custom item and call twprojects-list_custom_items on the relevant project to confirm.
twprojects-update_jobrole
id*name
Update job role. Update job role.
twprojects-update_link
id*codetitlenotifytag_idsdescription
+1
Update link. Update link.
twprojects-update_message
id*bodytitlenotifynotify_current_user
Update message. Update message.
twprojects-update_message_reply
id*bodynotifynotify_current_user
Update message reply. Update message reply.
twprojects-update_milestone
id*nametag_idsdue_dateassigneesdescription
+1
Update milestone. Update milestone.
twprojects-update_notebook
id*nametypetag_idscontentsdescription
Update notebook. Update notebook.
twprojects-update_project
id*nameend_atstatustag_idsowned_id
+4
Update project. Update project.
twprojects-update_project_category
id*namecolorparent_id
Update project category. Update project category.
twprojects-update_skill
id*nameuser_ids
Update skill. Update skill.
twprojects-update_tag
id*namecolorproject_id
Update tag. Update tag.
twprojects-update_task
id*nametag_idsdue_datepriorityprogress
+14
Update task. Update task.
twprojects-update_tasklist
id*namedescriptionmilestone_id
Update tasklist. Update tasklist.
twprojects-update_team
id*namehandleuser_idscompany_idproject_id
+2
Update team. Update team.
twprojects-update_timelog
id*datetimehoursis_utcminutes
+7
Update timelog. It can also be moved to another project or task. Update timelog. It can also be moved to another project or task.
twprojects-update_timer
id*runningtask_idbillableproject_iddescription
Update timer. Update timer.
twprojects-update_user
id*typeadminemailtitlelast_name
+2
Update user. Update user.
twprojects-update_workflow
id*name
Update workflow. Update workflow.
twprojects-update_workflow_stage
id*nameworkflow_id*
Update workflow stage. Update workflow stage.
twprojects-users_workload
read-only
pageend_date*user_idspage_sizestart_date*project_ids
+2
Get task allocation across users for a date range. (workload of users) Get task allocation across users for a date range. (workload of users)
twspaces-create_category
name*color
Create space category. Create space category.
twspaces-create_comment
pageId*content*spaceId*parentIdisPrivate
Create comment on a page. Use parentId for replies. Create comment on a page. Use parentId for replies.
twspaces-create_page
slugtitle*contentspaceId*parentIdisPublish
+4
Create page in a space. Create page in a space.
twspaces-create_space
code*icontitle*purposeprojectIdcategoryId
+1
Create space. Create space.
twspaces-create_tags
tags*
Create one or more Spaces tags in a single request. Create one or more Spaces tags in a single request.
twspaces-duplicate_page
slugtitle*pageId*spaceId*parentId
Duplicate page with a new title. Duplicate page with a new title.
twspaces-get_category
read-only
id*
Get space category. Get space category.
twspaces-get_comment
read-only
pageId*spaceId*commentId*
Get page comment. Get page comment.
twspaces-get_homepage
read-only
spaceId*
Get a space's homepage. Get a space's homepage.
twspaces-get_page
read-only
pageId*spaceId*
Get page. Returns content, metadata, tags, and revision info. Get page. Returns content, metadata, tags, and revision info.
twspaces-get_space
read-only
id*
Get space. Get space.
twspaces-get_tag
read-only
id*
Get Spaces tag. Get Spaces tag.
twspaces-list_categories
read-only
pageSizepageOffset
List space categories. List space categories.
twspaces-list_comments
read-only
pageId*spaceId*pageSizepageOffset
List comments on a page. Returns top-level comments with replies. List comments on a page. Returns top-level comments with replies.
twspaces-list_pages
read-only
spaceId*pageSizepageOffset
List pages in a space as a hierarchical tree. List pages in a space as a hierarchical tree.
twspaces-list_space_collaborators
read-only
id*
List space collaborators (users and teams). List space collaborators (users and teams).
twspaces-list_spaces
read-only
pageSizepageOffset
List spaces. List spaces.
twspaces-list_tags
read-only
pageSizepageOffset
List Spaces tags. List Spaces tags.
twspaces-search
read-only
query*pageSizespaceIdspageOffsetincludeDeleted
Full-text search across pages. Filter by space. Full-text search across pages. Filter by space.
twspaces-update_category
id*namecolor
Update space category. Update space category.
twspaces-update_comment
statepageId*contentspaceId*commentId*isPrivate
Update page comment. Update page comment.
twspaces-update_page
slugtitlepageId*contentspaceId*parentId
+7
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 t… Update page. Note: content and publish changes update the published page only, not the live collaborative editor draft; if the page has an active editor draft, re-publishing from the Spaces web editor can overwrite these changes (known Spaces limitation).
twspaces-update_space
id*codeiconstatetitlepurpose
+3
Update space. Update space.
twspaces-update_tag
id*namecolor