# Connect an agent

**One MCP connection, and the agent can read your register and ask permission
before it promises anything.** Two tools, no change to how your agent is
orchestrated, and nothing to install.

## The connection

Point your agent's MCP client at your workspace's endpoint and give it the key
you were issued. The endpoint is `https://app.reynforce.com/t/<your
workspace>/mcp`, and the key goes in the `Authorization` header as a bearer
token, which is what every MCP client already does.

**The tool list you get back depends on what the key is.** An agent key sees
`search_claims` and `check_action`. **A signed-in person** additionally sees
the tools that write a claim — because an agent may read the register and ask
permission, and may never accept a claim or approve its own mandate.

## The two tools

**`search_claims`** — the claims your company stands behind, each with its
owner, the date it was last checked, and its state. **Read the state before
citing a claim**: one that is overdue, unowned or disputed is *unusable*, and
repeating it anyway is the failure this exists to prevent.

**`check_action`** — *may I say this.* Describe the action: what it commits to,
how complete the commitment is, which claims it relies on, and whether it has
happened yet. What comes back is a decision, the register's **own** reading of
every claim you cited, and a list of what the check did not evaluate.

```
check_action(
  intent="send",            # or "draft", which records the check and no touch
  happened=false,
  commitment={...},         # what it commits to, not the message text
  cites=["clm_…"],          # the claims being relied on
)
```

## Three things to know before you build on it

**The record is a side effect of the check, not something you send.** There is
no tool that files a commitment. So you can be wrong about your own action and
still cannot be wrong about the record — and there is deliberately no way to
ask without leaving a trace, because an agent that can ask *would this be
allowed* with nothing written down can ask until the answer is yes.

**Every answer carries `observation_only: true` today.** It records; it does
not block. That travels in the answer rather than in this page, so an agent
honouring it keeps working unchanged the day it becomes false.

**Describe the action accurately.** Reynforce checks what you say your message
claims; it does not read your message. The record is only as honest as the
description, which is the one thing we are asking of you.

## What it holds

The commitment, which claims it relied on, and **the sentence the promise was
made in, capped at 1,000 characters** — so the claim is checkable. Not the rest
of the message. </privacy.md> is the full account.

## If you cannot connect yet

</llms.txt> is the short version for an agent arriving before a person, and
`/request-access` takes a company name and the email of the person responsible.
**Early access**: tell us what your agent is and we will say honestly whether
this helps yet.
