# Teamwork — MCP server on mcp.ai > Connect your Teamwork account and use 12 tools for project management straight from your AI agent. Connect with your own API key. Teamwork is a project management platform for planning projects, coordinating tasks, collaborating with teams, and tracking time. By: mcp.ai · official Page: https://mcp.ai/teamwork ## Connect (MCP protocol) Remote MCP endpoint (HTTP, streamable): https://api.mcp.ai/p_teamwork?ms=1787295960000 Add it as a custom/remote MCP connector, then authenticate when prompted. ## REST API (no MCP client required) Every tool is also a REST endpoint, authed with a workspace API key. Discover: GET https://api.mcp.ai/api/teamwork/_endpoints # public; lists every endpoint Call: POST https://api.mcp.ai/api/teamwork/ Authorization: Bearer sk_live_… # create one at https://mcp.ai/settings/api-keys Content-Type: application/json Body: { …args } → { "ok": true, "tool": "", "result": { … } } ## Developer docs How to use (MCP or REST), markdown: https://mcp.ai/teamwork/skill.md Postman collection (v2.1): https://mcp.ai/teamwork/postman.json ## Tools - teamwork_create_tag(name: string, color?: string, project_id?: integer) — Create a Teamwork tag, or return the existing installation tag when the same name already exists. - teamwork_create_task(name: string, tag_ids?: integer[], due_date?: string, is_private?: boolean, start_date?: string, description?: string, fire_webhook?: boolean, task_list_id: integer, notify_assignees?: boolean, assignee_user_ids?: integer[], estimated_minutes?: integer) — Create a task in a Teamwork task list with common scheduling, assignment, estimate, privacy, and tag fields. - teamwork_list_milestones(statuses?: string[], due_after?: string, page_size?: integer, due_before?: string, next_cursor?: string, project_ids?: integer[], search_term?: string, assigned_user_ids?: integer[], include_completed?: boolean) — List visible Teamwork milestones by project, status, due-date range, assignee, or text. Returns one page and an opaque continuation cursor. - teamwork_list_people(page_size?: integer, user_type?: string, next_cursor?: string, project_ids?: integer[], search_term?: string, include_clients?: boolean, include_collaborators?: boolean, include_service_accounts?: boolean) — List people visible to the connected Teamwork user for assignment and ownership workflows. - teamwork_list_projects(page_size?: integer, company_ids?: integer[], next_cursor?: string, search_term?: string, updated_after?: string, include_archived?: boolean, only_my_projects?: boolean, project_statuses?: string[]) — List projects visible to the connected Teamwork user, with focused filters for name, status, company, membership, and archival state. Returns one page and an opaque continuation cursor. - teamwork_list_tags(item_type?: string, page_size?: integer, next_cursor?: string, project_ids?: integer[], recent_only?: boolean, search_term?: string, with_counters?: boolean) — List Teamwork tags visible to the connected user, optionally filtered by project, item type, name, or usage. Returns one page and an opaque continuation cursor. - teamwork_list_task_lists(page_size?: integer, next_cursor?: string, project_ids?: integer[], search_term?: string, include_empty?: boolean, updated_after?: string, show_completed?: boolean, include_archived_projects?: boolean) — List Teamwork task lists, usually within one or more projects, so an agent can place or locate tasks. - teamwork_list_tasks(tag_ids?: integer[], due_after?: string, page_size?: integer, due_before?: string, next_cursor?: string, project_ids?: integer[], search_term?: string, task_filter?: string, task_list_ids?: integer[], assigned_user_ids?: integer[], include_completed?: boolean) — List and filter Teamwork tasks by project, task list, assignee, dates, completion state, or tags. Returns one page and an opaque cursor for continuation. - teamwork_list_time_entries(tag_ids?: integer[], end_date?: string, task_ids?: integer[], user_ids?: integer[], page_size?: integer, start_date?: string, next_cursor?: string, project_ids?: integer[], billable_type?: string, invoiced_type?: string) — List accessible Teamwork time entries by project, task, person, date range, billing state, or tags. Returns one page and an opaque continuation cursor. - teamwork_log_time_entry(date: string, hours?: integer, is_utc?: boolean, minutes?: integer, tag_ids?: integer[], task_id: integer, user_id?: integer, start_time?: string, description?: string, is_billable?: boolean, fire_webhook?: boolean) — Log time against a Teamwork task with a date, duration, optional start time, description, person, billing state, and tags without changing task status. - teamwork_search_resources(limit?: integer, types?: string[], order_by?: string, project_id?: integer, next_cursor?: string, search_term: string, updated_after?: string, include_details?: string[], include_completed?: boolean, include_archived_projects?: boolean) — Search across Teamwork projects, tasks, task lists, milestones, people, companies, time entries, and other supported item types. Returns one page of lightweight references, optional sideloaded details - teamwork_update_task(name?: string, tag_ids?: integer[], task_id: integer, due_date?: string, progress?: integer, is_private?: boolean, start_date?: string, description?: string, fire_webhook?: boolean, notify_assignees?: boolean, assignee_user_ids?: integer[], estimated_minutes?: integer) — Update selected fields of an existing Teamwork task while leaving omitted task fields unchanged. ## Example prompts - "What can I do in Teamwork?" - "Show me a summary of my Teamwork account" ## Links Docs: https://mcp.ai/docs/mcps/teamwork Website: https://mcp.ai/mcps/teamwork