---
title: "Teamwork MCP server for AI agents - actionlake"
description: "Give Claude 737 Teamwork actions through one MCP server: time tracking, tasks, custom fields. Your agent never holds the credential. 100,000 calls a month free."
canonical: https://actionlake.com/connectors/teamwork
updated: 2026-10-10
---

Connectors · Work & projects

# Teamwork MCP server for AI agents.

actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Teamwork and the rest of your systems. It gives your agent 737 Teamwork actions (379 reads, 263 writes and 95 that wait for a confirmation) and holds the Teamwork credential itself, so the agent never does. It paces Teamwork's limits and records every call.

[Connect Teamwork free](https://actionlake.com/console?start=sandbox) [See pricing](https://actionlake.com/pricing)

100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.

`claude mcp add --transport http actionlake https://connect.actionlake.com/mcp`

the first call

```
do {
  action: "teamwork.account.get_account",
  intent: "check which Teamwork account is connected"
}
# Get Account Details · read · 1 upstream call
```

- 737 actions in one signed file
- 379 read look, never change
- 263 write create and update
- 95 wait for a yes destructive, confirmed first

Set up

## Connect Teamwork in three steps.

1. 01
   ### Add actionlake to Claude.
   Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.
   `https://connect.actionlake.com/mcp`
2. 02
   ### Connect Teamwork.
   Username and secret. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead. actionlake stores what you paste write-only, sealed under your tenant's key.
   - `api_token` Teamwork API token (used as the Basic username; the password is ignored)
   - `site_host` Where your Teamwork lives: your site host
   ```
   account { op: "connections.requirements", service: "teamwork" }
   # free: exactly what to paste, and what is found for you
   ```
3. 03
   ### Make the first call. Check before a write.
   Ask in plain words; Claude picks the action. Before anything changes, `check` validates the call and prices it, for free.
   ```
   do    { action: "teamwork.account.get_account" }
   # get account details · read · 1 upstream call
   check { action: "teamwork.tasks.create_tasks_by_id", input: { … } }
   # free: inputs, permissions, cost and confirmations, nothing sent
   ```

Teamwork at a glance

**Sign-in**

Username and secret. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead.

**You provide**

`api_token`

**Setup fields**

`site_host`

**Limits we pace to**

150 calls a minute, per connection

**API covered**

Teamwork.com API v3+v1, at your Teamwork instance's API base URL, which you enter when connecting

**Built from**

Teamwork's documentation, read 19 September 2026[contento-assets.s3.eu-west-1.amazonaws.com](https://contento-assets.s3.eu-west-1.amazonaws.com/oas/teamwork_docs/projects/reference/projects-api-v3.oas2.yml) [contento-assets.s3.eu-west-1.amazonaws.com](https://contento-assets.s3.eu-west-1.amazonaws.com/oas/teamwork_docs/projects/reference/projects-api-v1.oas2.yml) [contento-assets.s3.eu-west-1.amazonaws.com](https://contento-assets.s3.eu-west-1.amazonaws.com/oas/teamwork_docs/projects/reference/projects-api-v2.oas2.yml)

**Service file**

Version 1.0.0, signed (Ed25519)

**Cached reads**

376 of 379 reads, for up to an hour; a write clears what it affects

**Ready-made plans**

12 in the store

**Shared entities**

10, so ask can line Teamwork up with your other systems

**Data**

Processed and stored in Sydney, Australia. No US region yet

Capabilities

## What an AI agent can do in Teamwork.

737 actions in 92 areas. Every one carries its effect, so a key can allow the reads and hold the rest.

- **379** read look, never change
- **263** write create and update
- **95** destructive wait for a confirmation

1. ### Time tracking
   46
   29 read · 14 write · 3 destructive
   Get all time entries · Get time entries for a specific allocation · Retrieve all Time Entries for a Project · Get time entries for a specific project
2. ### Tasks
   43
   24 read · 17 write · 2 destructive
   Get all tasks. · Creates a personal task. · Create a Task on a Project · Quickly add multiple Tasks
3. ### Custom fields
   33
   13 read · 12 write · 8 destructive
   Company custom field values. · Get all custom fields · Get Custom Fields on projects · Project custom field values.
4. ### Teams
   31
   25 read · 4 write · 2 destructive
   Get a comment's teams · Get Teams for company id · Get a dataview's teams · Get a file's teams
5. ### Projects
   30
   19 read · 9 write · 2 destructive
   Returns a list of projects · Retrieve Projects assigned to a specific Company · Get a health summary for all projects · Create Project
6. ### Custom items
   28
   10 read · 11 write · 7 destructive
   Get a custom item field by id. · Create a new field. · Get custom items for a specific project · Edit an existing custom item field.
7. ### People
   26
   20 read · 4 write · 2 destructive
   Returns a list of people · Get all deleted People · Retrieve a Specific Person · Returns a person
8. ### Notebooks
   22
   9 read · 10 write · 3 destructive
   Get the parent project for a specific notebook. · Create a Single Notebook · Create a new notebook. · List Notebooks in a Specific Category

**84 more areas · 478 actions**

- Reports **18**
- Messages **16**
- Portfolio boards **15**
- Quotes **15**
- Risks **15**
- Companies **14**
- Containers **14**
- Milestones **14**
- Workflows **14**
- Skills **13**
- Webhooks **13**
- Boards **12**
- People status **12**
- Task lists **12**
- Files **11**
- Tags **11**
- Calendar event **10**
- Comments **10**
- Exchange rate **10**
- Invoices **10**
- Reactions **10**
- Activity **9**
- Custom reports **9**
- Job roles **9**
- Message replies **9**
- Calendar events **8**
- Project updates **8**
- Forms **7**
- Task reminders **7**
- Budgets **6**
- Expenses **6**
- Links **6**
- Project categories **6**
- Project roles **6**
- Auto schedule **5**
- Calendars **5**
- Clock in clock out **5**
- File categories **5**
- Link categories **5**
- Message categories **5**
- Notebook categories **5**
- Reporting views **5**
- Analytic engine **4**
- Project templates **4**
- Budget report **3**
- Categories **3**
- Forms public **3**
- Likes **3**
- Permissions **3**
- Data views **2**
- Estimation **2**
- Link items **2**
- Price plans **2**
- Project email addresses **2**
- Quote export preferences **2**
- Quote settings **2**
- Summary **2**
- Task comments **2**
- Tasklists **2**
- Time approvals **2**
- Timelogs **2**
- Timesheets **2**
- Trashcan **2**
- Workload **2**
- Account **1**
- Account details **1**
- Custom item record comments **1**
- Dashboards **1**
- Features **1**
- File comments **1**
- File uploading **1**
- File version comments **1**
- Importers **1**
- Milestone comments **1**
- Notebook comments **1**
- Person **1**
- Project health **1**
- Project owner **1**
- Recurring preview **1**
- Search **1**
- Site owner **1**
- Timezones **1**
- Users **1**
- Utilization **1**

Top actions

## The Teamwork API, shaped for agents.

The ids your agent types, what each does, and the one name it shares with other systems. 343 of Teamwork's 362 action names are shared with at least one other connector, so an agent learns them once.

| Action | What it does | Effect | Same name in |
| --- | --- | --- | --- |
| `teamwork.tasks.list_tasks` Get all tasks. | Get all tasks. | read | `work.task.list` 122 connectors |
| `teamwork.projects.list_projects` Returns a list of projects | Returns a list of projects | read | `work.project.list` 109 connectors |
| `teamwork.time_tracking.list_time` Get all time entries | Get all time entries | read | `work.time_entry.list` 59 connectors |
| `teamwork.people.list_people` Returns a list of people | Returns a list of people | read | `identity.user.list` 474 connectors |
| `teamwork.comments.list_comments` Get a list of comments | Get a list of comments | read | `work.task_comment.list` 27 connectors |
| `teamwork.tasks.create_tasks_by_id` Create a Sub Task | Create a Sub Task | write | `work.task.create` 127 connectors |
| `teamwork.tasks.create_me_personaltasks` Creates a personal task. | Creates a personal task. | write | `work.task.create` 127 connectors |
| `teamwork.tasks.create_projects_by_id_tasks` Create a Task on a Project | Create a Task on a Project | write | `work.task.create` 127 connectors |
| `teamwork.project_health.list_projects_health` Get health scores for projects | Get health scores for projects | read | `work.project.list` 109 connectors |
| `teamwork.calendar_event.list_calendarevents` Get Events | Get Events | read | `comm.event.list` 61 connectors |
| `teamwork.companies.list_companies` Get all companies. | Get all companies. | read | `crm.company.list` 162 connectors |
| `teamwork.tasks.delete_tasks_by_id` Delete a Task | Delete a Task | destructive | `work.task.delete` 107 connectors |

Try it

## Prompts to paste into Claude.

Each one names the Teamwork actions it will call, so you know what it reads and what it changes before you send it.

1. Read read
   Which Teamwork invoices are more than 30 days overdue? Group them by customer with the total owed.
   calls `teamwork.invoices.list_invoices`
2. Plan read
   Assemble the portfolio financial review pack in Teamwork.
   calls `teamwork.summary.get_summary` `teamwork.projects.get_projects_metrics_active` `teamwork.projects.get_projects_metrics_invoices` `teamwork.budget_report.get_reporting_precanned_budget` `teamwork.analytic_engine.list_reporting_financial_trends` +1 more
3. Plan read
   Build a health briefing for one project in Teamwork.
   calls `teamwork.projects.get_projects_by_id` `teamwork.activity.list_projects_by_project_id_latestactivity` `teamwork.risks.list_risks` `teamwork.task_lists.list_projects_by_id_tasklists` `teamwork.time_tracking.list_projects_by_id_time_total` +1 more
4. Write write
   Create a Sub Task in Teamwork. Show me exactly what you will send before you save it.
   calls `teamwork.tasks.create_tasks_by_id`
5. Across systems read
   For each customer, how many invoices are in Teamwork and how many tickets in ConnectWise PSA?
   calls `teamwork.invoices.list_invoices` `connectwise_manage.tickets.list`

Across your systems

## Teamwork, joined to the rest of your business.

One `ask` fetches from Teamwork and another system, joins the rows on the same customer on our side, and hands your agent the answer, not every row.

- For each customer, how many invoices are in Teamwork and how many tickets in ConnectWise PSA?
  `teamwork.invoices.list_invoices` + `connectwise_manage.tickets.list`, on `crm.company` · [ConnectWise PSA](https://actionlake.com/connectors/connectwise-psa)
- For each customer, how many invoices are in Teamwork and how many tickets in HubSpot CRM?
  `teamwork.invoices.list_invoices` + `hubspot_crm.tickets.list`, on `crm.company` · [HubSpot CRM](https://actionlake.com/connectors/hubspot-crm)

Also mapped by other connectors `identity.user` **517** `crm.company` **227** `work.project` **116** `work.task` **105** `finance.invoice` **91** `content.file` **54** `comm.event` **47** `work.time_entry` **40**

ask

```
ask {
  intent: "for each customer, how many invoices are in Teamwork and how many tickets in ConnectWise PSA",
  steps: [
    { action: "teamwork.invoices.list_invoices", as: "inv", input: {}, limit: 100, max_pages: 5 },
    { action: "connectwise_manage.tickets.list", as: "tix", input: {}, limit: 100, max_pages: 5 },
    { join: {
        left: "inv",
        right: "tix",
        on: "crm.company",
        group_by: "inv.company_name",
        select: ["inv.company_name", "count(inv.id) as invoices", "count(tix.id) as tickets"]
    } }
  ]
}
```

Example. Run it through check first: it validates the steps and prices them, and it is free.

The plan store

## Ready-made plans for Teamwork.

12 plans in the store. Install one and your agent runs it by name; the reply says which connections are still missing. A schedule can run a plan on a timetable. There are no triggers or webhooks, by design.

1. ### Pull the weekly time and utilisation picture
   Use it when Someone asks how many hours the team logged and how utilisation looks over the recent period.
   **Effect**
   read
   **Steps**
   5
   **Install**
   `teamwork-weekly-time-report`
2. ### Assemble the portfolio financial review pack
   Use it when Preparing the numbers for a monthly portfolio or finance review across all projects.
   **Effect**
   read
   **Steps**
   6
   **Install**
   `teamwork-portfolio-financial-review`
3. ### Build a health briefing for one project
   Use it when Someone asks for the current state of a named Teamwork project before a status call.
   **Effect**
   read
   **Steps**
   6
   **Needs**
   project id
   **Install**
   `teamwork-project-health-briefing`
4. ### Re-grade open risks and note them on their tasks
   Use it when After a risk review meeting, the agreed new gradings need writing back into Teamwork.
   **Effect**
   write
   **Steps**
   2 · loops
   **Needs**
   decisions
   **Install**
   `teamwork-triage-project-risks`
5. ### Log time against a task and confirm the total
   Use it when Someone wants to record worked hours against a specific Teamwork task.
   **Effect**
   write
   **Steps**
   3
   **Needs**
   task id and timelog
   **Install**
   `teamwork-log-time-against-task`
6. ### Drop a batch of captured tasks into a project
   Use it when A meeting or email has produced a list of action items that need to become Teamwork tasks.
   **Effect**
   write
   **Steps**
   3 · loops
   **Needs**
   items and project id
   **Install**
   `teamwork-quickadd-tasks-to-project`
7. ### Recover an item from the trash can
   Use it when Something was deleted in Teamwork by mistake and needs restoring from the trash can.
   A person decides Restore this item from the Teamwork trash can, making it visible to everyone with access again.
   **Effect**
   write
   **Steps**
   4
   **Needs**
   id and resource
   **Install**
   `teamwork-restore-deleted-item`
8. ### Raise and complete an invoice for a project
   Use it when A project's work is ready to bill and an invoice needs raising and closing off in Teamwork.
   A person decides Raise an invoice on this Teamwork project for the unbilled expenses shown and mark it complete.
   **Effect**
   write
   **Steps**
   5
   **Needs**
   invoice and project id
   **Install**
   `teamwork-raise-project-invoice`
9. ### Queue a custom report and wait for it
   Use it when A saved Teamwork custom report needs running now and its output collected once generation finishes.
   **Effect**
   write
   **Steps**
   5
   **Needs**
   report id
   **Install**
   `teamwork-run-custom-report`
10. ### Stand up a new client project from a template
    Use it when A new client engagement has been won and a Teamwork project needs to exist with people, rates and a kickoff milestone.
    A person decides Create a new Teamwork client project from template, apply the given billing rates and add the listed people.
    **Effect**
    write
    **Steps**
    6
    **Needs**
    milestone, people, project and rates
    **Install**
    `teamwork-onboard-client-project`
11. ### Delete abandoned tasks after sign-off
    Use it when A task list has accumulated abandoned tasks that a person has agreed should be removed entirely.
    A person decides Permanently delete the listed abandoned tasks from this Teamwork task list. This cannot be undone.
    **Effect**
    destructive
    **Steps**
    3 · loops
    **Needs**
    task ids and tasklist id
    **Install**
    `teamwork-close-stale-tasks`
12. ### Delete webhooks that stopped delivering
    Use it when Webhook endpoints have gone dead and the agreed stale ones need removing from Teamwork.
    A person decides Permanently delete the webhooks listed as stale. Any integration still pointing at them will stop receiving events.
    **Effect**
    destructive
    **Steps**
    4 · loops
    **Needs**
    delete ids and webhook id
    **Install**
    `teamwork-retire-stale-webhooks`

install a plan

```
account { op: "plans.install", slug: "teamwork-weekly-time-report" }
# then ask for it by name; a schedule can run it on a timetable
```

Governance for Teamwork

## Destructive actions wait for a yes.

95 Teamwork actions are destructive. The first 10:

- Delete a Task `teamwork.tasks.delete_tasks_by_id`
- Delete an existing task. `teamwork.tasks.delete_tasks_by_task_id`
- Remove a Card `teamwork.boards.delete_boards_columns_cards_by_id`
- Delete Project `teamwork.projects.delete_projects_by_id`
- Delete an existing timelog. `teamwork.time_tracking.delete_time_by_timelog_id`
- Delete a Time-Entry `teamwork.time_tracking.delete_time_entries_by_id`
- Deleting a Comment `teamwork.comments.delete_comments_by_id`
- Delete User `teamwork.people.delete_people_by_id`
- Delete an existing person. `teamwork.people.delete_people_by_person_id`
- Delete Event `teamwork.calendar_event.delete_calendarevents_by_id`

A destructive action runs only with `confirm: true`. Under the `human` policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.

do teamwork.tasks.delete_tasks_by_id confirm_policy: **human**

Delete a Task?

**intent:** the user asked me to delete a Task

run suspended · waiting for a named person · key _teamwork-agent_ cannot confirm itself

In the console, or from an emailed signed link.

a key for this connector

```
account {
  op: "keys.create", name: "teamwork-agent",
  allowed_actions: ["teamwork.*"], cap_calls: 2000,
  confirm_policy: "human_for_writes",
  approval_rules: [
    { match: "teamwork.tasks.delete_tasks_by_id", approver: "lead@example.com" },
    { match: "teamwork.tasks.delete_tasks_by_task_id", approver: "lead@example.com" },
    { match: "teamwork.boards.delete_boards_columns_cards_by_id", approver: "lead@example.com" }
  ]
}
```

Illustrative. Scoped to Teamwork only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

Cost

## What Teamwork costs on actionlake.

Every Teamwork action is one upstream call, the only thing actionlake bills. Searching, `check`, `cost`, `account` and any call Teamwork refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

- 1 upstream call per action all 737 Teamwork actions
- 737 actions page each page of a long list is one call
- 376 reads can be cached a cache hit costs nothing
- 100,000 calls a month, free paid plans from US$49 a month for 250,000

[See pricing](https://actionlake.com/pricing)

Action index

## Every Teamwork action.

737 actions by area: the id your agent calls, what it does, and its effect.

**Time tracking 46**

- `teamwork.time_tracking.list_allocations_by_allocation_id_time` Get time entries for a specific allocation read
- `teamwork.time_tracking.list_projects_by_id_time_entries` Retrieve all Time Entries for a Project read
- and 44 more in this area

**Tasks 43**

- `teamwork.tasks.create_me_personaltasks` Creates a personal task. write
- `teamwork.tasks.create_projects_by_id_tasks` Create a Task on a Project write
- and 41 more in this area

**Custom fields 33**

- `teamwork.custom_fields.list_companies_by_company_id_customfields` Company custom field values. read
- `teamwork.custom_fields.list_customfields` Get all custom fields read
- and 31 more in this area

**Teams 31**

- `teamwork.teams.list_comments_by_id_teams` Get a comment's teams read
- `teamwork.teams.list_companies_by_id_teams` Get Teams for company id read
- and 29 more in this area

**Projects 30**

- `teamwork.projects.create_projects` Create Project write
- `teamwork.projects.list_companies_by_id_projects` Retrieve Projects assigned to a specific Company read
- and 28 more in this area

**Custom items 28**

- `teamwork.custom_items.create_customitems_by_custom_item_id_fields` Create a new field. write
- `teamwork.custom_items.list_customitems_by_custom_item_id_fields_by_id` Get a custom item field by id. read
- and 26 more in this area

**People 26**

- `teamwork.people.get_people_by_id` Retrieve a Specific Person read
- `teamwork.people.get_people_by_person_id` Returns a person read
- and 24 more in this area

**Notebooks 22**

- `teamwork.notebooks.create_projects_by_id_notebooks` Create a Single Notebook write
- `teamwork.notebooks.create_projects_by_project_id_notebooks` Create a new notebook. write
- and 20 more in this area

**Reports 18**

- `teamwork.reports.get_reporting_email_by_report_id` Get the HTML email preview for a scheduled report. read
- `teamwork.reports.get_reporting_oauth_google_status` Get the Google OAuth status for the current user. read
- and 16 more in this area

**Messages 16**

- `teamwork.messages.get_messages_by_message_id_project` Get the parent project for a specific message. read
- `teamwork.messages.list_messages` Get all messages. read
- and 14 more in this area

**Portfolio boards 15**

- `teamwork.portfolio_boards.create_portfolio_boards` Create a new Board write
- `teamwork.portfolio_boards.create_portfolio_boards_by_board_id_columns` Add a column to the given Board write
- and 13 more in this area

**Quotes 15**

- `teamwork.quotes.create_quotes` Create a new quote. write
- `teamwork.quotes.get_company_by_id_quotes_number_preview` Preview the next auto-generated quote number. read
- and 13 more in this area

**Risks 15**

- `teamwork.risks.list_projects_by_id_risks` Retrieve all Risks in a Project read
- `teamwork.risks.list_projects_by_project_id_risks` Get risks for a specific project read
- and 13 more in this area

**Companies 14**

- `teamwork.companies.create_companies` Create a company. write
- `teamwork.companies.get_companies_by_company_id` Get a specific company. read
- and 12 more in this area

**Containers 14**

- `teamwork.containers.get_reporting_dashboards_details_tasks` Get task chart details. read
- `teamwork.containers.list_containers` Get all containers. read
- and 12 more in this area

**Milestones 14**

- `teamwork.milestones.create_projects_by_id_milestones` Create a Single Milestone write
- `teamwork.milestones.get_milestones_by_milestone_id_project` Get the parent project for a specific milestone. read
- and 12 more in this area

**Workflows 14**

- `teamwork.workflows.create_projects_by_project_id_workflows` Applies a workflow to a project write
- `teamwork.workflows.list_projects_by_project_id_workflows` Get all workflows. read
- and 12 more in this area

**Skills 13**

- `teamwork.skills.create_skills` Create a new skill. write
- `teamwork.skills.create_skills_by_id_people` Assign a skill. write
- and 11 more in this area

**Webhooks 13**

- `teamwork.webhooks.create_projects_by_id_webhooks` Create a Webhook on a Project write
- `teamwork.webhooks.create_webhooks` Create a Webhook write
- and 11 more in this area

**Boards 12**

- `teamwork.boards.create_boards_columns_by_id_cards` Add a card to a Column write
- `teamwork.boards.get_boards_columns_cards_by_id` Get a Card read
- and 10 more in this area

**People status 12**

- `teamwork.people_status.create_me_status` Create my Status write
- `teamwork.people_status.create_people_by_id_status` Create a User Status write
- and 10 more in this area

**Task lists 12**

- `teamwork.task_lists.list_projects_by_id_tasklists` Get all Task Lists for a Project read
- `teamwork.task_lists.list_projects_by_project_id_tasklists` Get tasklists in a project read
- and 10 more in this area

**Files 11**

- `teamwork.files.get_files_by_file_id_project` Get the parent project for a specific file. read
- `teamwork.files.get_files_by_id` Get a Single File read
- and 9 more in this area

**Tags 11**

- `teamwork.tags.create_tags` Create a single tag write
- `teamwork.tags.list_by_resource_by_id_tags` List All Tags for a Resource read
- and 9 more in this area

**Calendar event 10**

- `teamwork.calendar_event.create_calendarevents` Create an Event write
- `teamwork.calendar_event.create_calendars_events_task_from_event` Create a task from a calendar event. write
- and 8 more in this area

**Comments 10**

- `teamwork.comments.create_by_resource_by_resource_id_comments` Creating a Comment write
- `teamwork.comments.create_comments` Create a comment write
- and 8 more in this area

**Exchange rate 10**

- `teamwork.exchange_rate.create_custom_exchange_rates` Create a new custom exchange rate write
- `teamwork.exchange_rate.get_custom_exchange_rates_by_id` Get a custom exchange rate read
- and 8 more in this area

**Invoices 10**

- `teamwork.invoices.create_projects_by_id_invoices` Create a New Invoice in a Project write
- `teamwork.invoices.get_invoices_by_invoice_id` Get invoice Line Items read
- and 8 more in this area

**Reactions 10**

- `teamwork.reactions.get_messages_by_message_id` Get Reactions to a Message read
- `teamwork.reactions.get_projects_updates_by_update_id_reactions` Get Reactions to a Project Update read
- and 8 more in this area

**Activity 9**

- `teamwork.activity.list_latest_activity` Latest Activity across all Projects read
- `teamwork.activity.list_latestactivity` Latest activity (all projects) read
- and 7 more in this area

Custom reports **9** Job roles **9** Message replies **9** Calendar events **8** Project updates **8** Forms **7** Task reminders **7** Budgets **6** Expenses **6** Links **6** Project categories **6** Project roles **6** Auto schedule **5** Calendars **5** Clock in clock out **5** File categories **5** Link categories **5** Message categories **5** Notebook categories **5** Reporting views **5** Analytic engine **4** Project templates **4** Budget report **3** Categories **3** Forms public **3** Likes **3** Permissions **3** Data views **2** Estimation **2** Link items **2** Price plans **2** Project email addresses **2** Quote export preferences **2** Quote settings **2** Summary **2** Task comments **2** Tasklists **2** Time approvals **2** Timelogs **2** Timesheets **2** Trashcan **2** Workload **2** Account **1** Account details **1** Custom item record comments **1** Dashboards **1** Features **1** File comments **1** File uploading **1** File version comments **1** Importers **1** Milestone comments **1** Notebook comments **1** Person **1** Project health **1** Project owner **1** Recurring preview **1** Search **1** Site owner **1** Timezones **1** Users **1** Utilization **1**

This index shows a sample of each area. All 737 actions, with their inputs and prices, are in the [catalogue](https://actionlake.com/console/catalogue), which a free sandbox key can search.

Questions

## The Teamwork MCP server, answered.

**Is there a Teamwork MCP server for Claude?**

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 737 Teamwork actions across time tracking, tasks, custom fields and teams, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Teamwork.

**What do I need to connect Teamwork?**

Teamwork API token (used as the Basic username; the password is ignored). Plus your site host. The free call account { op: "connections.requirements", service: "teamwork" } lists exactly what to paste.

**Can an AI agent delete or change things in Teamwork?**

Only if its key allows it, and only with an explicit confirmation. 95 Teamwork actions are destructive, including delete a Task, delete an existing task. and remove a Card. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.

**Will an AI agent use up my Teamwork API limit?**

actionlake paces every call to the limits in the Teamwork service file: 150 calls a minute per connection. Repeated reads are answered from cache (376 Teamwork actions can be), which never reaches Teamwork.

**What does a Teamwork action cost?**

One upstream call, the only unit actionlake bills. A list that pages bills one call per page (737 Teamwork actions page). Cache hits, searches, dry runs and calls Teamwork refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

**Which Teamwork API does it cover?**

The Teamwork.com API v3+v1 at your Teamwork instance's API base URL, which you enter when connecting. It is built from Teamwork's documentation as read on 19 September 2026. 737 actions in 92 areas, each one in the signed service file (version 1.0.0).

**Can I combine Teamwork with my other systems?**

Yes. ask joins Teamwork to ConnectWise PSA or HubSpot CRM on the same customer and returns the answer rather than every row. Teamwork maps crm.company, which 227 other connectors also map.

**Does actionlake keep my Teamwork data, and where?**

actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to an hour, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your Teamwork credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.

**Which AI clients can use it?**

Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.

## More connectors like Teamwork

Shares the most action names with

- [Jira 101](https://actionlake.com/connectors/jira)
- [Basecamp 91](https://actionlake.com/connectors/basecamp)
- [Asana 85](https://actionlake.com/connectors/asana)
- [Wrike 55](https://actionlake.com/connectors/wrike)
- [Shortcut 50](https://actionlake.com/connectors/shortcut)
- [Zoho Projects 47](https://actionlake.com/connectors/zoho-projects)

Joins with, on shared entities

- [Odoo 8](https://actionlake.com/connectors/odoo)
- [Zoho Books 7](https://actionlake.com/connectors/zoho-books)
- [ERPNext (Frappe) 7](https://actionlake.com/connectors/erpnext-frappe)
- [Zoho Invoice 7](https://actionlake.com/connectors/zoho-invoice)
- [Harvest 7](https://actionlake.com/connectors/harvest)
- [FreeAgent 7](https://actionlake.com/connectors/freeagent)

Browse

- [All Work & projects connectors](https://actionlake.com/connectors/category/work-and-projects)
- [All connectors](https://actionlake.com/connectors)
- [How actionlake compares](https://actionlake.com/compare)

actionlake is independent. It is not made or endorsed by Teamwork; the name is the vendor's own. Counts are from the Teamwork service file, version 1.0.0.

## Give your agent Teamwork today.

[Connect Teamwork free](https://actionlake.com/console?start=sandbox) [See pricing](https://actionlake.com/pricing)

Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.

---

Source: https://actionlake.com/connectors/teamwork
More: https://actionlake.com/llms.txt
