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.
Version 2026.3·Updated October 18, 2026
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.
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.
| Tool | What it does | Scope | Permission | Cost |
|---|
workspace_get_context | Returns the workspace name and plan, your permissions, and the Token balance. Apps usually call it first. | workspace:read | Any member | Read |
approvals_get | Checks 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:read | Any member | Free |
workspace_business_summary | Counts only: clients, invoices with the unpaid count and outstanding total, today's scheduled events, and catalog services. | workspace:read | Any member | Read |
workspace_schema | Describes 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:read | Any member | Read |
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).
| Tool | What it does | Scope | Permission | Cost |
|---|
clients_search | Searches 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:read | Clients: view | Read |
follow_ups_list | Lists 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:read | Clients: view | Read |
clients_get | Returns 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:read | Clients: view | Read |
clients_create | Creates 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:write | Clients: add | Write |
clients_update | Changes 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:write | Clients: edit | Write |
clients_move_stage | Moves 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:write | Clients: edit | Write |
lead_sources_list | Lists the workspace's lead sources and which one is the default for new clients. | clients:read | Lead sources: view | Read |
lead_sources_set_default | Sets the default lead source for clients created afterwards. It cannot create a lead source. | clients:write | Lead sources: edit | Write |
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.
| Tool | What it does | Scope | Permission | Cost |
|---|
requests_search | Lists requests newest first, filtered by status, form, or free text over name, email, phone, and message. | requests:read | Requests: view | Read |
requests_get | Returns one request with its full message and the consent the prospect recorded. Internal comments and technical details are never returned. | requests:read | Requests: view | Read |
requests_forms_list | Lists intake forms so a form id can be shown by name. Forms cannot be created or edited through MCP. | requests:read | Requests: manage settings | Read |
requests_update_status | Marks a request reviewed or archives it. Archiving is final. | requests:write | Requests: edit | Write |
requests_convert_to_client | Creates 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:write | Requests: convert | Write |
requests_respond | Emails 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:send | Requests: edit | Send |
| Tool | What it does | Scope | Permission | Cost |
|---|
notes_search | Lists workspace notes or your personal notes, filtered by text, folder, tag, or client. | notes:read | Notes: view | Read |
notes_get | Returns one note. Trashed notes and other people's personal notes are not returned. | notes:read | Notes: view | Read |
notes_create | Creates a workspace note or a personal note, optionally in a folder and linked to clients. | notes:write | Notes: create | Write |
notes_update | Changes a note's title, body, or tags. A new body replaces the whole text. | notes:write | Notes: edit | Write |
| Tool | What it does | Scope | Permission | Cost |
|---|
invoices_search | Lists invoices by number, title, client, or PO number, with status and client filters. Each row says whether it is overdue. | invoices:read | Invoices: view | Read |
invoices_get | Returns one invoice by id or invoice number, with its line items. | invoices:read | Invoices: view | Read |
invoices_get_defaults | Returns the workspace's invoice defaults: due terms, tax, discount, deposit, and notes applied to every new invoice. | invoices:read | Invoices: view | Read |
invoices_create_draft | Creates 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:write | Invoices: create | Write |
invoices_update_draft | Edits 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:write | Invoices: edit | Write |
invoices_create_from_schedule | Creates a Pending invoice with a pay link for one scheduled job, using the job's client and connected proposal. | invoices:write | Invoices: create | Write |
invoices_batch_from_schedules | Invoices 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:write | Invoices: create | Send |
invoices_send | Emails 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:write | Invoices: share | Send |
invoice_payments_list | Lists every payment on one invoice with the total, paid, and remaining amounts. | invoices:read | Invoices: view | Read |
invoice_payments_summary | Summarizes received, refunded, net, and remaining amounts and the split by payment method. | invoices:read | Invoices: view | Read |
payments_record | Records 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:write | Invoices: mark paid | Write |
recurring_plans_search | Lists 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:read | Invoices: view | Read |
recurring_plans_get | Returns 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:read | Invoices: view | Read |
recurring_plans_send_pay_link | Emails 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:write | Invoices: share | Send |
retainers_search | Lists 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:read | Retainers: view | Read |
retainers_get | Returns 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:read | Retainers: view | Read |
| Tool | What it does | Scope | Permission | Cost |
|---|
proposals_search | Lists proposals and estimates with their sent, viewed, accepted, and declined history. | proposals:read | Proposals: view | Read |
proposals_get | Returns one proposal with its line items and which are client-selectable add-ons. | proposals:read | Proposals: view | Read |
proposals_get_defaults | Returns the acceptance terms: signature required, deposit required and how much, and expiry. Pass a proposal id for that proposal's own terms. | proposals:read | Proposals: view | Read |
proposals_design_options | Lists 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:read | Proposals: view | Read |
proposals_update_design | Changes 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:write | Proposals: edit | Write |
proposals_edit_sections | Adds, 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:write | Proposals: edit | Write |
proposals_update_defaults | Changes 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:write | Proposals: edit | Write |
proposal_templates_list | Lists proposal templates (name, theme, section and line counts) and saved sections. kind is proposal, section, or all. | proposals:read | Proposals: view | Read |
proposal_templates_save_from_proposal | Saves a proposal's sections, design, settings, and line items as a new template. The proposal is not changed. | proposals:write | Proposals: edit and manage templates | Write |
proposal_templates_save_section | Saves one content section of a proposal as a reusable section template. | proposals:write | Proposals: edit and manage templates | Write |
proposal_templates_apply | Replaces 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:write | Proposals: edit and manage templates | Write |
proposal_templates_rename | Renames a proposal template or a section template. | proposals:write | Proposals: edit and manage templates | Write |
proposal_templates_duplicate | Copies a template into a new one. Each call makes another copy. | proposals:write | Proposals: edit and manage templates | Write |
proposal_templates_delete | Deletes a template or section template from the library. Proposals already made from it are not changed. | proposals:write | Proposals: edit and manage templates | Write |
proposals_create_draft | Creates a draft proposal for a client with optional line items. Never sent by this tool. | proposals:write | Proposals: create | Write |
proposals_update_draft | Edits a draft's title, notes, lines, discount, signature and deposit requirements, and expiry. Sent proposals are refused. | proposals:write | Proposals: edit | Write |
proposals_update_status | Records 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:write | Proposals: edit | Write |
proposals_send | Emails the proposal to its client with the acceptance link. Refused for opted-out clients. Always confirmed in AI AutoPilot. | proposals:write | Proposals: send | Send |
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.
| Tool | What it does | Scope | Permission | Cost |
|---|
contracts_search | Lists 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:read | Contracts: view | Read |
contracts_get | Returns 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:read | Contracts: view | Read |
contract_templates_list | Lists contract templates with their roles, and whether each can be bulk sent or attached to a proposal. | contracts:read | Contracts: view | Read |
contracts_create_draft | Creates a draft contract from a template for a client, with people for manually assigned roles. Never sends. | contracts:write | Contracts: create | Write |
contracts_send | Starts 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:send | Contracts: send | Send |
contracts_remind | Emails a reminder to recipients who have not finished, at most once a day each. Always confirmed in AI AutoPilot. | contracts:send | Contracts: send | Send |
contracts_void | Voids an open contract with a reason. Cannot be undone. Always confirmed in AI AutoPilot. | contracts:send | Contracts: void | Send |
| Tool | What it does | Scope | Permission | Cost |
|---|
projects_search | Lists projects by name or client, with status filters. | projects:read | Projects: view | Read |
projects_get | Returns one project. | projects:read | Projects: view | Read |
projects_create | Creates a project with status, client, dates, budget, priority, and tags. | projects:write | Projects: create | Write |
projects_update | Changes name, description, status, budget, priority, or notes. Progress is always derived from task completion. | projects:write | Projects: edit | Write |
| Tool | What it does | Scope | Permission | Cost |
|---|
task_boards_list | Lists boards with their ordered statuses. Every task lives on a board. | tasks:read | Tasks: view | Read |
task_board_schema | Returns a board's statuses, built-in fields, and custom fields with allowed values. | tasks:read | Tasks: view | Read |
task_board_tags_list | Searches or pages a board's tag catalog. | tasks:read | Tasks: view | Read |
tasks_search | Lists tasks across boards by title, board, status, priority, assignee, due dates, tags, or starred. | tasks:read | Tasks: view | Read |
tasks_get | Returns one task in full, including custom fields and subtasks. | tasks:read | Tasks: view | Read |
tasks_comments_list | Reads a task's comments, newest first. | tasks:read | Tasks: view | Read |
tasks_create | Creates one task on a board with status, priority, tags, assignees, estimate, dates, dependencies, custom fields, and a checklist. | tasks:write | Tasks: create | Write |
tasks_update | Changes only the fields passed. Tags and assignees are replaced as a list. | tasks:write | Tasks: edit | Write |
tasks_subtasks_update | Adds checklist items or marks existing ones complete or open. | tasks:write | Tasks: edit | Write |
tasks_comment_add | Adds a plain-text comment attributed to you. Mentions are not resolved. Nothing is sent to a client. | tasks:write | Tasks: edit | Write |
task_boards_create | Creates a board with To-do, In Progress, and Done. Cannot rename or reconfigure a board. | tasks:write | Tasks: manage boards | Write |
| Tool | What it does | Scope | Permission | Cost |
|---|
calendar_list_events | Lists events in a date range, optionally for one team member or client. Cancelled events are excluded unless requested. | calendar:read | Calendar: view | Read |
calendar_categories_list | Lists the calendar categories configured in the workspace. | calendar:read | Calendar: view | Read |
calendar_check_availability | Reports which team members are free on a date from their working hours and that day's events. | calendar:read | Calendar: view | Read |
booking_pages_list | Lists booking pages with their shareable links. Inactive pages have no link. | calendar:read | Calendar: view | Read |
calendar_create_event | Creates a timed or all-day event with client, category, assignees, services, reminders, and recurrence. | calendar:write | Calendar: create | Write |
calendar_update_event | Moves 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:write | Calendar: edit | Write |
calendar_events_reschedule_batch | Moves 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:write | Calendar: edit | Write |
reminders_list | Lists your reminders: upcoming, overdue, completed, or all, personal or workspace. | reminders:read | Any member | Read |
reminders_create | Creates a reminder at a time, or a set number of minutes before a calendar event, with recipients, channels, and recurrence. | reminders:write | Any member | Write |
reminders_update | Changes a reminder's title, description, time, priority, or channels. Moving the time is how a reminder is snoozed. | reminders:write | Any member | Write |
reminders_close | Completes or cancels a reminder. Completing a recurring reminder closes the whole series. | reminders:write | Any member | Write |
| Tool | What it does | Scope | Permission | Cost |
|---|
time_entries_list | Lists time entries in a time range. Members limited to specific clients see their own entries and their clients' entries. | time_entries:read | Time tracking: view | Read |
time_entries_search | Lists time entries filtered by client, project, task, and billable. | time_entries:read | Time tracking: view | Read |
timesheets_list | Lists weekly timesheet submissions with status and totals. You see your own unless you can approve timesheets. | time_entries:read | Any member | Read |
time_entries_create | Logs 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:write | Time tracking: create | Write |
time_entries_update | Edits one of your own entries. Submitted, approved, and period-locked entries are refused. | time_entries:write | Time tracking: edit | Write |
| Tool | What it does | Scope | Permission | Cost |
|---|
team_members_list | Lists members with role, invitation status, and working days. | team:read | Any member | Read |
team_members_search | Finds a member by name or email, returning candidates when the match is ambiguous. | team:read | Any member | Read |
team_member_availability_get | Returns a member's weekly working hours, or the whole roster's, with the timezone they are in. | team:read | Any member | Read |
team_member_activity_list | Lists what a member has done recently: the action, the record, and which fields changed, never the values. | team:read | Team: view activity | Read |
team_member_availability_set | Changes a member's working hours for the days passed, and their timezone. The member is not notified. Always confirmed in AI AutoPilot. | team:write | Team: edit permissions | Write |
| Tool | What it does | Scope | Permission | Cost |
|---|
search_workspace_messages | Full-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:read | Any member with channel access | Read |
inbox_send_message | Sends one SMS or email from the workspace inbox, optionally into an existing conversation. Always confirmed in AI AutoPilot. | inbox:send | The channel's send permission | Send |
inbox_send_bulk | Sends 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:send | Any member with SMS send access | Send |
email_send_options | Reads 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:read | Send email | Read |
| Tool | What it does | Scope | Permission | Cost |
|---|
products_list | Lists catalog services and products with pricing. Active items by default; drafts and archived on request. | products:read | Product catalog: view | Read |
products_create | Adds a service or product with a price and price type: flat rate, per hour, per unit, or per area. Duplicate names are refused. | products:write | Product catalog: add | Write |
products_update | Changes name, price, price type, description, or active state. Setting inactive moves the item to draft. | products:write | Product catalog: edit | Write |
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.
| Tool | What it does | Scope | Permission | Cost |
|---|
automations_list | Lists workflows with trigger, action, on/off state, last run, and whether each one can actually fire and why not. | automations:read | Workflows: view | Read |
automations_get | Returns one workflow's full definition and any definition warnings. Recipient addresses are never returned. | automations:read | Workflows: view | Read |
automations_runs_list | Lists runs and their outcomes, including skipped runs and the step that stopped them. Message bodies and addresses are never returned. | automations:read | Workflows: view | Read |
automations_disable | Turns a workflow off. It does not recall follow-ups already queued. Always confirmed in AI AutoPilot. | automations:write | Workflows: turn on or off | Write |
automations_test | Dry-runs a workflow on sample data or a record, and sends nothing. Tests the unpublished changes when there are any. | automations:read | Workflows: view | Read |
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.
| Tool | What it does |
|---|
batch_apply | Runs 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_draft | Creates a new workflow, switched off, checked the way Publish checks it. |
automations_activate | Turns a workflow on. Always confirmed, with a card that names what it sends. |
automations_retry | Re-runs a failed run from the step that failed, which sends that step's message now. Always confirmed. |
knowledge_search | Searches the workspace's AI knowledge base. |
media_list | Lists photos and documents attached to a schedule, invoice, or expense. |
media_attach | Attaches an already-uploaded workspace file to a schedule, invoice, or expense. |
expense_types_list | Lists expense categories. |
expenses_list | Lists recorded expenses with category, job, project, and period filters. |
expenses_create | Records an expense, optionally on a project or job. |
expenses_update | Corrects an expense outside a closed accounting period. |
- 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.