AI connections

MCP tools reference

Every tool the Workspace369 MCP server exposes to connected AI apps, grouped by module, with what it does, the scope and permission it needs, and its Token cost class.

View as Markdown

This is the complete list of tools a connected AI app can call, as published by the Workspace369 MCP server in this release. AI apps read the same list when they connect, so you do not need to configure anything from here. Use it to understand what a prompt can reach, which permissions a member needs, and what a call costs.

How to read this reference

Each row names the tool as the AI app sees it, what it does, and what it needs:

  • Scope is the access you grant the app at sign-in, shown on the sign-in page under the module name. read is the view option; write is view, create, and edit; send is send messages on your behalf.
  • Permission is the Workspace369 permission your role must include, named as the module and the permission within it. "Any member" means membership of the workspace is enough.
  • Cost is the Token class: Read, Write, Send, or Free. Default costs are 1, 5, and 10 Tokens. See How MCP access is controlled and billed.

Tools marked always confirmed in AI AutoPilot show a confirmation card in AI AutoPilot in every mode. In a connected app, the same tools are held until you approve them in the Workspace369 app, unless you turned on Send without asking for that connection. See How MCP access is controlled and billed.

Two rules apply everywhere:

  • Members limited to specific clients see only records in their book. A record outside it reads as not found.
  • Amounts on invoices, proposals, and payments are hidden unless the member can view prices.

Workspace

ToolWhat it doesScopePermissionCost
workspace_get_contextReturns the workspace name and plan, your permissions, and the Token balance. Apps usually call it first.workspace:readAny memberRead
approvals_getChecks what became of a call that was held for approval: still waiting, approved and done, declined, expired, failed, or interrupted. It cannot approve anything and only sees approvals created by the same connection. Free.workspace:readAny memberFree
workspace_business_summaryCounts only: clients, invoices with the unpaid count and outstanding total, today's scheduled events, and catalog services.workspace:readAny memberRead
workspace_schemaDescribes the data model an agent can build on: for each record type (clients, requests, proposals, contracts, invoices, projects, tasks, calendar events, products), the tools that read and write it and the fields its create tool accepts. It also returns your workspace's own client stages, client custom field definitions, calendar categories, and lead sources: definitions only, never the values on any record. Pass record_types to limit the answer to some types. Each configuration section is shown only if your role can view that area (Clients, Calendar, Lead sources); a section you cannot see, or that cannot be read just now, is reported by name as unavailable and never shown as empty. Task board statuses and custom fields come from task_board_schema.workspace:readAny memberRead

Clients and lead sources

Custom field values written through clients_create and clients_update follow the same rules as the app: text up to 1000 characters, numbers, true or false, dates as YYYY-MM-DD, and select fields limited to the field's options. Up to 50 values per call. Call workspace_schema to see your field keys, option lists, and pipeline stages (clients.stages).

ToolWhat it doesScopePermissionCost
clients_searchSearches active clients by name, email, or company, with filters for lead source, business or individual, tags, and pipeline stage (stage, a stage id or name; an unknown stage is refused and the error lists the stages). Each client carries its stage_id. Archived clients are excluded.clients:readClients: viewRead
follow_ups_listLists who to follow up with, grouped as overdue, today, this week, and suggested. Each item carries the reason, such as an invoice past due, a message waiting over 24 hours, a proposal not accepted after 3 days, or a retainer ending within 30 days. Filter by scope (everyone or mine), group, and limit. Changes nothing.clients:readClients: viewRead
clients_getReturns one client by id, including archived clients, which are flagged. The result includes the client's stage_id and its custom_fields values, keyed by each field's key. If the field definitions can't be read, custom_fields_unavailable is true instead.clients:readClients: viewRead
clients_createCreates a client with name, email, phone, company, type, lead source, and one or more addresses. Addresses are verified and stored geocoded when they match. Optional custom_fields sets values for custom fields you have defined, as {key: value} using the field's key or label. An unknown field or a value of the wrong type refuses the whole create, and no client is made.clients:writeClients: addWrite
clients_updateChanges only the fields passed. Updating an email, phone, or address replaces the primary entry; a full address list can be replaced explicitly. custom_fields merges the values passed into the client's existing ones; null or an empty string clears a value. An unknown field, a bad value, or an archived client is refused and nothing changes.clients:writeClients: editWrite
clients_move_stageMoves one client to another stage of your client pipeline. Pass the client id and the stage by id or name. A stage in the lead group makes the client a prospect; any other stage makes it a client. Moving a client to the stage it is already in changes nothing. An unknown stage, an archived client, or a client outside your assigned clients is refused and nothing changes. Workspaces that never customized stages use Lead, Onboarding, Active, Paused, and Past.clients:writeClients: editWrite
lead_sources_listLists the workspace's lead sources and which one is the default for new clients.clients:readLead sources: viewRead
lead_sources_set_defaultSets the default lead source for clients created afterwards. It cannot create a lead source.clients:writeLead sources: editWrite

Requests

Requests are inbound submissions from intake forms, pages, funnels, and the lead API. A request returns its contact details, message, source, and the page address it came from. The form answers and tracking values shown on the request in Workspace369 are not returned, but converting still copies the tracking values onto the client.

ToolWhat it doesScopePermissionCost
requests_searchLists requests newest first, filtered by status, form, or free text over name, email, phone, and message.requests:readRequests: viewRead
requests_getReturns one request with its full message and the consent the prospect recorded. Internal comments and technical details are never returned.requests:readRequests: viewRead
requests_forms_listLists intake forms so a form id can be shown by name. Forms cannot be created or edited through MCP.requests:readRequests: manage settingsRead
requests_update_statusMarks a request reviewed or archives it. Archiving is final.requests:writeRequests: editWrite
requests_convert_to_clientCreates the client from a request, or links an existing one, and marks the request converted. Tracking values the form captured, such as ref or utm_source, are copied onto the client as custom fields without overwriting anything already there. Needs the Clients scope as well. Can start new-client workflows. Always confirmed in AI AutoPilot.requests:write and clients:writeRequests: convertWrite
requests_respondEmails or texts the prospect. The recipient comes from the request and cannot be changed. Texting a lead without SMS consent must be acknowledged explicitly. Always confirmed in AI AutoPilot.inbox:sendRequests: editSend

Notes

ToolWhat it doesScopePermissionCost
notes_searchLists workspace notes or your personal notes, filtered by text, folder, tag, or client.notes:readNotes: viewRead
notes_getReturns one note. Trashed notes and other people's personal notes are not returned.notes:readNotes: viewRead
notes_createCreates a workspace note or a personal note, optionally in a folder and linked to clients.notes:writeNotes: createWrite
notes_updateChanges a note's title, body, or tags. A new body replaces the whole text.notes:writeNotes: editWrite

Invoices and payments

ToolWhat it doesScopePermissionCost
invoices_searchLists invoices by number, title, client, or PO number, with status and client filters. Each row says whether it is overdue.invoices:readInvoices: viewRead
invoices_getReturns one invoice by id or invoice number, with its line items.invoices:readInvoices: viewRead
invoices_get_defaultsReturns the workspace's invoice defaults: due terms, tax, discount, deposit, and notes applied to every new invoice.invoices:readInvoices: viewRead
invoices_create_draftCreates a draft invoice for a client from catalog items or one-off lines. Totals and tax are calculated by Workspace369. The draft is never sent by this tool.invoices:writeInvoices: createWrite
invoices_update_draftEdits a draft's lines, discount, dates, tax, deposit, project, and notes. Editing a sent invoice requires explicit confirmation because the client's link changes.invoices:writeInvoices: editWrite
invoices_create_from_scheduleCreates a Pending invoice with a pay link for one scheduled job, using the job's client and connected proposal.invoices:writeInvoices: createWrite
invoices_batch_from_schedulesInvoices every uninvoiced job in a date range, up to 30 per call, optionally marking them paid and emailing or texting each client. Always confirmed in AI AutoPilot.invoices:writeInvoices: createSend
invoices_sendEmails or texts the invoice with its view-and-pay link, attaching the PDF on email. Refused for opted-out clients. Always confirmed in AI AutoPilot.invoices:writeInvoices: shareSend
invoice_payments_listLists every payment on one invoice with the total, paid, and remaining amounts.invoices:readInvoices: viewRead
invoice_payments_summarySummarizes received, refunded, net, and remaining amounts and the split by payment method.invoices:readInvoices: viewRead
payments_recordRecords a full or partial payment with a method. This is the only way to mark an invoice paid. Nothing is sent to the client.invoices:writeInvoices: mark paidWrite
recurring_plans_searchLists recurring invoice plans with cadence, next invoice date, autopay state, and any payment retry. Filter by query, status (draft, scheduled, active, paused, ended), client_id, and needs_attention. The summary totals active plans, plans needing attention, and monthly recurring revenue. Amounts are hidden without the view-prices permission.invoices:readInvoices: viewRead
recurring_plans_getReturns one recurring plan by id, with sending mode, payment terms, how it ends, pauses, upcoming amount changes, and its last autopay attempts. Returns an empty result for an unknown id or a client outside the member's book.invoices:readInvoices: viewRead
recurring_plans_send_pay_linkEmails the client the pay link for the plan's open invoice, for example after a failed autopay. Uses the workspace's template and PDF and one email credit. Refused when nothing is unpaid. Held for approval.invoices:writeInvoices: shareSend
retainers_searchLists retainers: hour banks, fixed monthly, and prepaid deposits. Shows this cycle's hours (included, approved, pending, left), the extra-hour rate, the prepaid balance, and the next invoice date. Filter by query, status, client_id, and type.invoices:readRetainers: viewRead
retainers_getReturns one retainer by id, with how extra and unused hours are handled, prepaid top-up settings, the available prepaid balance, and the last 10 ledger entries.invoices:readRetainers: viewRead

Proposals

ToolWhat it doesScopePermissionCost
proposals_searchLists proposals and estimates with their sent, viewed, accepted, and declined history.proposals:readProposals: viewRead
proposals_getReturns one proposal with its line items and which are client-selectable add-ons.proposals:readProposals: viewRead
proposals_get_defaultsReturns the acceptance terms: signature required, deposit required and how much, and expiry. Pass a proposal id for that proposal's own terms.proposals:readProposals: viewRead
proposals_design_optionsLists what a proposal's design can be set to: themes, accent presets, page backgrounds, cover styles, title placements, image layouts, section types, the cover banners, and photo gallery categories. Page through a category's photos with gallery_category and cursor.proposals:readProposals: viewRead
proposals_update_designChanges how a draft proposal looks: theme, accent_color, page_background_color, title_placement, the cover image and its style and focal point. Returns previous_design so a change can be undone. Only drafts can be changed. A cover given as a web link is held for approval.proposals:writeProposals: editWrite
proposals_edit_sectionsAdds, changes, reorders, or removes a draft's text, timeline, terms, and image sections, or inserts a saved section. Up to 20 operations run in order, all or nothing. The four fixed sections (cover, header, pricing table, totals) cannot be removed or moved. An image given as a web link is held for approval.proposals:writeProposals: editWrite
proposals_update_defaultsChanges the workspace's proposal defaults in Settings: theme, accent color, signature, deposit, validity in days, and the notes footer. Applies to new blank proposals only.proposals:writeProposals: editWrite
proposal_templates_listLists proposal templates (name, theme, section and line counts) and saved sections. kind is proposal, section, or all.proposals:readProposals: viewRead
proposal_templates_save_from_proposalSaves a proposal's sections, design, settings, and line items as a new template. The proposal is not changed.proposals:writeProposals: edit and manage templatesWrite
proposal_templates_save_sectionSaves one content section of a proposal as a reusable section template.proposals:writeProposals: edit and manage templatesWrite
proposal_templates_applyReplaces a draft's sections, design, and settings with a template's, and its line items too unless replace_line_items is false. Totals are recalculated; the client, title, and notes are kept. Only drafts can be changed.proposals:writeProposals: edit and manage templatesWrite
proposal_templates_renameRenames a proposal template or a section template.proposals:writeProposals: edit and manage templatesWrite
proposal_templates_duplicateCopies a template into a new one. Each call makes another copy.proposals:writeProposals: edit and manage templatesWrite
proposal_templates_deleteDeletes a template or section template from the library. Proposals already made from it are not changed.proposals:writeProposals: edit and manage templatesWrite
proposals_create_draftCreates a draft proposal for a client with optional line items. Never sent by this tool.proposals:writeProposals: createWrite
proposals_update_draftEdits a draft's title, notes, lines, discount, signature and deposit requirements, and expiry. Sent proposals are refused.proposals:writeProposals: editWrite
proposals_update_statusRecords that a sent proposal was accepted or declined outside the system, or recalls it to draft. Does not send anything or create an invoice.proposals:writeProposals: editWrite
proposals_sendEmails the proposal to its client with the acceptance link. Refused for opted-out clients. Always confirmed in AI AutoPilot.proposals:writeProposals: sendSend

Contracts

Contract tools pass the same checks as the Contracts screens: your permission, your client book, the monthly contract allowance and the Token charge. Field values, signature images and signer IP addresses are never returned.

ToolWhat it doesScopePermissionCost
contracts_searchLists contracts newest first, filtered by status group, client, archived state, or words in the title. A title search checks up to 200 contracts per call and says when more may match.contracts:readContracts: viewRead
contracts_getReturns one contract with its settings, the sealed document fingerprint once completed, each recipient's role and progress, and whether a send started with contracts_send is still running, went out, or did not go through and why.contracts:readContracts: viewRead
contract_templates_listLists contract templates with their roles, and whether each can be bulk sent or attached to a proposal.contracts:readContracts: viewRead
contracts_create_draftCreates a draft contract from a template for a client, with people for manually assigned roles. Never sends.contracts:writeContracts: createWrite
contracts_sendStarts sending a draft for signature and returns while the send runs, because a contract from a text template is prepared first. Check the result with contracts_get. Uses the monthly contract allowance, then Tokens. Always confirmed in AI AutoPilot.contracts:sendContracts: sendSend
contracts_remindEmails a reminder to recipients who have not finished, at most once a day each. Always confirmed in AI AutoPilot.contracts:sendContracts: sendSend
contracts_voidVoids an open contract with a reason. Cannot be undone. Always confirmed in AI AutoPilot.contracts:sendContracts: voidSend

Projects

ToolWhat it doesScopePermissionCost
projects_searchLists projects by name or client, with status filters.projects:readProjects: viewRead
projects_getReturns one project.projects:readProjects: viewRead
projects_createCreates a project with status, client, dates, budget, priority, and tags.projects:writeProjects: createWrite
projects_updateChanges name, description, status, budget, priority, or notes. Progress is always derived from task completion.projects:writeProjects: editWrite

Tasks and boards

ToolWhat it doesScopePermissionCost
task_boards_listLists boards with their ordered statuses. Every task lives on a board.tasks:readTasks: viewRead
task_board_schemaReturns a board's statuses, built-in fields, and custom fields with allowed values.tasks:readTasks: viewRead
task_board_tags_listSearches or pages a board's tag catalog.tasks:readTasks: viewRead
tasks_searchLists tasks across boards by title, board, status, priority, assignee, due dates, tags, or starred.tasks:readTasks: viewRead
tasks_getReturns one task in full, including custom fields and subtasks.tasks:readTasks: viewRead
tasks_comments_listReads a task's comments, newest first.tasks:readTasks: viewRead
tasks_createCreates one task on a board with status, priority, tags, assignees, estimate, dates, dependencies, custom fields, and a checklist.tasks:writeTasks: createWrite
tasks_updateChanges only the fields passed. Tags and assignees are replaced as a list.tasks:writeTasks: editWrite
tasks_subtasks_updateAdds checklist items or marks existing ones complete or open.tasks:writeTasks: editWrite
tasks_comment_addAdds a plain-text comment attributed to you. Mentions are not resolved. Nothing is sent to a client.tasks:writeTasks: editWrite
task_boards_createCreates a board with To-do, In Progress, and Done. Cannot rename or reconfigure a board.tasks:writeTasks: manage boardsWrite

Calendar, booking, and reminders

ToolWhat it doesScopePermissionCost
calendar_list_eventsLists events in a date range, optionally for one team member or client. Cancelled events are excluded unless requested.calendar:readCalendar: viewRead
calendar_categories_listLists the calendar categories configured in the workspace.calendar:readCalendar: viewRead
calendar_check_availabilityReports which team members are free on a date from their working hours and that day's events.calendar:readCalendar: viewRead
booking_pages_listLists booking pages with their shareable links. Inactive pages have no link.calendar:readCalendar: viewRead
calendar_create_eventCreates a timed or all-day event with client, category, assignees, services, reminders, and recurrence.calendar:writeCalendar: createWrite
calendar_update_eventMoves or edits an event, adds or clears reminders, or cancels it. Cancelling keeps the record. For a recurring event it can move the series but cannot change the repeat rule.calendar:writeCalendar: editWrite
calendar_events_reschedule_batchMoves a day's client events, or one client's upcoming events, to another date, up to 30 per call. Recurring series and events open in the app are skipped and counted.calendar:writeCalendar: editWrite
reminders_listLists your reminders: upcoming, overdue, completed, or all, personal or workspace.reminders:readAny memberRead
reminders_createCreates a reminder at a time, or a set number of minutes before a calendar event, with recipients, channels, and recurrence.reminders:writeAny memberWrite
reminders_updateChanges a reminder's title, description, time, priority, or channels. Moving the time is how a reminder is snoozed.reminders:writeAny memberWrite
reminders_closeCompletes or cancels a reminder. Completing a recurring reminder closes the whole series.reminders:writeAny memberWrite

Time tracking

ToolWhat it doesScopePermissionCost
time_entries_listLists time entries in a time range. Members limited to specific clients see their own entries and their clients' entries.time_entries:readTime tracking: viewRead
time_entries_searchLists time entries filtered by client, project, task, and billable.time_entries:readTime tracking: viewRead
timesheets_listLists weekly timesheet submissions with status and totals. You see your own unless you can approve timesheets.time_entries:readAny memberRead
time_entries_createLogs a completed entry for yourself with duration, client, project, task, and billable status. Billable entries use the workspace's rate unless one is given.time_entries:writeTime tracking: createWrite
time_entries_updateEdits one of your own entries. Submitted, approved, and period-locked entries are refused.time_entries:writeTime tracking: editWrite

Team

ToolWhat it doesScopePermissionCost
team_members_listLists members with role, invitation status, and working days.team:readAny memberRead
team_members_searchFinds a member by name or email, returning candidates when the match is ambiguous.team:readAny memberRead
team_member_availability_getReturns a member's weekly working hours, or the whole roster's, with the timezone they are in.team:readAny memberRead
team_member_activity_listLists what a member has done recently: the action, the record, and which fields changed, never the values.team:readTeam: view activityRead
team_member_availability_setChanges a member's working hours for the days passed, and their timezone. The member is not notified. Always confirmed in AI AutoPilot.team:writeTeam: edit permissionsWrite

Inbox

ToolWhat it doesScopePermissionCost
search_workspace_messagesFull-text search across email, SMS, and call notes, returning the conversation each match belongs to. Only channels and clients you can access are searched.inbox:readAny member with channel accessRead
inbox_send_messageSends one SMS or email from the workspace inbox, optionally into an existing conversation. Always confirmed in AI AutoPilot.inbox:sendThe channel's send permissionSend
inbox_send_bulkSends one SMS to up to 30 recipients. Recipients who opted out or are blocked are reported as suppressed and not messaged. Always confirmed in AI AutoPilot.inbox:sendAny member with SMS send accessSend
email_send_optionsReads how an email would go out: the inboxes you can send from, which one is used when from_inbox is left out, default Cc and Bcc, per-email recipient caps (10 people from a starter inbox, 50 from your own domain or mailbox), signature settings, and the email template library. Call it before proposing a send.inbox:readSend emailRead

Catalog

ToolWhat it doesScopePermissionCost
products_listLists catalog services and products with pricing. Active items by default; drafts and archived on request.products:readProduct catalog: viewRead
products_createAdds a service or product with a price and price type: flat rate, per hour, per unit, or per area. Duplicate names are refused.products:writeProduct catalog: addWrite
products_updateChanges name, price, price type, description, or active state. Setting inactive moves the item to draft.products:writeProduct catalog: editWrite

Workflows

Workflows appear to AI apps under their stable name, automations. A connected AI app can list, read, test and turn off workflows. Building a workflow, turning it on and retrying a failed run are done in the app or with AI AutoPilot, because a workflow runs a list of steps that can't each be shown to the connected app up front.

ToolWhat it doesScopePermissionCost
automations_listLists workflows with trigger, action, on/off state, last run, and whether each one can actually fire and why not.automations:readWorkflows: viewRead
automations_getReturns one workflow's full definition and any definition warnings. Recipient addresses are never returned.automations:readWorkflows: viewRead
automations_runs_listLists runs and their outcomes, including skipped runs and the step that stopped them. Message bodies and addresses are never returned.automations:readWorkflows: viewRead
automations_disableTurns a workflow off. It does not recall follow-ups already queued. Always confirmed in AI AutoPilot.automations:writeWorkflows: turn on or offWrite
automations_testDry-runs a workflow on sample data or a record, and sends nothing. Tests the unpublished changes when there are any.automations:readWorkflows: viewRead

Available to AI AutoPilot only

These tools exist on the server but their scopes are not offered on the sign-in page, so a connected AI app cannot call them in this release. AI AutoPilot can.

ToolWhat it does
batch_applyRuns up to 30 tool calls in one request. Connected apps call tools one at a time instead. Always-confirmed tools cannot be placed in a batch.
automations_create_draftCreates a new workflow, switched off, checked the way Publish checks it.
automations_activateTurns a workflow on. Always confirmed, with a card that names what it sends.
automations_retryRe-runs a failed run from the step that failed, which sends that step's message now. Always confirmed.
knowledge_searchSearches the workspace's AI knowledge base.
media_listLists photos and documents attached to a schedule, invoice, or expense.
media_attachAttaches an already-uploaded workspace file to a schedule, invoice, or expense.
expense_types_listLists expense categories.
expenses_listLists recorded expenses with category, job, project, and period filters.
expenses_createRecords an expense, optionally on a project or job.
expenses_updateCorrects an expense outside a closed accounting period.

Limits

  • List and search tools return 25 results by default and 100 at most per page, with a cursor for the next page. Message search returns at most 50.
  • A batch holds at most 30 items, a bulk text at most 30 recipients, a batch reschedule moves at most 30 events, and batch invoicing creates at most 30 invoices per call. When more work remains, the result says so; nothing is dropped silently.
  • One connection may make 120 calls per minute and a workspace 600.

Was this article useful?

Your answer helps us decide what to clarify next.