# Basecamp: L4 · Runs on its own

As of 2 Oct 2026, an AI agent gets into Basecamp on its own and does 100% of the core work.

Source: https://agentdrives.com/tools/basecamp?via=md · driven 2 Oct 2026 by AgentDrives's agent · Same level in 2 drives in a row · Rules of 15 Oct 2026 (https://agentdrives.com/method/rules?via=md) · license CC BY 4.0

Gets in on its own at L4 · Runs on its own: a plain form post signed up free, and no checkpoint stopped our agent. Browser steps stayed limited to the human parts: typing an emailed login code and approving the OAuth device code, which needs a logged-in session. From there the official CLI and the REST API covered the core work, from listing projects to creating one; the built-in MCP server is documented but wasn't shown doing the work. Paying still means filling a card in on an in-app plans page, and cancelling is one button with no retention flow: both web-only, and the trial plan our agent used needed no card at all.

_Written and checked by our agents from this drive's record. How we write: https://agentdrives.com/method?via=md#notes_

L4 · Runs on its own: An agent gets in on its own, does at least 80% of the core work and can stop paying on its own: it cancels any plan it started, or there is nothing to cancel. Whether it can also remove what it made shows next to the level.

- Find: Some docs for agents (An OpenAPI and an MCP server)
- Access: Sign-up in a browser
- Use: 100% of the work
- Pay: Reaches the checkout (Stopped at the card form)
- Leave: Leaves on its own (Cancels on its own, deletes its account)
- Ways in: Sign-up in a browser, 9 of 9 core tasks
- Next: pay without a person

## Level history

- 1 Oct 2026: L4 · Runs on its own
- 2 Oct 2026: L4 · Runs on its own

## Part scores

- Agent-ready setup: llms.txt not found, OpenAPI found, MCP server found, CLI found
- Not measured in this drive: Holds up, Docs match

## Who gets in

- Agents on a server: Get in on their own.
- Signed agents: The sign-up page opens.
- Agents in a person's browser: Not measured yet.

Sign-up page checked 13 Oct 2026. Signed agents: the ones Cloudflare verifies.

## Checkpoints

- **Docs**: Headless: basecamp.com/agents links the official CLI (with agent skill and built-in MCP server), the SDKs (openapi.json 3.1, 278 operations) and the bc3-api reference; OAuth metadata at /.well-known. No llms.txt.
- **Sign up**: Headless: The public free-plan sign-up form (app.basecamp.com/signup/account) accepted a plain HTTP form POST from our signed agent and redirected straight into the new account. hCaptcha is loaded on the page but no challenge was served.
- **Verify**: In a browser: Sign-up needs no email verification. The first password login asks for a 6-character code sent by email; we read it headless from our inbox and typed it into the login page in the browser.
- **Key**: In a browser: Documented route: `basecamp auth login --device-code` (OAuth device flow). Approving the code needs a logged-in browser session and a confirmation checkbox. Each approval gave a token for only the one account picked on the page.
- **First call**: Headless: basecamp projects list --json and GET https://3.basecampapi.com/[redacted]/projects.json both 200.
- **First action**: Headless: POST /projects.json created a project (after trashing the auto-made one: Free allows 1 project; the limit returns 507).
- **Pay**: In a browser: No 402, x402, MPP, L402, UCP or billing API, CLI or MCP tool. x402./mpp./agents. subdomains have no DNS. Basecamp is not listed in the x402 Bazaar, mpp.dev or projects.dev. You upgrade on an in-app page (Adminland -> plans -> card number, expiry, CVV and billing address -> 'Buy Basecamp'). An agent holding a card could fill it in. This was not submitted (no card), so 3DS behaviour is unknown. 30-day trials of paid plans need no card.
- **Cancel**: In a browser: Adminland -> 'Cancel this account' -> one confirm button; no retention flow. There is no API or CLI route. Done for the no-card Pro trial account, and the API then returned 404.
- **Delete**: In a browser: Records were deleted via the API (all 204). Both accounts were cancelled in the web UI (data deleted within 30 days, per the page). The Basecamp ID (login) remains, and Launchpad shows no self-serve option to delete it.

## Does Basecamp have an MCP server, and can an agent connect to it?

Yes. Basecamp has an official MCP server. The server runs on the agent's own machine.

A new agent can get in on its own: in the drive of 2 Oct 2026, our agent signed up, verified and got its key without a person. Through the MCP server, 1 of our agent's 1 attempt worked.

## How does an AI agent get a Basecamp API key?

In the drive of 2 Oct 2026, our agent got its Basecamp API key in a browser, without a person. Documented route: `basecamp auth login --device-code` (OAuth device flow). Approving the code needs a logged-in browser session and a confirmation checkbox. Each approval gave a token for only the one account picked on the page.

## Paying the agent way

Reaches the checkout: stopped at the card form.

No card needed to start.

What would let agents pay on their own:
- Accept x402 or MPP on your API: Answer an unpaid call with 402 and a payment challenge, so an agent pays per call or buys credits without an account or a card.
- List your plans on Stripe Projects: Agents buy a plan with `stripe projects add`, paid with a token under a spend cap the owner sets (projects.dev).
From the drive of 2 Oct 2026.

## What an agent can do

- Sign up for the free plan with a plain HTTP form post
- Create a project and turn on its tools (Card Table, Check-ins, Email Forwards)
- Create to-do lists and to-dos with assignees, due dates and subtasks; complete and reopen them
- Post messages and comments, chat in Campfire, boost posts
- Create cards and move them across Card Table columns
- Add calendar events and read them back, also via the project's iCal feed
- Track to-do lists on a Hill Chart (moving the dot needs the web UI)
- Upload files, make folders and documents
- Set up automatic check-in questions
- Read reports, Everything views, My Assignments, search, backlinks
- Register webhooks and inspect their delivery log
- Add teammates, rename the account, set out-of-office
- On a no-card Pro trial: create templates, build projects from them, log time, upload a logo
- Drive all of it through the official CLI or its built-in MCP server

## What it cannot do

- Get an API token without a browser: The device-flow code must be approved on a logged-in web page; there is no self-serve agent client registration (the client_credentials 'agent' principal is created inside Basecamp)
- Move a Hill Chart dot via API: Only track/untrack and read are documented; the web UI slider works
- Send a Ping (1:1 chat): No ping endpoint in bc3-api, the CLI or MCP
- Receive an email forward headless: The inbox API does not expose the forwarding address; forwards can only be read
- Upgrade, cancel or delete the account via API: No billing or account-lifecycle endpoints; the web UI only
- Delete the Basecamp ID (login): No self-serve option seen on Launchpad

## Tips for the owner

1. Let agents get a token without a browser
2. Make the device-approval account scope match its wording
3. Add a billing and cancellation API
4. Expose pings and Hill Chart positions in the API
5. Return a plan reason on plan-gated 403s
6. Publish llms.txt and fix the MCP tool count in the README

Is this your product? Claim it free and reply next to the result, or get a Drive ($49) for your private report: https://agentdrives.com/pricing?via=md#drive. Fixed something? Order a Drive ($49) any time, or the Monthly drive ($29/month).

## Also in Project management

- [Plane](https://agentdrives.com/tools/plane.md?via=md): L4 · Runs on its own · [Basecamp vs Plane](https://agentdrives.com/compare/basecamp-vs-plane?via=md)
- [GitHub](https://agentdrives.com/tools/github.md?via=md): L4 · Runs on its own · [Basecamp vs GitHub](https://agentdrives.com/compare/basecamp-vs-github?via=md)
- [Shortcut](https://agentdrives.com/tools/shortcut.md?via=md): L4 · Runs on its own · [Basecamp vs Shortcut](https://agentdrives.com/compare/basecamp-vs-shortcut?via=md)
- [monday.com](https://agentdrives.com/tools/monday.md?via=md): L3 · Does the work · [Basecamp vs monday.com](https://agentdrives.com/compare/basecamp-vs-monday?via=md)
- [Asana](https://agentdrives.com/tools/asana.md?via=md): L1 · Needs a person · [Basecamp vs Asana](https://agentdrives.com/compare/asana-vs-basecamp?via=md)
- [ClickUp](https://agentdrives.com/tools/clickup.md?via=md): L1 · Needs a person · [Basecamp vs ClickUp](https://agentdrives.com/compare/basecamp-vs-clickup?via=md)
- [Jira](https://agentdrives.com/tools/atlassian.md?via=md): L1 · Needs a person · [Basecamp vs Jira](https://agentdrives.com/compare/atlassian-vs-basecamp?via=md)
- [Linear](https://agentdrives.com/tools/linear.md?via=md): L1 · Needs a person · [Basecamp vs Linear](https://agentdrives.com/compare/basecamp-vs-linear?via=md)
- [Teamwork.com](https://agentdrives.com/tools/teamwork.md?via=md): L1 · Needs a person · [Basecamp vs Teamwork.com](https://agentdrives.com/compare/basecamp-vs-teamwork?via=md)
- [Trello](https://agentdrives.com/tools/trello.md?via=md): L1 · Needs a person · [Basecamp vs Trello](https://agentdrives.com/compare/basecamp-vs-trello?via=md)
- [Wrike](https://agentdrives.com/tools/wrike.md?via=md): L1 · Needs a person · [Basecamp vs Wrike](https://agentdrives.com/compare/basecamp-vs-wrike?via=md)

## Tips for agent builders

- Use the official CLI (`basecamp ... --json`) or `basecamp mcp`. Errors come back with a stable `code` and `retryable`, and an unknown MCP action lists the valid ones.
- Run `basecamp auth login --device-code` and approve the code once in a logged-in browser. Pick the right account on that page: the token only works for that one.
- `basecamp mcp` exits unless BASECAMP_ACCOUNT_ID (or config) is set.
- The Free plan allows 1 project and sign-up already creates one: trash it (DELETE /projects/{id}.json) or POST /projects.json returns 507.
- Request bodies are often nested: {"question":{...}}, {"boost":{...}}, {"project":{...}}. A flat body gives a bare 422 with no field detail.
- PUT replaces omitted fields: updating a document without `title` resets it to 'Untitled'.
- Paths are flat (/todos/{id}.json) with /buckets/{project}/ aliases. Forwards are at /inboxes/{id}/inbox_forwards.json.
- Paid features (templates, time tracking, logo) are available on a no-card 30-day trial.
