Connect your AI to Basecamp

Give Claude, ChatGPT, Mistral or any MCP client secure access to Basecamp — no official Basecamp MCP server required. Proxoria turns Basecamp's API into tools your AI can use, with per-user authentication and write actions gated by your approval.

What your AI can do with Basecamp

Once connected, these tools appear automatically in your AI assistant:

  • list_projectsread-only

    List the account's active projects.

  • get_projectread-only

    Get a single project by id (its tools/docks: message board, to-dos, etc.).

  • list_peopleread-only

    List all people visible to the account.

  • get_personread-only

    Get a single person by id.

  • list_todolistsread-only

    List the to-do lists of a project. Resolves the project's to-do set automatically; errors if to-dos are not enabled on that project. Use the returned list ids with list_todos and create_todo.

  • list_todosread-only

    List the to-dos of a to-do list. Pending by default; pass completed=true for the finished ones.

  • create_todowrite · needs approval

    Create a to-do in a to-do list, optionally with a due date and assignees. Writes to Basecamp, so it goes through the confirmation guardrail when enabled.

  • complete_todowrite · needs approval

    Mark a to-do as completed. Writes to Basecamp, so it goes through the confirmation guardrail when enabled.

  • get_my_profileread-only

    Get the profile of the authenticated user.

  • get_accountread-only

    Get the Basecamp account itself: name, plan limits, logo.

  • list_project_peopleread-only

    List the active people on one project (list_people covers the whole account).

  • get_out_of_officeread-only

    Get a person's out-of-office status. When it is off, enabled is false and no dates are returned.

  • set_out_of_officewrite · needs approval

    Turn on (or replace) a person's out-of-office period. People can set their own; setting someone else's needs an admin on a Pro Pack account.

  • disable_out_of_officewrite · needs approval

    Turn off a person's out-of-office status.

  • get_todosetread-only

    Get a project's to-do set — the container of its to-do lists, with completion ratio and counts. Its id is in the project's dock (name 'todoset').

  • get_hill_chartread-only

    Get the hill chart of a to-do set: which to-do lists are tracked and where each sits on the hill (figuring it out vs. making it happen).

  • get_todolistread-only

    Get one to-do list by id: description, completion ratio, and the URLs of its to-dos and groups. Also answers for a to-do list group.

  • create_todolistwrite · needs approval

    Create a to-do list in a project's to-do set.

  • update_todolistwrite · needs approval

    Rename a to-do list (or group) or change its description. Only the fields you pass change; the rest is kept.

  • reposition_todolistwrite · needs approval

    Move a to-do list within its to-do set. Position 1 puts it above every other incomplete list; completed lists are not counted.

  • list_todolist_groupsread-only

    List the groups (sections) inside a to-do list.

  • create_todolist_groupwrite · needs approval

    Add a group (a named section) to a to-do list.

  • reposition_todolist_groupwrite · needs approval

    Move a group within its to-do list.

  • get_todoread-only

    Get one to-do: assignees, dates, completion, its list, and its first 100 subtasks.

  • create_loose_todowrite · needs approval

    Create a to-do directly in a project's to-do set, outside any to-do list. To add one to a list, use create_todo.

  • update_todowrite · needs approval

    Change a to-do: text, notes, assignees, completion subscribers, dates. Only the fields you pass change; pass dueOn or startsOn as null to clear a date.

  • reposition_todowrite · needs approval

    Move a to-do within its list, or into another list of the same project by passing todolistId.

  • uncomplete_todowrite · needs approval

    Reopen a completed to-do.

  • list_my_assignmentsread-only

    What is on my plate: my active assignments (to-dos, cards, steps), split into priorities (Up Next) and non_priorities. Not paginated.

  • list_my_completed_assignmentsread-only

    My completed assignments (archived and trashed items excluded).

  • list_my_due_assignmentsread-only

    My assignments by due date: overdue (the default), today, tomorrow, and so on.

  • prioritize_assignmentwrite · needs approval

    Add one of my assignments to Up Next. For a card step listed under its card, pass the entry's priority_recording_id.

  • deprioritize_assignmentwrite · needs approval

    Take an assignment out of Up Next. Removing one that is not there is harmless.

  • move_prioritywrite · needs approval

    Reorder Up Next: move an already-prioritized assignment to a new position.

  • list_messagesread-only

    List the messages on a project's message board, newest first by default.

  • get_messageread-only

    Get one message with its full content.

  • create_messagewrite · needs approval

    Post a message on a message board. Without status 'active' it is saved as a draft that notifies no one. Without subscriptions, everyone on the project is notified.

  • update_messagewrite · needs approval

    Edit a message's subject, body or type, or publish a draft with status 'active'.

  • list_message_typesread-only

    List a project's message types (Announcement, FYI…) for create_message.

  • get_message_typeread-only

    Get one message type of a project.

  • list_commentsread-only

    List the comments on anything in Basecamp — a to-do, message, document, card, upload, schedule entry… — by its id.

  • get_commentread-only

    Get one comment.

  • create_commentwrite · needs approval

    Comment on anything in Basecamp (to-do, message, document, card…). Everyone subscribed to that item is notified.

  • update_commentwrite · needs approval

    Replace the text of a comment.

  • list_campfiresread-only

    List every Campfire (project chat) the user can see across the account.

  • get_campfireread-only

    Get one Campfire.

  • list_campfire_linesread-only

    Read the lines of a Campfire chat.

  • get_campfire_lineread-only

    Get one line of a Campfire chat.

  • post_campfire_linewrite · needs approval

    Say something in a Campfire chat, as the connected user. Plain text unless rich is true.

  • update_campfire_linewrite · needs approval

    Edit a Campfire line. Only its author can, only text lines can be edited, and the line becomes rich text.

  • list_documentsread-only

    List the documents in a Docs & Files folder (vault).

  • get_documentread-only

    Get one document with its full content.

  • list_uploadsread-only

    List the uploaded files in a Docs & Files folder (vault), with download URLs.

  • get_google_documentread-only

    Get a linked Google Workspace document (its title, URL and type).

  • get_scheduleread-only

    Get a project's schedule (whether it shows due dates of to-dos and cards).

  • list_schedule_entriesread-only

    List the events on a project's schedule.

  • get_schedule_entryread-only

    Get one schedule event. For a recurring event, use get_schedule_entry_occurrence to target a given day.

  • get_schedule_entry_occurrenceread-only

    Get the occurrence of a recurring schedule event on a given day.

  • create_schedule_entrywrite · needs approval

    Add an event to a project's schedule. For an all-day event pass dates (YYYY-MM-DD) and allDay; otherwise ISO 8601 timestamps.

  • update_schedule_entrywrite · needs approval

    Change a schedule event. Only the fields you pass change. A recurring event cannot be changed through the API.

  • get_upcoming_scheduleread-only

    Everything coming up across all projects between two dates: events, occurrences of recurring events, and to-dos, cards and steps that fall due.

  • get_card_tableread-only

    Get a card table (kanban board) with its columns and their card counts. Its id is in the project's dock (name 'kanban_board').

  • move_card_columnwrite · needs approval

    Reorder the columns of a card table. Position counts regular columns only (Triage, Not Now and Done are ignored).

  • create_card_columnwrite · needs approval

    Add a column to a card table.

  • get_card_columnread-only

    Get one column of a card table.

  • update_card_columnwrite · needs approval

    Rename a card table column or change its description.

  • set_card_column_colorwrite · needs approval

    Change the color of a card table column.

  • enable_card_column_on_holdwrite · needs approval

    Add an On hold section to a card table column.

  • disable_card_column_on_holdwrite · needs approval

    Remove the On hold section of a card table column.

  • watch_card_columnwrite · needs approval

    Start watching a card table column: get notified when cards land in it.

  • unwatch_card_columnwrite · needs approval

    Stop watching a card table column.

  • create_card_table_wormholewrite · needs approval

    Link a card table to a column of another card table (possibly in another project). The returned id works as a column for move_card: that is how a card changes project.

  • list_cardsread-only

    List the cards in a card table column.

  • get_cardread-only

    Get one card with its content, assignees, due date and steps.

  • create_cardwrite · needs approval

    Create a card in a card table column.

  • update_cardwrite · needs approval

    Change a card's title, body, due date or assignees. Only the fields you pass change; dueOn null clears the date, assigneeIds [] removes everyone.

  • move_cardwrite · needs approval

    Move a card to another column. Passing a wormhole id as the column sends the card to the other card table; that move completes asynchronously and the card gets a new id.

  • create_card_stepwrite · needs approval

    Add a step (checklist item) to a card.

  • update_card_stepwrite · needs approval

    Change a card step's title, due date or assignees; the rest is kept.

  • set_card_step_completionwrite · needs approval

    Tick or untick a card step.

  • reposition_card_stepwrite · needs approval

    Move a step within its card. Position 0 is the first step.

  • list_client_approvalsread-only

    List the approvals requested from clients on a project.

  • get_client_approvalread-only

    Get one client approval with its status and responses.

  • list_client_correspondencesread-only

    List the messages exchanged with clients on a project.

  • get_client_correspondenceread-only

    Get one client correspondence.

  • list_client_repliesread-only

    List the client replies to a correspondence or an approval.

  • get_client_replyread-only

    Get one client reply.

  • list_gaugesread-only

    Project health at a glance: the gauge of every project, riskiest (red) first.

  • list_gauge_needlesread-only

    The history of a project's gauge: every progress update, newest first.

  • get_gauge_needleread-only

    Get one progress update of a project gauge.

  • create_gauge_needlewrite · needs approval

    Record a progress update on a project's gauge: position 0-100 and a color. Notifies nobody unless notify is set.

  • update_gauge_needlewrite · needs approval

    Rewrite the description of a gauge update. Position and color cannot change: record a new update instead.

  • set_project_gaugewrite · needs approval

    Turn a project's gauge on or off. Project admins only.

  • get_inboxread-only

    Get a project's Email Forwards inbox.

  • list_forward_repliesread-only

    List the replies to an email forwarded into Basecamp.

  • get_forward_replyread-only

    Get one reply to a forwarded email.

  • list_lineup_markersread-only

    List the account-wide markers shown on the Lineup (key dates).

  • create_lineup_markerwrite · needs approval

    Put a marker (a named date) on the Lineup, visible to the whole account.

  • update_lineup_markerwrite · needs approval

    Rename or move a Lineup marker.

  • get_my_noteread-only

    Read my personal notebook in Basecamp (empty until something is written).

  • update_my_notewrite · needs approval

    Replace the content of my personal notebook. Basecamp keeps the previous versions.

  • get_my_notificationsread-only

    My Hey! menu: unread notifications (up to 100), read ones (page by page, 50 each) and bubble-ups. Each item's readable_sgid feeds mark_notifications_read.

  • list_my_bubble_upsread-only

    My bubble-ups: items I asked to see again, current ones then scheduled ones.

  • mark_notifications_readwrite · needs approval

    Mark notifications as read, by the readable_sgid of each (at most 500).

  • list_my_question_remindersread-only

    The check-in questions still waiting for my answer.

  • get_questionnaireread-only

    Get a project's Automatic Check-ins tool.

  • list_questionsread-only

    List the check-in questions of a project.

  • get_questionread-only

    Get one check-in question with its schedule.

  • create_questionwrite · needs approval

    Create a recurring check-in question ("What did you work on today?") that Basecamp asks the project's people on a schedule.

  • update_questionwrite · needs approval

    Change the wording or the schedule of a check-in question.

  • pause_questionwrite · needs approval

    Pause a check-in question: Basecamp stops asking it.

  • resume_questionwrite · needs approval

    Resume a paused check-in question.

  • update_question_notification_settingswrite · needs approval

    My notification settings for a check-in question: alert on each answer, and whether the digest lists who has not answered.

  • list_answersread-only

    Read the answers to a check-in question, optionally for one day or one person.

  • get_answerread-only

    Get one answer to a check-in question.

  • list_question_answerersread-only

    List the people who have answered a check-in question.

  • list_answers_by_personread-only

    Every answer one person gave to a check-in question.

  • create_answerwrite · needs approval

    Answer a check-in question as the connected user.

  • update_answerwrite · needs approval

    Rewrite an answer to a check-in question; its day is kept unless given.

  • list_assignable_peopleread-only

    Everyone who can be assigned to-dos, to then look up their assignments.

  • get_assigned_todosread-only

    The pending to-dos assigned to one person, grouped by project or by due date.

  • get_overdue_todosread-only

    All overdue to-dos across projects, grouped by lateness: under a week, over a week, over a month, over three months.

  • get_progress_reportread-only

    The account-wide activity feed: latest events across every project.

  • get_project_timelineread-only

    The activity feed of one project.

  • get_person_progressread-only

    What one person has been doing: their activity across projects.

  • list_templatesread-only

    List the project templates, most recent first.

  • get_templateread-only

    Get one project template.

  • create_templatewrite · needs approval

    Create an empty project template.

  • update_templatewrite · needs approval

    Rename a project template or change its description.

  • create_project_from_templatewrite · needs approval

    Start a new project from a template. It is built in the background: poll get_project_construction until its status is completed.

  • get_project_constructionread-only

    Check a project being built from a template; once completed it carries the new project. Poll at most once a second.

  • get_timesheet_reportread-only

    Time logged across the whole account. Without dates, Basecamp returns the last month.

  • get_project_timesheetread-only

    Time logged on a project, whether against the project itself or its to-dos, cards and messages (each entry's parent says which).

  • get_recording_timesheetread-only

    Time logged against one item: a to-do, card, message, document…

  • get_timesheet_entryread-only

    Get one timesheet entry.

  • create_timesheet_entrywrite · needs approval

    Log time against an item (to-do, card, message…). For time on the project itself, use the id of the project's timesheet (the parent of its project-level entries).

  • update_timesheet_entrywrite · needs approval

    Correct a timesheet entry; only the fields you pass change.

  • searchread-only

    Full-text search across everything the user can see in Basecamp, with filters by type, project, author and period.

Example prompts

Just ask your AI in plain language — it picks the right Basecamp tool:

  • “List the account's active projects — from Basecamp, in plain language.”
  • “Get a single project by id (its tools/docks: message board, to-dos, etc.) — from Basecamp, in plain language.”
  • “List all people visible to the account — from Basecamp, in plain language.”
  • “Get a single person by id — from Basecamp, in plain language.”

How it works

  1. Create your Proxoria account and add your MCP endpoint to Claude or ChatGPT.
  2. Connect Basecamp with a secure OAuth connection — each user connects their own account, credentials encrypted at rest.
  3. Your AI instantly gets the Basecamp tools. Write actions wait for your approval in the dashboard before anything changes.

Frequently asked questions

Does Basecamp have an official MCP server?
You don't need one. Proxoria exposes Basecamp to your AI through the Model Context Protocol, so you can use it from Claude, ChatGPT, Mistral or any MCP-compatible client — no official Basecamp MCP server required.
What can my AI do with Basecamp through Proxoria?
It gets 138 tools: list_projects, get_project, list_people, get_person, list_todolists, list_todos, create_todo, complete_todo, get_my_profile, get_account, list_project_people, get_out_of_office, set_out_of_office, disable_out_of_office, get_todoset, get_hill_chart, get_todolist, create_todolist, update_todolist, reposition_todolist, list_todolist_groups, create_todolist_group, reposition_todolist_group, get_todo, create_loose_todo, update_todo, reposition_todo, uncomplete_todo, list_my_assignments, list_my_completed_assignments, list_my_due_assignments, prioritize_assignment, deprioritize_assignment, move_priority, list_messages, get_message, create_message, update_message, list_message_types, get_message_type, list_comments, get_comment, create_comment, update_comment, list_campfires, get_campfire, list_campfire_lines, get_campfire_line, post_campfire_line, update_campfire_line, list_documents, get_document, list_uploads, get_google_document, get_schedule, list_schedule_entries, get_schedule_entry, get_schedule_entry_occurrence, create_schedule_entry, update_schedule_entry, get_upcoming_schedule, get_card_table, move_card_column, create_card_column, get_card_column, update_card_column, set_card_column_color, enable_card_column_on_hold, disable_card_column_on_hold, watch_card_column, unwatch_card_column, create_card_table_wormhole, list_cards, get_card, create_card, update_card, move_card, create_card_step, update_card_step, set_card_step_completion, reposition_card_step, list_client_approvals, get_client_approval, list_client_correspondences, get_client_correspondence, list_client_replies, get_client_reply, list_gauges, list_gauge_needles, get_gauge_needle, create_gauge_needle, update_gauge_needle, set_project_gauge, get_inbox, list_forward_replies, get_forward_reply, list_lineup_markers, create_lineup_marker, update_lineup_marker, get_my_note, update_my_note, get_my_notifications, list_my_bubble_ups, mark_notifications_read, list_my_question_reminders, get_questionnaire, list_questions, get_question, create_question, update_question, pause_question, resume_question, update_question_notification_settings, list_answers, get_answer, list_question_answerers, list_answers_by_person, create_answer, update_answer, list_assignable_people, get_assigned_todos, get_overdue_todos, get_progress_report, get_project_timeline, get_person_progress, list_templates, get_template, create_template, update_template, create_project_from_template, get_project_construction, get_timesheet_report, get_project_timesheet, get_recording_timesheet, get_timesheet_entry, create_timesheet_entry, update_timesheet_entry, search. For example, list the account's active projects.
Is the Basecamp connector read-only?
No — it can also make changes. Write actions go through Proxoria's confirmation guardrail by default: your AI proposes them, and you approve each one from your dashboard before anything is written to Basecamp.
How do I connect Basecamp to my AI?
Create a Proxoria account, connect Basecamp with a secure OAuth connection, and add your Proxoria MCP endpoint to Claude or ChatGPT. Your AI instantly gains the Basecamp tools.

Ready to connect Basecamp to your AI?

Set it up in minutes — no code, secure by default.

Get started free

About Proxoria. Proxoria connects AI assistants — Claude, ChatGPT, Mistral and any Model Context Protocol (MCP) client — to the business apps you already use, turning each app's API into tools your AI can call, with per-user authentication and write actions gated by human approval.