# Fix list: Teamwork.com From Anchor Terminal's listing at https://www.anchorterminal.com/tools/teamwork, the October 2026 research run, assessed 8 October 2026. Grade B, 65.9 out of 100. This is everything the published grade says the listing lacks, the biggest possible gain to the total first. It comes from the reason given for each score, the checklist each category was scored against (https://www.anchorterminal.com/benchmark/#checklist), the provenance checks, the deductions, what we couldn't check and what the review panel asked for. A fix counts at the next check, once it's public. For a coding agent working on Teamwork.com: work through the items below in the product, its docs and its public pages. Each category gives the reason for its score, with the points each checklist item earned, and the checklist itself, so the gap is the items that earned less than their points. Change the product, not the wording, and keep a note of what you changed and where it's published. ## 1. Payments & pricing, 30 out of 100, up to 8.8 more on the total Why it scored 30: No x402, MPP or L402 (0). Plan prices are public, Free $0, Basics $9.99 and Accelerate $24.99 a user a month billed annually, with the two larger plans quoted by sales. API calls aren't priced (10). The Free plan covers up to 5 users and 5 projects, and the 14-day trial needs no card (20). A person signs up in a browser and creates the key or approves the OAuth app (0). The checklist (https://www.anchorterminal.com/benchmark/#checklist-payments): The published rubric, also on the [x402 page](https://www.anchorterminal.com/x402/). - 40, a machine payment protocol (x402, MPP or L402) on the tool's own endpoints. 10 to 30 when it covers only some endpoints or only goes through a third party, and the note says which. - 20, per-call or per-unit pricing published without a login. 10 for public plan-only pricing, 0 for "contact sales" or prices behind a login. - 20, a free tier or trial that doesn't need a card. - 20, autonomous onboarding, meaning an agent can get access without a person signing up in a browser (keyless use, x402, a programmatic key API). Payment platforms and agent wallets rarely charge for their own API over a machine protocol, so the first line has steps for them, and the highest one that applies counts. 40 when x402, MPP or L402 runs on all their own endpoints, 30 when it runs on part of their own API, 25 when their merchants can accept one, 20 for running a facilitator, 15 for paying as a buyer, and 0 when the only protocol is their own. Merchant acceptance sits above a facilitator because the platform's own customers can charge agents through it, while a facilitator settles for sellers who wire up the protocol themselves. The counter-argument (a facilitator does more for the protocol as a whole) has a point. Each note says which step applied. Open-source software you run yourself is scored on its hosted or paid option if it has one. A free, self-hosted package with nothing to buy gets 20, 20 and 20 for the last three lines, and 0 to 40 for the first only if it ships a payment protocol. ## 2. Security & auth, 58 out of 100, up to 7.4 more on the total Why it scored 58: OAuth 2.0 authorisation code flow with PKCE (S256) and dynamic client registration, with scopes at product level only (`projects`, `desk`, `spaces`, `chat`). The app login flow guide calls the access token permanent, and personal use is by a per-user API key or username and password over Basic auth. Credentials travel in the `Authorization` header (20 of 30). Every credential acts with its user's permissions. An administrator has to enable MCP for the site, the shipped servers register no delete tools, and the local server has a `-read-only` flag. The hosted server has no documented read-only mode or confirmation step (12 of 20). Task descriptions, comments, tickets and chat messages written by other people reach the model, and no injection guidance was found (3 of 15). An activity tool and a guide to project change history exist. No log of API or MCP calls for the operator was found (8 of 15). security.txt is valid until 17 July 2027 and names security@teamwork.com, the MCP repository has a security policy with a 48-hour acknowledgement, and the security page lists ISO/IEC 27001:2022 and SOC 2 Type 2. No bug bounty or public advisories found (15 of 20). The checklist (https://www.anchorterminal.com/benchmark/#checklist-security): - 0 to 30, the credential model. 30 for OAuth 2.1 with scopes, or scoped and revocable keys with rotation. 20 for plain revocable API keys. 10 for one all-powerful key. 10 off when a secret can travel in a URL query string as a documented option. - 0 to 20, read-only or least-privilege modes, and confirmation or approval for destructive actions. - 0 to 15, prompt-injection posture where the tool returns untrusted content (documented mitigations or guidance). A tool that returns no untrusted content gets 10. - 0 to 15, audit logs or per-call visibility for the operator. - 0 to 20, a security programme. security.txt or a disclosure policy, a bug bounty, SOC 2 or ISO 27001, advisories handled in public. Models are read for retention, whether API data trains models (and whether that's off by default), zero-retention options and certifications. Frameworks for telemetry defaults, approval hooks, guardrails and sandboxing. ## 3. Reliability, 73 out of 100, up to 5.4 more on the total Why it scored 73: Graded on the hosted lines for REST API v3 and the hosted MCP server. status.teamwork.com is a Statuspage site with 22 components, among them Teamwork Projects for the US and EU regions, the Developer Portal and the API docs, though none for the API or the MCP server by name (20). In the 90 days to 8 October 2026 it lists one incident, a 40-minute problem with task creation in Projects in both regions on 24 September, marked with no impact level (20). The pricing page gives the API limit per plan, 150 requests a minute on Free, Basics and Accelerate, 300 on the plan above it and 500 on Enterprise (15). A 429 comes with `X-Rate-Limit-Limit`, `X-Rate-Limit-Remaining` and `X-Rate-Limit-Reset` and the guide says access returns after 60 seconds. No Retry-After header and no idempotency keys were found (8 of 15). No SLA found. The terms promise reasonable endeavours and the security page states a goal of over 99.9 per cent (0). API v3 and MCP server 1.x carry no beta label (10). The checklist (https://www.anchorterminal.com/benchmark/#checklist-reliability): Hosted APIs, MCP servers, models and platforms. - 20, a public status page with component history (Statuspage, Instatus, BetterStack or the vendor's own). - 0 to 30, the incident record for the last 90 days on that page. 30 for a clean record or trivial incidents only, 20 for minor incidents only, 10 for one major outage (an hour or more of a core API down, or errors across the board), 0 for several. 5 when there's no history we could read, and the note says so. - 15, rate limits documented with numbers. - 15, documented 429 or overload handling (Retry-After, backoff guidance), and idempotency keys or safe-retry guidance where writes are involved. - 10, an SLA published for any paid tier. - 10, the surface agents use is generally available, not beta or preview. Local packages, SDKs, frameworks and stdio MCP servers. - 20, installs from an official package with supported runtimes stated. - 25, a public CI and test suite, passing on the default branch. - 0 to 25, open crash or regression issues relative to activity (25 for few and handled, 0 for many, old and unanswered). - 15, semver discipline and breaking changes called out in a changelog. - 15, version 1.0 or later, or declared stable. Protocols are read from their reference implementations, the public facilitators or servers, spec stability and test vectors. ## 4. Agent ergonomics, 68 out of 100, up to 5.2 more on the total Why it scored 68: The generated tool reference lists 225 tools on the main MCP endpoint, 147 of them for Projects, which earns 5. Profile endpoints, 14 named toolsets, a `-read-only` flag on the local server and `verbose=false` on list tools add 9 back, and API v3 has sparse fieldsets (14 of 25). `page` and `pageSize` (default 50, up to 500 on most v3 endpoints), date, status and custom field filters, sorting and sideloading through `include` (20). MCP tools return text errors that name the bad parameter. The API error guide lists six status codes with causes and no body format (12 of 20). Tools carry readOnlyHint, destructiveHint and openWorldHint annotations, and batch tools validate every item before writing. No idempotency keys were found (12 of 20). Creating a task needs a name and a tasklist id. The one official SDK found is for Go (9 of 15). The checklist (https://www.anchorterminal.com/benchmark/#checklist-ergonomics): - 0 to 25, context cost. For MCP, the number and size of the tool definitions (25 for ten or fewer compact tools, 15 for 11 to 30, 5 for more than 30, plus up to 10 back for toolsets, dynamic loading or read-only subsets). For APIs, whether responses can be sized (field selection, limits, summaries). - 20, pagination, filtering and output-size controls. - 20, actionable, documented error responses, codes and messages an agent can recover from. - 20, idempotency or safe retries, and for MCP the `readOnlyHint` and `destructiveHint` annotations. - 15, sensible defaults, few required parameters, and official SDKs in at least two languages. Models are read for tool use, structured output, prompt caching, context length, batch and SDKs. Frameworks for how much code and how many defaults a tool-calling agent with MCP needs. ## 5. Schema & documentation, 72 out of 100, up to 4.6 more on the total Why it scored 72: A Swagger 2.0 file for API v3 downloads from each reference page (319 paths, 430 operations) with no security scheme declared, and every MCP tool has a typed JSON Schema input in the public source (23 of 25). apidocs.teamwork.com/llms.txt returns 404. The main site has an llms.txt about the company and a Markdown pricing page, and the MCP tool reference is Markdown on GitHub (3 of 10). MCP descriptions say when to use a tool and name pitfalls, for example that a workflow from another project is ignored without a warning. API parameter descriptions are one line each (15 of 20). Enums, minimums and maximums and required fields in both, with nullable unions on many MCP inputs (12 of 15). Reference pages show response examples and 400, 403, 404 and 409 responses, while the error guide is brief and has no error body format (10 of 15). The API is versioned v1, v2 and v3 and the MCP server has tagged releases on GitHub, but no changelog for the REST API was found (9 of 15). The checklist (https://www.anchorterminal.com/benchmark/#checklist-schema): APIs and MCP servers. - 25, a machine-readable contract (a public OpenAPI file or similar; for MCP, typed JSON Schema inputs on every tool). - 10, llms.txt or Markdown docs served for agents. - 0 to 20, descriptions that say what a tool is for, when to use it and when not to, read from the tool definitions in the source or the API reference. - 0 to 15, typed inputs with enums, constraints and required fields, and no free-form JSON blobs. - 0 to 15, examples and documented error responses. - 15, versioning and a public changelog. Models are read from the API reference, the OpenAPI file, llms.txt, the structured-output and tool-use docs and the model cards. Frameworks from docs a model can follow, typed interfaces, examples and the API reference. ## 6. Transparency & trust, 80 out of 100, up to 1.8 more on the total Made of editorial 63, provenance 96. Why it scored 80: Closed service under terms naming Teamwork Crew Limited, with the MCP server, the Go SDK and the token helper open on GitHub and the MCP server under MIT (18 of 30). The privacy notice, last updated 19 August 2024, sends customer data to the DPA. The DPA and the terms agree that data is deleted after termination unless a copy is requested within 10 days, and the AI policy says customer data isn't used to train models. No retention periods are given (20 of 30). No written deprecation policy. The removal of localhost redirect URIs for dynamically registered OAuth apps was announced on 16 June 2026 for 1 August 2026 with Deprecation and Sunset headers, and the paging guide dates the end of total record counts to 6 January 2025 (12 of 20). The DPA lists ten sub-processors by function without locations, the AI list names AWS, OpenAI, Anthropic and Google with locations given as varying, and the security page says hosting is on AWS in the US and the EU (13 of 20). The checklist (https://www.anchorterminal.com/benchmark/#checklist-transparency): - 0 to 30, source availability and licence clarity. 30 for open source under an OSI licence, 15 for closed with clear terms, 0 for unclear terms. - 0 to 30, data handling and retention statements that agree with each other (privacy policy, DPA, retention periods, subprocessors). - 0 to 20, a deprecation policy or notices with dates. - 0 to 20, telemetry disclosed with an opt-out (local software), or subprocessors and data locations disclosed (hosted). The other half of Transparency and trust is the provenance score, computed from checked facts (below). The category score is the mean of the two. Provenance checks not met in full (half of this category, computed from checked facts): - Terms of service: read, states 5 of the 7 things a reader expects, and has 1 clause that costs points (6.3 of 10) - Privacy policy: read, states 7 of the 8 things a reader expects (9.3 of 10) ## 7. Maintenance & community, 88 out of 100, up to 1.1 more on the total Why it scored 88: MCP server v1.51.1 was tagged on 6 October 2026 (30). The repository has 57 tags between 27 July and 6 October 2026 (20). The GitHub API shows 3 open issues, and a bug report of 6 October (#581) was fixed and released the same day (20 of 25). The repository's `server.json` names `com.teamwork/mcp`, but the official MCP registry timed out on both attempts, so the entry is unchecked. The Go SDK `twapi-go-sdk` was last pushed on 1 October 2026 and is the only official SDK found (10 of 15). A test workflow runs on every push, and dependency updates are merged within days (8 of 10). The checklist (https://www.anchorterminal.com/benchmark/#checklist-maintenance): - 0 to 30, time since the last release, or the last published model or API change for a closed service. 30 within 30 days, 20 within 90, 10 within 180, 0 older. - 20, at least three releases or dated changelog entries in the last 90 days. - 0 to 25, responsiveness. Issues and pull requests answered on GitHub (the open issues and how recent the replies are). For closed services, a public changelog and a support or community channel that answers, 0 to 15. - 15, presence in the official MCP registry under a verified namespace (MCP servers), or current official SDKs (APIs and models). - 10, package health, current dependencies and CI. Models are read for deprecation notice periods and model churn rather than release counts. ## What we couldn't check What we couldn't read counted as absent. Publishing it on a page a plain HTTP fetch can read (not only in a browser) lets the next check count it. - unchecked: the official MCP registry. registry.modelcontextprotocol.io timed out on both attempts, so whether `com.teamwork/mcp` from the repository's `server.json` is published there was not established. - unchecked: the live tool list. tools/list on the hosted server answers 401 without a token, so the count of 225 and the annotations are read from the generated tool reference and the source at v1.51.1. - unchecked: whether the Free plan includes the MCP server and webhooks. The webhooks guide says webhooks need a paid plan, and the pricing page lists an API rate limit for Free. - unchecked: whether OAuth access tokens can be revoked by the user or expire. The app login flow guide calls the token permanent. - The rate limit guide still names the Grow and Scale plans (150 and 300 a minute), which the pricing page no longer lists. The listing uses the pricing page's figures. - The lead named Teamwork Crew Ltd. The terms and DPA name Teamwork Crew Limited, registered number 313652, trading as Teamwork.com. The lead gave only the REST API. Teamwork also has an official MCP server, which the listing grades alongside the API. - www.teamwork.com/llms.txt has a section of instructions addressed to AI assistants on how to describe the company. Recorded as a fact, with no deduction, and not acted on. - No REST API changelog, SLA, bug bounty or audit log of API calls was found in the pages read. The trust reports behind the security page's Learn more links were not read. - Terms carry no visible version date. The privacy notice says it was last updated on 19 August 2024. ## Weaknesses - OAuth scopes are per product only (`projects`, `desk`, `spaces`, `chat`), and the token from the app login flow is described as permanent - The main MCP endpoint loads every tool. The generated tool reference lists 225, 147 of them for Projects - 429 responses carry `X-Rate-Limit-Reset` but no Retry-After, and no idempotency keys were found - No SLA found. The terms promise reasonable endeavours and the security page states a 99.9 per cent uptime goal - No changelog for the REST API was found, and the docs site has no llms.txt ## What costs an agent a turn today The notes we give agents before they call it. Each one is a workaround an agent shouldn't need. - Use a profile endpoint such as https://mcp.ai.teamwork.com/project-manager. The base URL loads every tool across Projects, Desk, Spaces and Chat. - Ask a site administrator to enable MCP under Settings, AI before connecting. - Build REST URLs from `installation.apiEndPoint` in the token response. Sites live at {site}.teamwork.com (US) or {site}.eu.teamwork.com (EU). - Stay under 150 requests a minute on Free, Basics and Accelerate. The limit is shared by the whole site. On 429, wait until `X-Rate-Limit-Reset`. - Pass `verbose=false` to `list_*` tools to get ids and names only, and use `twprojects-create_tasks` for many tasks in one call. ## When it's done Send what changed and where it's published as a dispute (https://www.anchorterminal.com/builders/#disputes, or `POST https://www.anchorterminal.com/api/v1/contact` with `"kind": "dispute"`). Disputes are answered in public, and the listing is checked again by the same checklist. Paying for an audit or a listing claim changes nothing here.