Basecamp for AI agents

Basecamp is 37signals' project and team collaboration tool, used to organize to-dos, message boards, documents, and schedules for a project in one shared space. Connect it once through Arc0, and your agent, or Claude, ChatGPT and Cursor, can use it through one MCP endpoint, limited to what each user approved.

Project managementOAuth 2.0MCP + RESTbasecamp.com
AUDIT LOG · BASECAMPPOLICY: acme-support
09:41:07 · claude · u_8f2read
basecamp.get_card
Get a specific card by ID✓ allowed · 212ms
09:41:08 · claude · u_8f2read
basecamp.get_todo
Get To-Do by ID✓ allowed · 164ms
09:41:09 · claude · u_8f2write
basecamp.create_card
Create Card in Column✓ approved · approved by user
09:41:12 · claude · u_8f2destructive
basecamp.delete_chatbot
Delete Chatbot✕ blocked · policy: deny
EVERY BASECAMP CALL, ON THE RECORD
01 · USE CASES

What agents do in Basecamp.

01

Check open to-dos on a project

Get to-do list groups and cards from a card table to see what's still open before a status update.

02

Post a project update

Create a message on a project's message board to share a status update with the team.

03

Close out a finished task

Complete a to-do only after confirming with the assignee that the work is actually done.

02 · ACTIONS

142 Basecamp actions, graded by risk.

Every Basecamp action is tagged read, write or destructive, so one policy covers the whole app and new actions inherit the right default.

read

63

Look things up. Allowed by default.

  • basecamp.get_card
    Get a specific card by ID
  • basecamp.get_todo
    Get To-Do by ID
  • basecamp.get_chats
    Get Chats
  • basecamp.get_inbox
    Get Inbox
  • basecamp.get_people
    Get All People
  • basecamp.get_upload
    Get Upload
  • basecamp.get_chatbot
    Get Chatbot by ID
  • basecamp.get_comment
    Get Comment
  • basecamp.get_message
    Get Message by ID
  • basecamp.get_project
    Get Project
  • basecamp.get_todoset
    Get To-Do Set
  • basecamp.get_webhook
    Get Webhook by ID
  • basecamp.get_campfire
    Get Campfire
  • basecamp.get_document
    Get Document by ID
  • basecamp.get_projects
    Get Projects
  • basecamp.get_schedule
    Get Schedule for Project
+ 47 MORE

write

70

Create and change things. Allow, or ask the user first.

  • basecamp.create_card
    Create Card in Column
  • basecamp.create_todo
    Create To-Do (Deprecated)
  • basecamp.update_card
    Update Card
  • basecamp.update_todo
    Update To-Do
  • basecamp.create_vault
    Create a Vault
  • basecamp.update_vault
    Update Vault Title
  • basecamp.create_upload
    Create Upload in Vault
  • basecamp.post_projects
    Create New Project
  • basecamp.create_chatbot
    Create Chatbot
  • basecamp.post_templates
    Create New Template
  • basecamp.create_document
    Create Document in Vault
  • basecamp.update_document
    Update Document
  • basecamp.update_todolist
    Update To-Do List
  • basecamp.create_card_step
    Create Step in Card
  • basecamp.post_attachments
    Upload File Attachment
  • basecamp.create_chatbot_line
    Create Chatbot Line
+ 54 MORE

destructive

9

Delete, cancel or archive. Ask first, or deny outright.

  • basecamp.delete_chatbot
    Delete Chatbot
  • basecamp.delete_webhooks
    Delete Webhook
  • basecamp.delete_message_type
    Delete Message Type
  • basecamp.delete_campfire_line
    Delete Campfire Line
  • basecamp.delete_buckets_recordings_pin
    Unpin Recording
  • basecamp.delete_buckets_card_tables_columns_on_hold
    Delete Card Table Column On-Hold Section
  • basecamp.trash_project
    Trash Project
  • basecamp.trash_template
    Trash Template
  • basecamp.unsubscribe_current_user
    Unsubscribe Current User from Recording
03 · HOW IT WORKS

Basecamp in three steps.

  1. 01Your users connect BasecampThey sign in to Basecamp on Arc0 Connect, under your brand, and approve the access you ask for.
  2. 02You set the rulesReads run, writes like “create Card in Column” can wait for the user, and “delete Chatbot” can be denied outright.
  3. 03Any agent can actYour agent calls Basecamp through the Arc0 SDK or MCP, and so can Claude, ChatGPT and Cursor. Every call lands on the audit log.
POLICY.TS
await arc0.policies.set('basecamp', {
  read: 'allow',
  write: 'ask',        // create_card
  destructive: 'deny',  // delete_chatbot
})

# Claude Code: the same connection, one URL
$ claude mcp add --transport http arc0 \
    https://mcp.arc0.ai/u/u_8f2
04 · AUTH AND DATA

How Basecamp connects.

Users sign in to Basecamp on Arc0 Connect and approve the scopes you request. Build with Arc0’s Basecamp OAuth app, or bring your own so the Basecamp consent screen names you. Tokens refresh automatically, and you can export them whenever you want.

The same Basecamp connection serves your agent over MCP and your own backend over REST and the proxy, so a user connects once. How Arc0 handles credentials →

AUTH
OAuth 2.0
CREDENTIALS
Per-tenant encrypted vault
MODEL SEES
Results only, never credentials
AUDIT LOG
Every call, on every plan
05 · WORKS WITH

Use Basecamp from any agent.

Claude
ChatGPT
Cursor
Codex
VS Code
OpenAI Agents SDK
Claude Agent SDK
Vercel AI SDK
Mastra
LangGraph
07 · FAQ

Basecamp and Arc0, answered.

Q01

Can I use Basecamp with Claude, ChatGPT or Cursor?

Yes. Connect Basecamp to Arc0 once, then add your Arc0 MCP URL to Claude, ChatGPT, Cursor, Claude Code or any other remote-MCP client. Each assistant only gets the Basecamp actions you allow.

Q02

How do users connect Basecamp?

Users sign in to Basecamp on Arc0 Connect and approve the scopes you request. Build with Arc0’s Basecamp OAuth app, or bring your own so the Basecamp consent screen names you. Tokens refresh automatically, and you can export them whenever you want.

Q03

Which Basecamp actions can my agent take?

142 in total: 63 read, 70 write and 9 destructive, such as “create Card in Column”. Your policies decide which of them each agent may call.

Q04

Can I stop my agent from deleting things in Basecamp?

Yes. Actions like “delete Chatbot” are graded destructive. Set destructive actions to deny, or to ask so the user approves each one, and blocked calls still show up on the audit log.

Q05

Can my own backend call Basecamp too?

Yes. The same Basecamp connection is available over REST and through the Arc0 proxy, so your product and your agent share one connection per user.

Get started

Plug Basecamp into your agent.

Your users connect Basecamp once, under your brand. Your agent gets 142 actions behind your policies, with every call on the record.

Free to build · MCP + REST · Audit log on every plan