MCP App Store
by KeenEthics
Productivity
Carly icon

Carly

by Sarah Hirschfield (SWH LABS LLC)

Overview

Carly is an executive assistant for your email, CRM, and recurring work. Search and read your Gmail or Outlook, draft and send replies either from your own mailbox or from Carly's, and organize what arrives with folders, labels, and one-click unsubscribe. Keep contacts and CRM records current, look people up, and query your own structured data directly. Find free time across connected calendars, create and reschedule meetings, and share booking pages that respect your real availability. Build workflows that keep running after the conversation ends — a morning digest, inbox triage, a scheduled follow-up — then list, edit, run, and pause them from chat. Carly also handles to-dos, notes, files in Drive and OneDrive, and a searchable knowledge base of your own documents. Carly is operated by SWH LABS LLC: usecarly.com is our marketing site, carlyassistant.com hosts the product dashboard and this MCP server, and calbotservice.com is our company domain (terms, privacy, and support email) — all one company and one product.

Tools

add_todo

ChatGPT
Add one item to the user's to-do list. Optionally set a due date, a priority (1 urgent … 4 none), a project, labels, a longer description, and a parent_id to make it a sub-task (subtodo). Create or find the parent first, then use its returned row_id.

aggregate_crm

ChatGPT
Calculate grouped counts or numeric aggregates over CRM records.

append_onedrive_workbook_row

ChatGPT
Append one row to a OneDrive Excel worksheet, optionally seeding a header row.

append_to_google_doc

ChatGPT
Append text to the end of an existing Google Doc, found by id or name.

archive_workflow

ChatGPT
Archive one owned workflow and retain its run history.

bulk_mail_action

ChatGPT
Preview and then apply one mail change across every message matching a scope and filters — the batch alternative to calling a one-message tool repeatedly.

cancel_scheduled_task

ChatGPT
Cancel one scheduled task by its exact identifier.

check_calendar

ChatGPT
Check events on queryable calendars (e.g., conference rooms). Returns per-calendar events with is_free flag. If calendar_ids is omitted, checks ALL queryable calendars for the user.

complete_todo

ChatGPT
Mark a to-do done by its row_id (from list_todos).

connect_integration

ChatGPT
Where the user connects an app to Carly: `connect_url`, the Carly Integrations page. Every app connects there — natively, through Composio, or with the user's own API key. For an app already connected, also lists the accounts Carly can see. Never returns a Composio authorization link.

connect_mcp_server

ChatGPT
Connect an OAuth-enabled public MCP server such as Granola from its HTTPS server URL. Returns an authorization URL for user-controlled browser consent; credentials are never accepted in tool arguments.

copy_google_doc

ChatGPT
Copy a Google Doc template with its formatting into a new working document.

create_availability_poll

ChatGPT
Create a group-scheduling tracker for a set of participants and return mutual free slots.

create_booking_page_tool

ChatGPT
Create a public booking page others can use to book time on the owner's calendar. Returns the created page including the link attendees visit. Hours come from the owner's schedule library (see list_schedules): pass schedule_id to use one, or availability/timezone to create a new named schedule there. Omit both and the page follows the owner's default working hours.

create_calendar

ChatGPT
Create a new calendar in one of the user's connected calendar accounts.

create_column

ChatGPT
Create one typed custom column in the user's CRM.

create_data_table

ChatGPT
Create a typed data table for non-contact records such as deals, cases, or ledgers.

create_drive_folder

ChatGPT
Create a Google Drive folder, reusing an existing folder of the same name when present.

create_event

ChatGPT
Create a calendar event with explicit times, attendees, location, recurrence, and conferencing options.

create_gmail_draft

ChatGPT
Create one unsent draft in the user's Gmail Drafts folder for them to review and send.

create_gmail_drafts

ChatGPT
Create one personalized unsent Gmail draft per recipient, filled from each recipient's fields.

create_google_doc

ChatGPT
Create a Google Doc in Drive, optionally in a named folder and with initial content.

create_microsoft_planner_bucket

ChatGPT
Create a bucket in an accessible basic Microsoft Planner plan.

create_microsoft_planner_plan

ChatGPT
Create a basic Planner plan in a Microsoft 365 group the signed-in user already belongs to.

create_microsoft_planner_task

ChatGPT
Create and optionally assign a task in a basic Microsoft Planner plan.

create_microsoft_todo_list

ChatGPT
Create a list in the explicitly connected Microsoft To Do account.

create_microsoft_todo_task

ChatGPT
Create a Microsoft To Do task with optional dates, reminder, recurrence, and notes.

create_onedrive_folder

ChatGPT
Create a OneDrive folder, reusing an existing folder of the same name when present.

create_outlook_draft

ChatGPT
Create one unsent draft in the user's Outlook Drafts folder for them to review and send.

create_outlook_drafts

ChatGPT
Create one personalized unsent Outlook draft per recipient, filled from each recipient's fields.

create_workflow

ChatGPT
Author a workflow graph with explicit trigger, steps, and account bindings. The workflow is active by default, and run_now=true executes it immediately with its configured side effects.

create_workflow_from_template

ChatGPT
Create a workflow from a vetted server-side Carly template. Created active, like create_workflow.

delete_booking_page_tool

ChatGPT
Deactivate a booking page so its link stops accepting new bookings. Existing bookings are unaffected and the page can be reactivated.

delete_data_rows

ChatGPT
Delete selected rows from one owned data table.

delete_event

ChatGPT
Delete one calendar event by its exact identifier, optionally notifying attendees.

delete_memory

ChatGPT
Delete one saved memory document by its exact key.

delete_microsoft_planner_task

ChatGPT
Permanently delete a Microsoft Planner task using its last known ETag.

delete_microsoft_todo_list

ChatGPT
Permanently delete a Microsoft To Do list by provider list id.

delete_microsoft_todo_task

ChatGPT
Permanently delete one Microsoft To Do task by provider ids.

delete_todo

ChatGPT
Remove a to-do entirely by row_id (from list_todos), along with any sub-tasks under it. Use for 'delete/remove that todo' — NOT complete_todo, which would wrongly record it as accomplished.

describe_workflow_trigger

ChatGPT
Inspect the payload a Composio, http_poll, or email_received trigger delivers, so graph steps can reference real ${trigger.*} field paths instead of guessed ones.

download_onedrive_file

ChatGPT
Download a non-Excel OneDrive file: text inline, binaries as a readable stored attachment.

draft_mail_reply

ChatGPT
Create a draft reply on an existing Gmail or Outlook thread without sending it.

edit_google_doc

ChatGPT
Replace exact text in an existing document using its observed revision.

edit_todo

ChatGPT
Edit the title, due date, or status of one existing to-do.

find_event

ChatGPT
Search the user's selected calendars for events matching text and time filters.

find_files

ChatGPT
Find the user's stored files by name, label, or tag and return ownership-scoped handles.

find_free

ChatGPT
Find available time slots across the user's selected calendars in a requested window.

flag_mail_message

ChatGPT
Flag or unflag one message — a star in Gmail, a follow-up flag in Outlook.

get_agent_config

ChatGPT
Read one email agent's saved configuration: instructions, enabled tools, runtime_tools, data-table/file/app access scopes, accounts, and knowledge documents. Use it to answer any question about what an existing agent does or can access, and before editing one. With no id or name it lists the user's agents.

get_booking

ChatGPT
Get one booking by uid: who booked, when, on which booking page, and its current status.

get_booking_page

ChatGPT
Get one booking page's full configuration by id: duration, availability windows, questions asked of attendees, and its public link.

get_contact_emails

ChatGPT
Return email addresses for an explicit set of owned CRM record ids.

get_crm_schema

ChatGPT
List the user's CRM columns and their field types.

get_microsoft_planner_plan

ChatGPT
Read a basic Planner plan and its buckets/tasks. Premium plans are not supported by Graph.

get_user_preferences

ChatGPT
Read the user's current Carly preferences document.

get_workflow

ChatGPT
Get one owned workflow's current configuration and recent run summaries.

get_workflow_blueprint

ChatGPT
Get one vetted workflow template and its required account bindings or parameters.

get_workflow_runs

ChatGPT
List recent runs for one owned workflow, with optional step details.

grep_memory

ChatGPT
Search or list the user's saved Carly memory documents by text pattern or date range.

label_mail_message

ChatGPT
Apply one Gmail label or Outlook category to a message, optionally creating it.

list_booking_pages

ChatGPT
List personal and authorized team booking pages with their titles, durations, links, and whether each is currently accepting bookings.

list_bookings

ChatGPT
List meetings people have booked on the account's booking pages, filterable by status, booking page, and time window.

list_calendar_names

ChatGPT
List the user's connected calendar accounts and calendars with their exact identifiers.

list_calendars

ChatGPT
List connected calendars as provider::account_id::calendar_id keys.

list_data_tables

ChatGPT
List the user's data tables with compact schemas and row counts, without loading rows.

list_drive_files

ChatGPT
List or search files and folders in a connected Google Drive account.

list_event_types

ChatGPT
List the API key owner's own event types.

list_events

ChatGPT
List events from the user's selected calendars in a requested time range.

list_integrations

ChatGPT
List apps Carly can connect and whether the current user connected them. Use this when the user asks whether Carly supports an app or which apps are connected. Pass a product name such as `HubSpot as query for a short, decisive answer instead of listing the entire catalog. Every row carries connect_url`, the Carly Integrations page where all connecting happens. Gmail, Outlook, Google Drive, OneDrive and Zoom rows show the natively connected accounts. For native Drive/OneDrive tools, pass the selected account's account_id as drive_account_id/onedrive_account_id. Native account_id values and Composio connected_account_id values belong to different transports; do not use a Composio ID in a native tool. For mail selectors, use list_mail_accounts.

list_mail_accounts

ChatGPT
List the user's connected Gmail and Outlook mailboxes and their exact mailbox keys.

list_mail_attachments

ChatGPT
List the attachments on one selected Gmail or Outlook message, each with an fh_ handle_token.

list_mail_folders

ChatGPT
List the folders in one selected mailbox, with the exact names move_mail_message accepts.

list_mail_labels

ChatGPT
List the Gmail labels or Outlook categories available in one selected mailbox.

list_mcp_connections

ChatGPT
List the user's connected MCP servers, their status, and the number of available tools.

list_microsoft_planner_plans

ChatGPT
List basic Microsoft Planner plans shared with the connected work/school account.

list_microsoft_todo_lists

ChatGPT
List Microsoft To Do lists. This is separate from Carly's internal to-do list.

list_microsoft_todo_tasks

ChatGPT
List tasks in one Microsoft To Do list, returning Microsoft provider ids.

list_onedrive_files

ChatGPT
List or search files and folders in a connected OneDrive account.

list_scheduled_tasks

ChatGPT
List active scheduled agent tasks, optionally including completed and cancelled history.

list_schedules

ChatGPT
List personal and editable team working-hours schedules: each one's weekly hours, date overrides, timezone, whether it is the default, and which booking pages use it. Booking pages pick a schedule; hours are edited on the schedule.

list_skills

ChatGPT
List the user's saved skills, whether each is prose or code, and the arguments it takes.

list_slots

ChatGPT
List available slots for an owned event type.

list_todos

ChatGPT
List the user's to-dos (open by default; pass status='all' for everything, or project= to scope to one list). Returns the projects in use so you can reuse a name.

list_workflow_templates

ChatGPT
Browse Carly's vetted workflow template library by category, tag, or text query.

list_workflow_trigger_calendars

ChatGPT
List exact connected-calendar keys accepted by calendar-triggered workflow templates.

list_workflow_trigger_forms

ChatGPT
List the user's Carly forms with the numeric form_id a form_submitted workflow trigger needs, plus each form's field keys.

list_workflow_trigger_mailboxes

ChatGPT
List exact connected-mailbox keys accepted by email-triggered workflow templates.

list_workflows

ChatGPT
List the user's workflows and compact recent health information.

load_skill

ChatGPT
Read one saved skill's full instructions, argument schema, and last run error.

lookup_person

ChatGPT
Resolve a person or relationship from the user's contacts to an email address.

manage_crm_records

ChatGPT
Query, create, update, upsert, link, unlink, annotate, aggregate, or delete records across People, Companies, Deals, Notes, and custom CRM objects. Use relations to connect a deal to its company and people; use kanban or aggregate for pipeline questions.

manage_crm_schema

ChatGPT
Configure People, Companies, Deals, Notes, and custom CRM objects: list or create objects; add, edit, hide, reorder, or delete typed fields; configure deal stages and select options; and create, update, list, or delete saved table and board views.

move_event

ChatGPT
Move one event from its current calendar to a selected destination calendar.

move_mail_message

ChatGPT
Move one Gmail or Outlook message to an explicit label or folder. On Gmail, destination 'Archive' (or archive=true) removes it from the inbox.

pause_workflow

ChatGPT
Pause one owned workflow so future triggers stop firing.

preview_workflow

ChatGPT
Preview a saved workflow or template graph without saving or performing external writes.

query_availability_poll

ChatGPT
Read one tracker's status, mutually available slots, and per-participant responses.

query_crm

ChatGPT
Query CRM rows with explicit structured filters, sorting, and pagination.

query_data

ChatGPT
Run one read-only SQL SELECT over the user's own named data tables in a sandbox.

read_attachment

ChatGPT
Read text from an ownership-checked stored file or Gmail/Outlook message attachment.

read_google_doc

ChatGPT
Read document text, tabs and revision before editing.

read_knowledge_file

ChatGPT
Read one knowledge document sequentially by chunk range, for paging or search context.

read_mail_message

ChatGPT
Read one message from a selected Gmail or Outlook mailbox by exact message id.

read_memory

ChatGPT
Read one saved Carly memory document by its exact key.

read_onedrive_workbook

ChatGPT
List the worksheets in a OneDrive Excel file, or read one worksheet's rows.

resume_workflow

ChatGPT
Resume one paused owned workflow so its configured triggers can fire.

run_calendar_code

ChatGPT
Run a sandboxed snippet against the user's calendars for bulk or conditional edits.

run_pandas

ChatGPT
Analyze the user's tabular data with pandas in Carly's sandbox.

run_python

ChatGPT
Run a Python snippet in Carly's sandbox with the user's connected clients bound.

run_skill

ChatGPT
Run one already-saved skill by name with explicit arguments. A code skill executes; a prose skill returns its instructions for you to apply.

run_workflow_now

ChatGPT
Run one owned workflow immediately with its real side effects, outside its schedule.

save_memory

ChatGPT
Create or replace one named memory document for future conversations. When the saved-document limit is full, saving a new key soft-deletes the least-recently-updated saved document and returns its key as evicted.

save_skill

ChatGPT
Save a sandbox Python snippet as a named reusable skill. The body is lint-checked against the sandbox at save time, so violations are rejected here, not at run time.

schedule_task

ChatGPT
Schedule a one-time, cron, or interval agent task with an explicit prompt and delivery settings.

search_crm

ChatGPT
Search the user's CRM records by names, emails, companies, and text fields.

search_knowledge_base

ChatGPT
Search the user's uploaded knowledge documents by meaning and keyword.

search_mail

ChatGPT
Search one selected Gmail or Outlook mailbox with provider-neutral structured filters.

send_email

ChatGPT
Send a new email from Carly to explicit recipients, with optional attachments and idempotency key. Subject to a per-day recipient cap (see services/mcp_budget.py).

send_gmail

ChatGPT
Send a new email from the user's own Gmail account, so it appears sent by them.

send_mail_reply

ChatGPT
Send a reply on an existing Gmail or Outlook thread.

send_outlook_mail

ChatGPT
Send a new email from the user's own Outlook account, so it appears sent by them.

share_calendar

ChatGPT
Grant an email address an explicit access role on a selected calendar.

share_onedrive_item

ChatGPT
Grant an explicit email address view or edit access to one OneDrive file or folder.

test_workflow

ChatGPT
Execute safe read steps for one workflow while replacing every external write with a preview.

trash_mail_message

ChatGPT
Move one message to Gmail Trash or Outlook Deleted Items; reversible from the provider's UI.

unlabel_mail_message

ChatGPT
Remove one Gmail label or Outlook category from a message. On Gmail, removing INBOX archives it.

unsubscribe_from_sender

ChatGPT
Trigger a sender's RFC 8058 one-click List-Unsubscribe link from one of their messages.

update_availability_poll

ChatGPT
Edit an existing tracker's dates, hours, timezone, title, or participants in place.

update_booking_page_tool

ChatGPT
Change a public booking page's title, duration, questions, limits, or which schedule it books against (schedule_id; null = the owner's default). Hours themselves live on the schedule — change them with update_schedule. Takes effect immediately for anyone holding the link.

update_calendar

ChatGPT
Update the name, description, or settings of an existing calendar.

update_contact

ChatGPT
Add or update facts and structured fields for one or more contacts.

update_crm

ChatGPT
Update explicit fields on selected owned CRM records.

update_data_rows

ChatGPT
Update explicit fields on selected rows of one owned data table.

update_event

ChatGPT
Update one owned calendar event by its exact identifier; omitted fields remain unchanged.

update_microsoft_todo_task

ChatGPT
Update, complete, or reopen a Microsoft To Do task in place using its provider ids.

update_participant_availability

ChatGPT
Record one participant's available or unavailable times on an existing tracker.

update_scheduled_task

ChatGPT
Update the prompt, name, schedule, timezone, or status of one scheduled task.

update_skill

ChatGPT
Replace one saved skill's instructions with a complete new version.

update_user_preferences

ChatGPT
Apply one explicit natural-language change to the user's Carly preferences.

update_workflow

ChatGPT
Update one owned workflow's name, trigger, schedule, timezone, status, or whole graph.

update_workflow_step

ChatGPT
Edit, insert, or remove one step of an owned workflow's graph without rewriting the rest.

upload_to_drive

ChatGPT
Upload ownership-checked email attachments or file handles to Google Drive. Generated-output handles default to replacing a same-name file; inbound or provider-backed files default to renaming, and conflict_behavior can override either.

upload_to_onedrive

ChatGPT
Upload ownership-checked email attachments or file handles to OneDrive. Generated-output handles default to replacing a same-name file; inbound or provider-backed files default to renaming, and conflict_behavior can override either.

upsert_data_rows

ChatGPT
Create or update rows in one owned data table, matched on its key field.

upsert_rows

ChatGPT
Create or update MANY contacts in one call (bulk). Pass rows, a list of dicts each with an email or phone plus custom CRM fields. Select workspace for a team; default is Personal. Use file for a chat attachment, rows_file for a Carly fh_ CSV/TSV/JSON handle, or csv_text for pasted CSV. Map headers with field_mapping; create missing custom fields with manage_crm_schema in the same workspace first. Matches email then normalized phone; blanks preserve existing values and ambiguous/conflicting identities are skipped. Use this instead of calling update_crm repeatedly when handling more than a couple of contacts — it's one transaction and returns exact created/updated/skipped counts. For a single contact, use update_crm.

add_todo

Claude

aggregate_crm

Claude

append_onedrive_workbook_row

Claude

append_to_google_doc

Claude

archive_workflow

Claude

cancel_scheduled_task

Claude

check_calendar

Claude

complete_todo

Claude

connect_integration

Claude

create_availability_poll

Claude

create_booking_page_tool

Claude

create_calendar

Claude

create_column

Claude

create_data_table

Claude

create_drive_folder

Claude

create_event

Claude

create_gmail_draft

Claude

create_gmail_drafts

Claude

create_google_doc

Claude

create_onedrive_folder

Claude

create_outlook_draft

Claude

create_outlook_drafts

Claude

create_workflow

Claude

create_workflow_from_template

Claude

delete_booking_page_tool

Claude

delete_data_rows

Claude

delete_event

Claude

delete_memory

Claude

delete_todo

Claude

describe_workflow_trigger

Claude

download_onedrive_file

Claude

draft_mail_reply

Claude

edit_todo

Claude

find_event

Claude

find_files

Claude

find_free

Claude

flag_mail_message

Claude

get_booking

Claude

get_booking_page

Claude

get_contact_emails

Claude

get_crm_schema

Claude

get_user_preferences

Claude

get_workflow

Claude

get_workflow_blueprint

Claude

get_workflow_runs

Claude

grep_memory

Claude

label_mail_message

Claude

list_booking_pages

Claude

list_bookings

Claude

list_calendar_names

Claude

list_calendars

Claude

list_data_tables

Claude

list_drive_files

Claude

list_event_types

Claude

list_events

Claude

list_integrations

Claude

list_mail_accounts

Claude

list_mail_attachments

Claude

list_mail_folders

Claude

list_mail_labels

Claude

list_onedrive_files

Claude

list_scheduled_tasks

Claude

list_skills

Claude

list_slots

Claude

list_todos

Claude

list_workflow_templates

Claude

list_workflow_trigger_calendars

Claude

list_workflow_trigger_mailboxes

Claude

list_workflows

Claude

load_skill

Claude

lookup_person

Claude

move_event

Claude

move_mail_message

Claude

pause_workflow

Claude

preview_workflow

Claude

query_availability_poll

Claude

query_crm

Claude

query_data

Claude

read_attachment

Claude

read_knowledge_file

Claude

read_mail_message

Claude

read_memory

Claude

read_onedrive_workbook

Claude

resume_workflow

Claude

run_calendar_code

Claude

run_pandas

Claude

run_python

Claude

run_skill

Claude

run_workflow_now

Claude

save_memory

Claude

save_skill

Claude

schedule_task

Claude

search_crm

Claude

search_knowledge_base

Claude

search_mail

Claude

send_email

Claude

send_gmail

Claude

send_mail_reply

Claude

send_outlook_mail

Claude

share_calendar

Claude

share_onedrive_item

Claude

test_workflow

Claude

trash_mail_message

Claude

unlabel_mail_message

Claude

unsubscribe_from_sender

Claude

update_availability_poll

Claude

update_booking_page_tool

Claude

update_calendar

Claude

update_contact

Claude

update_crm

Claude

update_data_rows

Claude

update_event

Claude

update_participant_availability

Claude

update_scheduled_task

Claude

update_skill

Claude

update_user_preferences

Claude

update_workflow

Claude

update_workflow_step

Claude

upload_to_onedrive

Claude

upsert_data_rows

Claude

upsert_rows

Claude

Capabilities

Writes

Example Prompts

Click any prompt to copy it.

App Stats

269

Tools

3

Prompts

ChatGPT, Claude

Platforms

Works with

ChatGPT
Claude

Data refreshed daily