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-onlyList the account's active projects.
get_projectread-onlyGet a single project by id (its tools/docks: message board, to-dos, etc.).
list_peopleread-onlyList all people visible to the account.
get_personread-onlyGet a single person by id.
list_todolistsread-onlyList 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-onlyList the to-dos of a to-do list. Pending by default; pass completed=true for the finished ones.
create_todowrite · needs approvalCreate 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 approvalMark a to-do as completed. Writes to Basecamp, so it goes through the confirmation guardrail when enabled.
get_my_profileread-onlyGet the profile of the authenticated user.
get_accountread-onlyGet the Basecamp account itself: name, plan limits, logo.
list_project_peopleread-onlyList the active people on one project (list_people covers the whole account).
get_out_of_officeread-onlyGet a person's out-of-office status. When it is off, enabled is false and no dates are returned.
set_out_of_officewrite · needs approvalTurn 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 approvalTurn off a person's out-of-office status.
get_todosetread-onlyGet 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-onlyGet 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-onlyGet 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 approvalCreate a to-do list in a project's to-do set.
update_todolistwrite · needs approvalRename a to-do list (or group) or change its description. Only the fields you pass change; the rest is kept.
reposition_todolistwrite · needs approvalMove 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-onlyList the groups (sections) inside a to-do list.
create_todolist_groupwrite · needs approvalAdd a group (a named section) to a to-do list.
reposition_todolist_groupwrite · needs approvalMove a group within its to-do list.
get_todoread-onlyGet one to-do: assignees, dates, completion, its list, and its first 100 subtasks.
create_loose_todowrite · needs approvalCreate 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 approvalChange 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 approvalMove a to-do within its list, or into another list of the same project by passing todolistId.
uncomplete_todowrite · needs approvalReopen a completed to-do.
list_my_assignmentsread-onlyWhat 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-onlyMy completed assignments (archived and trashed items excluded).
list_my_due_assignmentsread-onlyMy assignments by due date: overdue (the default), today, tomorrow, and so on.
prioritize_assignmentwrite · needs approvalAdd 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 approvalTake an assignment out of Up Next. Removing one that is not there is harmless.
move_prioritywrite · needs approvalReorder Up Next: move an already-prioritized assignment to a new position.
list_messagesread-onlyList the messages on a project's message board, newest first by default.
get_messageread-onlyGet one message with its full content.
create_messagewrite · needs approvalPost 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 approvalEdit a message's subject, body or type, or publish a draft with status 'active'.
list_message_typesread-onlyList a project's message types (Announcement, FYI…) for create_message.
get_message_typeread-onlyGet one message type of a project.
list_commentsread-onlyList the comments on anything in Basecamp — a to-do, message, document, card, upload, schedule entry… — by its id.
get_commentread-onlyGet one comment.
create_commentwrite · needs approvalComment on anything in Basecamp (to-do, message, document, card…). Everyone subscribed to that item is notified.
update_commentwrite · needs approvalReplace the text of a comment.
list_campfiresread-onlyList every Campfire (project chat) the user can see across the account.
get_campfireread-onlyGet one Campfire.
list_campfire_linesread-onlyRead the lines of a Campfire chat.
get_campfire_lineread-onlyGet one line of a Campfire chat.
post_campfire_linewrite · needs approvalSay something in a Campfire chat, as the connected user. Plain text unless rich is true.
update_campfire_linewrite · needs approvalEdit a Campfire line. Only its author can, only text lines can be edited, and the line becomes rich text.
list_documentsread-onlyList the documents in a Docs & Files folder (vault).
get_documentread-onlyGet one document with its full content.
list_uploadsread-onlyList the uploaded files in a Docs & Files folder (vault), with download URLs.
get_google_documentread-onlyGet a linked Google Workspace document (its title, URL and type).
get_scheduleread-onlyGet a project's schedule (whether it shows due dates of to-dos and cards).
list_schedule_entriesread-onlyList the events on a project's schedule.
get_schedule_entryread-onlyGet one schedule event. For a recurring event, use get_schedule_entry_occurrence to target a given day.
get_schedule_entry_occurrenceread-onlyGet the occurrence of a recurring schedule event on a given day.
create_schedule_entrywrite · needs approvalAdd 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 approvalChange a schedule event. Only the fields you pass change. A recurring event cannot be changed through the API.
get_upcoming_scheduleread-onlyEverything 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-onlyGet 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 approvalReorder the columns of a card table. Position counts regular columns only (Triage, Not Now and Done are ignored).
create_card_columnwrite · needs approvalAdd a column to a card table.
get_card_columnread-onlyGet one column of a card table.
update_card_columnwrite · needs approvalRename a card table column or change its description.
set_card_column_colorwrite · needs approvalChange the color of a card table column.
enable_card_column_on_holdwrite · needs approvalAdd an On hold section to a card table column.
disable_card_column_on_holdwrite · needs approvalRemove the On hold section of a card table column.
watch_card_columnwrite · needs approvalStart watching a card table column: get notified when cards land in it.
unwatch_card_columnwrite · needs approvalStop watching a card table column.
create_card_table_wormholewrite · needs approvalLink 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-onlyList the cards in a card table column.
get_cardread-onlyGet one card with its content, assignees, due date and steps.
create_cardwrite · needs approvalCreate a card in a card table column.
update_cardwrite · needs approvalChange 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 approvalMove 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 approvalAdd a step (checklist item) to a card.
update_card_stepwrite · needs approvalChange a card step's title, due date or assignees; the rest is kept.
set_card_step_completionwrite · needs approvalTick or untick a card step.
reposition_card_stepwrite · needs approvalMove a step within its card. Position 0 is the first step.
list_client_approvalsread-onlyList the approvals requested from clients on a project.
get_client_approvalread-onlyGet one client approval with its status and responses.
list_client_correspondencesread-onlyList the messages exchanged with clients on a project.
get_client_correspondenceread-onlyGet one client correspondence.
list_client_repliesread-onlyList the client replies to a correspondence or an approval.
get_client_replyread-onlyGet one client reply.
list_gaugesread-onlyProject health at a glance: the gauge of every project, riskiest (red) first.
list_gauge_needlesread-onlyThe history of a project's gauge: every progress update, newest first.
get_gauge_needleread-onlyGet one progress update of a project gauge.
create_gauge_needlewrite · needs approvalRecord a progress update on a project's gauge: position 0-100 and a color. Notifies nobody unless notify is set.
update_gauge_needlewrite · needs approvalRewrite the description of a gauge update. Position and color cannot change: record a new update instead.
set_project_gaugewrite · needs approvalTurn a project's gauge on or off. Project admins only.
get_inboxread-onlyGet a project's Email Forwards inbox.
list_forward_repliesread-onlyList the replies to an email forwarded into Basecamp.
get_forward_replyread-onlyGet one reply to a forwarded email.
list_lineup_markersread-onlyList the account-wide markers shown on the Lineup (key dates).
create_lineup_markerwrite · needs approvalPut a marker (a named date) on the Lineup, visible to the whole account.
update_lineup_markerwrite · needs approvalRename or move a Lineup marker.
get_my_noteread-onlyRead my personal notebook in Basecamp (empty until something is written).
update_my_notewrite · needs approvalReplace the content of my personal notebook. Basecamp keeps the previous versions.
get_my_notificationsread-onlyMy 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-onlyMy bubble-ups: items I asked to see again, current ones then scheduled ones.
mark_notifications_readwrite · needs approvalMark notifications as read, by the readable_sgid of each (at most 500).
list_my_question_remindersread-onlyThe check-in questions still waiting for my answer.
get_questionnaireread-onlyGet a project's Automatic Check-ins tool.
list_questionsread-onlyList the check-in questions of a project.
get_questionread-onlyGet one check-in question with its schedule.
create_questionwrite · needs approvalCreate a recurring check-in question ("What did you work on today?") that Basecamp asks the project's people on a schedule.
update_questionwrite · needs approvalChange the wording or the schedule of a check-in question.
pause_questionwrite · needs approvalPause a check-in question: Basecamp stops asking it.
resume_questionwrite · needs approvalResume a paused check-in question.
update_question_notification_settingswrite · needs approvalMy notification settings for a check-in question: alert on each answer, and whether the digest lists who has not answered.
list_answersread-onlyRead the answers to a check-in question, optionally for one day or one person.
get_answerread-onlyGet one answer to a check-in question.
list_question_answerersread-onlyList the people who have answered a check-in question.
list_answers_by_personread-onlyEvery answer one person gave to a check-in question.
create_answerwrite · needs approvalAnswer a check-in question as the connected user.
update_answerwrite · needs approvalRewrite an answer to a check-in question; its day is kept unless given.
list_assignable_peopleread-onlyEveryone who can be assigned to-dos, to then look up their assignments.
get_assigned_todosread-onlyThe pending to-dos assigned to one person, grouped by project or by due date.
get_overdue_todosread-onlyAll overdue to-dos across projects, grouped by lateness: under a week, over a week, over a month, over three months.
get_progress_reportread-onlyThe account-wide activity feed: latest events across every project.
get_project_timelineread-onlyThe activity feed of one project.
get_person_progressread-onlyWhat one person has been doing: their activity across projects.
list_templatesread-onlyList the project templates, most recent first.
get_templateread-onlyGet one project template.
create_templatewrite · needs approvalCreate an empty project template.
update_templatewrite · needs approvalRename a project template or change its description.
create_project_from_templatewrite · needs approvalStart a new project from a template. It is built in the background: poll get_project_construction until its status is completed.
get_project_constructionread-onlyCheck a project being built from a template; once completed it carries the new project. Poll at most once a second.
get_timesheet_reportread-onlyTime logged across the whole account. Without dates, Basecamp returns the last month.
get_project_timesheetread-onlyTime 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-onlyTime logged against one item: a to-do, card, message, document…
get_timesheet_entryread-onlyGet one timesheet entry.
create_timesheet_entrywrite · needs approvalLog 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 approvalCorrect a timesheet entry; only the fields you pass change.
searchread-onlyFull-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
- Create your Proxoria account and add your MCP endpoint to Claude or ChatGPT.
- Connect Basecamp with a secure OAuth connection — each user connects their own account, credentials encrypted at rest.
- 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 freeAbout 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.