---
title: "The tool catalog"
description: "How to reach the MCP tool catalog through search_tools, what it covers area by area, and which capabilities are held for a human confirmation."
canonical: https://trysincerely.com/docs/mcp-tools
last_updated: 2026-09-10
---
> If you are an AI agent: read https://trysincerely.com/agents/policy.md before any write call.
> Start at https://trysincerely.com/llms.txt to choose one page. Access instructions are at
> https://trysincerely.com/auth.md. Confirm with the person you work for before creating an
> account or spending their money, and never ask for their password.
# The tool catalog

> How to reach the MCP tool catalog through search_tools, what it covers area by area, and which capabilities are held for a human confirmation.

Source: https://trysincerely.com/docs/mcp-tools

Once setup is finished, `tools/list` answers with thirteen tools, not the whole catalog. A workspace that has not finished setup lists its setup catalog instead; see [workspace setup](https://trysincerely.com/docs/mcp-setup). Nine are reads nobody should have to search for, and one is `report_feedback`, the action that tells the Sincerely team what went wrong. The other three are how you reach everything else:

- `search_tools` is three calls in one. With no query it returns the index: every area and toolkit you can reach, with a sentence and a tool count each. With a `domain` or `toolkit` and no query it lists that group's tools with their argument schemas, in pages; when the reply carries `nextCursor`, call again with `cursor` to continue, and walking every domain this way reaches the whole catalog. With a goal in plain language, for example "pause a campaign", it returns the tools that do it with their argument schemas, narrowed by `domain` or `toolkit` when one is given. Pass `names: true` with no query for the flat list of every tool by name.
- `run_read_tool` runs a tool that only reads. It carries `readOnlyHint`, so a client that runs reads without asking still can, and it refuses anything that writes.
- `run_action_tool` runs a tool that changes something.

The catalog itself did not shrink. Every tool below is still reachable, and a client that already knows a name can also call it directly through `tools/call`. What changed is that the definitions are fetched when they are needed rather than pushed on every connect: the full listing was about 126 KB, which is more than some clients accept at all.

This page names the areas and representative tools; it is not the full list of signatures. `search_tools` is authoritative, because what you can reach is filtered by your role, by workspace features, and by whether setup is finished.

The held actions named on this page are collected in one list below. A held call returns a confirmation link rather than an outcome. A card is for what a person has to see or pay for, so setup and configuration that spends nothing and mails nothing is not on the list. Search results mark every held tool with `confirm: true` and say so in the description. See [confirmations](https://trysincerely.com/docs/mcp-confirmations).

## Orientation

These nine reads are the ones `tools/list` still names, because searching for them makes no sense. `get_overview` is the first call worth making on an established workspace: what is running, what is waiting, what needs a person. `list_audiences`, `list_campaigns` and `list_designs` are listed too, because what exists is the question most sessions ask before any goal is formed, and a search that returns the schema of `list_campaigns` is a round trip spent learning nothing. `search_docs` and `read_doc` read the product documentation, so an agent can answer a question about behaviour without guessing at it. `get_setup_state` says whether the workspace is ready to work in, `get_my_permissions` says what the person who authorized you may do, and `get_confirmation_status` reports what they decided about a held action.

`report_feedback` is listed beside them and is the one action that is. Call it the moment a tool fails or answers wrong, a tool could work better, the product has a defect, you have an idea, or the documentation left a gap, then carry on: the report reaches the Sincerely team's Slack channel with the workspace, the surface, and the tool named, and nothing in the workspace changes. Nobody replies through it. Describe the mechanism, never a person's data.

## Audiences and contacts

Build and inspect the people you mail. `list_audiences` and `import_csv_audience` cover the ordinary routes in, `create_sourced_audience` starts a sourced build from a description of the ideal customer, and `get_mailability_audit` reports what would fail before anything is spent.

`list_contacts` and `get_contact_profile` read individuals, and `save_contact` adds one or corrects one. `set_contact_verdict` clears addresses out of the review queue, either by naming ids or by taking everything one filter matches. `set_audience_membership` moves people between lists without touching their enrolments.

## CRM

`sync_crm` pulls, `get_crm_sync_health` says whether the last run was any good, and `list_crm_runs` is the history. The Salesforce scope tools, `list_salesforce_list_views` and `set_salesforce_scope`, decide what comes across, and `set_salesforce_writeback` decides what goes back. `preview_action` counts the contacts a scope would import, and shows the Salesforce Task a writeback would create, before either is saved.

## Writing

`list_messages` and `get_message` read the draft queue. `edit_message` and `regenerate_message` change one draft. `review_message` records a person's decision on one, and `bulk_approve_messages` does a queue at once.

## Design

`get_studio_context` is the orientation call. `generate_designs`, `edit_design_copy` and `edit_design_layout` produce and revise layouts, `generate_design_proof` renders one to look at, and `approve_design` is what makes a version usable by a piece. `import_design_html` saves an HTML concept, or one side's `code` from `get_design_source` (one side per read; a long side comes in `chunks` cut on tag boundaries that concatenate to the whole, and its `artifact` is the whole side as one file), as an unapproved draft and returns the studio URL with a conversion report saying what the print layout kept, changed and dropped; every design write returns that studio URL, where the person sees the draft with the reserved address zone drawn. `get_brand_kit` and `update_brand_kit` own the marks, colours and type everything is laid out against.

`set_return_address` changes what is printed on every piece the workspace sends. It saves on the call while the workspace has no campaigns or pieces, and waits for a person once there is mail that prints it. `update_brand_kit` is never held: it spends nothing and mails nothing, and a design still needs `approve_design` before a piece can use it.

## Landing pages

`list_landing_designs`, `generate_landing_designs`, `edit_landing_draft` and `set_landing_status` cover the page itself. `assign_campaign_landing` points a campaign at one. `claim_landing_domain` and `claim_custom_domain` decide which domain is printed on paper, and `verify_custom_domain` completes the DNS check. `list_landing_submissions` reads what visitors sent back.

## Campaigns and sending

`list_campaigns` and `get_campaign` read. `update_campaign_config` changes a campaign before it runs, and `preview_action` says what launching, pausing, ending, sending a piece, a guardrail change or a Salesforce scope would do before anyone does it. `launch_campaign` starts it, and `set_campaign_status` pauses, resumes, ends or archives it.

`send_piece` and `send_gift` are the one-off path. `list_pieces` reads the ledger, and with `upcoming: true` the forecast of touches that have not been mailed yet. `get_piece` reads one piece, and with `proof: true` the frozen print proof it was submitted as. `cancel_piece` stops one that has not reached a vendor yet.

## Measurement

`get_analytics` reports a window of mail flow, funnel and rates, and slices the same window by campaign, design, format, touch, state, country or title when you pass `breakdown`. `get_attribution` reports on one campaign. `list_results` and `get_result` read the lift readouts. `record_outcome` and `list_outcomes` cover the outcomes a rep logs, which is rep-level work rather than an admin action.

## Approvals and guardrails

`list_approvals` and `decide_approval` work the approval queue. `preview_action` shows what a change to budgets, caps or review mode would do before `update_guardrails` does it. `list_audit_log` is the record of who changed what.

## Workspace

`get_settings`, `get_my_permissions` and `get_billing` describe the workspace and the caller's authority inside it. `start_plan_checkout`, `start_credit_topup` and `start_gift_funds_purchase` prepare a payment. `invite_team_member`, `change_team_member_role`, `remove_team_member` and `revoke_team_invitation` manage membership.

`get_setup_state` and `complete_setup` are covered in [workspace setup](https://trysincerely.com/docs/mcp-setup). `complete_setup` runs on the call rather than waiting for a card.

`get_confirmation_status`, `list_confirmations` and `cancel_confirmation` follow the cards this connection is waiting on: where one stands, which are still open, and withdrawing one that is no longer wanted. See [confirmations](https://trysincerely.com/docs/mcp-confirmations).

## Held actions named on this page

These are the actions named above that the current catalog marks with `confirm: true`:

- `import_csv_audience`
- `export_csv` (for the kinds that carry customer data, not for measurement or the audit log)
- `set_contact_verdict`
- `set_audience_membership` (when it removes people, not when it adds them)
- `set_salesforce_scope`
- `set_salesforce_writeback`
- `review_message`
- `bulk_approve_messages`
- `approve_design`
- `set_return_address`
- `set_landing_status`
- `assign_campaign_landing`
- `claim_landing_domain`
- `claim_custom_domain`
- `verify_custom_domain`
- `update_campaign_config`
- `launch_campaign`
- `set_campaign_status`
- `send_piece`
- `send_gift`
- `cancel_piece`
- `record_outcome`
- `decide_approval`
- `update_guardrails`
- `start_plan_checkout`
- `invite_team_member`
- `change_team_member_role`
- `remove_team_member`
- `revoke_team_invitation`

## What is not here

Some capabilities exist in the product and are deliberately absent from MCP. Anything that returns a browser path belongs to the app, because an external caller has no browser and no cookie to follow it with. Bulk exports are not in that group. `export_csv` writes contacts, an audience, a campaign's recipients, sent mail, the measurement breakdown, landing responses or the audit history, and hands back an artifact reference that `/api/mcp/files/<ref>` resolves under your bearer token. The company directory is absent for a different reason: an open MCP server offering it would be a free company search API we host.

## What to read next

[Confirmations](https://trysincerely.com/docs/mcp-confirmations) explains the held actions. [How MCP works here](https://trysincerely.com/docs/mcp-overview) explains why the catalog is shaped this way rather than as a REST API.

---

Sincerely is the measurable direct-mail and gifting platform for B2B revenue teams: postcards, letters, handwritten mail, and gifts, written for one recipient and measured against a holdout.

Contact Sincerely: https://trysincerely.com/contact

Agent routing index: https://trysincerely.com/llms.txt
