Docs

#Quickstart: Agents (MCP)

Give an AI agent a human to ask. By the end, your coding agent will pause before a consequential step, the decision will show up in the Inbox, and the agent will continue with your answer. No code to write.

(Writing code instead of driving an agent? See Quickstart: Your code.)

#1. Get an API key

Dashboard → API Keys → create one. It's shown once (hashed afterward), so store it somewhere safe.

#2. Add the Ratifia MCP server

Fastest path: paste this to your agent. It detects the client, edits the right config, and asks you for the key rather than guessing:

text
Install the Ratifia MCP server into my MCP client,as a stdio server:  name: ratifia · command: npx · args: ["-y", "@ratifia/mcp"]  env: RATIFIA_API_KEY (required), RATIFIA_APPROVER_EMAIL (optional)Ask me for both values. Never invent them. Then tell me to restart the clientand confirm the tools request_decision, await_decision and check_decision exist.

By hand, for Claude Code:

bash
claude mcp add ratifia -e RATIFIA_API_KEY=<key> \  -e RATIFIA_APPROVER_EMAIL=<you@example.com> -- npx -y @ratifia/mcp

Claude Desktop, Cursor and other clients use the JSON form in Configure it.

#3. Ask the agent to check with you

Restart your client, then try something like:

text
Before you create a file called hello.txt,ask me for approval with Ratifia.

The agent calls request_decision, then await_decision. Nothing happens until you answer.

Deliberately harmless: you're testing whether the gate fires, and the honest answer is that you don't know yet. Once you've watched it hold, point it at the things you actually care about: deploys, deletes, spend, anything that leaves your machine.

#4. Decide

The decision appears in the Inbox (and by email, Slack, or Discord if you've configured notifications) with the agent's question and context. Approve or reject, and the agent receives the verdict plus your note and continues on that branch.

#5. (Optional) Make it non-bypassable

The tools above are model-elected: the agent chooses to ask. To force a decision on specific tools whether or not it asks, wire the gate command as a Claude Code PreToolUse hook. See Enforce approval on specific tools.

More than yes/no

request_decision can ask you to pick from options, type a value, or refine a draft (an email, a message) before it goes out. See Decision shapes and Conversational Approvals.

Next: the full MCP reference for every env var, tool, and the hook, or the Human-in-the-loop guide for context, policy gates, quorum, and SLAs.