---
title: "Agent quickstart"
description: "Connect an MCP client to a Sincerely workspace in three steps, then learn where the confirmation gate sits and which tools a new workspace can reach."
canonical: https://trysincerely.com/docs/agent-quickstart
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.
# Agent quickstart

> Connect an MCP client to a Sincerely workspace in three steps, then learn where the confirmation gate sits and which tools a new workspace can reach.

Source: https://trysincerely.com/docs/agent-quickstart

Connecting an agent takes three steps: point a client at the MCP endpoint, let a person with access to the workspace approve it in a browser, then call the tools the catalog offers. There is no API key to issue and no REST request to sign.

## 1. Add the server

The endpoint is `https://trysincerely.com/api/mcp`. It also answers at `https://trysincerely.com/mcp`, because that is what people type.

For Claude Code:

```bash
claude mcp add --transport http sincerely https://trysincerely.com/api/mcp
```

For Cursor, Windsurf and other clients that take a JSON block:

```json
{
  "mcpServers": {
    "sincerely": {
      "type": "http",
      "url": "https://trysincerely.com/api/mcp"
    }
  }
}
```

The transport is stateless streamable HTTP. One `POST` carries one complete JSON-RPC exchange, there is no event stream, and a `GET` returns `405`.

## 2. Let a person approve it

The first call returns `401` and points at the protected-resource document. Follow it, register the client, and open the browser flow. The person signs in to Clerk themselves and approves the client. Your agent never sees or handles their password.

Request `user:org:read` among the scopes. Without it the connection lands in the person's personal workspace rather than their team's, which looks like an empty account even when the team workspace is full of data. [Authorization](https://trysincerely.com/docs/mcp-authorization) covers the whole flow and that trap.

## 3. Check the workspace before working in it

Call `get_setup_state` first. A new, empty workspace lists a short setup catalog, and calls outside it are refused until setup is finished. Work through it and call `complete_setup`, which runs rather than returning a link: it spends nothing and mails nothing. Read the `next` list it returns, then refresh `tools/list`. See [workspace setup](https://trysincerely.com/docs/mcp-setup).

After setup the listing is thirteen tools rather than the whole catalog: six orientation reads, the three lists most sessions open with (`list_audiences`, `list_campaigns` and `list_designs`), `report_feedback` for telling the Sincerely team what went wrong, plus `search_tools`, `run_read_tool` and `run_action_tool`. Call `search_tools` with no query for the index of areas and toolkits, with a `domain` or `toolkit` to page through that group's tools with their argument schemas, or with a goal in plain language and it returns the tools that do it. Nothing was removed, and a name you already know still works through `tools/call`. See [the tool catalog](https://trysincerely.com/docs/mcp-tools).

## What you cannot do

Anything a person has to see or pay for returns a confirmation link rather than an outcome: a draft or design to review, printing a piece, sending or cancelling mail, launching, pausing or resuming, spending money or credit, changing suppression, and granting or revoking authority. The person clicks it. The card expires after an hour. No credential, scope or client setting turns that gate off, and the ticket is never handed to the model. [Confirmations](https://trysincerely.com/docs/mcp-confirmations) has the mechanics.

Setup and configuration that spends nothing and mails nothing is not held. The brand kit, the workspace name, workspace preferences and `complete_setup` all run when you call them. `set_return_address` is the exception that moves: it saves on a workspace with no campaigns or pieces, and waits for a person once mail exists that prints it.

## If the person has no account yet

Point the client at `https://trysincerely.com/api/mcp` anyway. An unauthenticated authorize request sends them to sign-in and back to the consent screen, so they create the account and approve the client in one pass, with no inbox code and no separate sign-in link.

Only when the client can neither open a browser nor show them a URL is the second server the right answer. `https://trysincerely.com/api/mcp/signup` needs no credential at all. It mails a code, creates a workspace on the free audit plan, and sends the sign-in link to the person's inbox rather than to the agent. See [the signup server](https://trysincerely.com/docs/mcp-signup).

A person who has not accepted the Terms still completes the handshake and reads `tools/list`. Every tool call then answers with an error result carrying `accept_url` and a `next` sentence instead of running. Give them the URL and retry.

## What to read next

Read [how MCP works here](https://trysincerely.com/docs/mcp-overview) for the argument behind the design, or the [tool catalog](https://trysincerely.com/docs/mcp-tools) for what the product tools cover. The three [calculators](https://trysincerely.com/docs/calculators) need no account at all and are the fastest way to check that a client can reach us.

---

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
