60e0ffc959
Upgrade checks / Notify on failure (push) Has been cancelled
Upgrade checks / Close issue on success (push) Has been cancelled
Schema Crash Test / Real-world schema crash test (232K schemas) (push) Has been cancelled
Run static analysis / static_analysis (push) Has been cancelled
Tests / Tests: Python 3.10 on ubuntu-latest (push) Has been cancelled
Tests / Tests: Python 3.13 on ubuntu-latest (push) Has been cancelled
Tests / Tests: Python 3.10 on windows-latest (push) Has been cancelled
Tests / Tests with lowest-direct dependencies (push) Has been cancelled
Tests / MCP conformance tests (push) Has been cancelled
Tests / Integration tests (push) Has been cancelled
Tests / Package install smoke (push) Has been cancelled
Upgrade checks / Static analysis (push) Has been cancelled
Upgrade checks / Tests: Python 3.10 on ubuntu-latest (push) Has been cancelled
Upgrade checks / Tests: Python 3.13 on ubuntu-latest (push) Has been cancelled
Upgrade checks / Tests: Python 3.10 on windows-latest (push) Has been cancelled
Upgrade checks / Integration tests (push) Has been cancelled
Update MCPServerConfig Schema / update-config-schema (push) Has been cancelled
Update SDK Documentation / update-sdk-docs (push) Has been cancelled
59 lines
1.5 KiB
Plaintext
59 lines
1.5 KiB
Plaintext
---
|
|
title: approval
|
|
sidebarTitle: approval
|
|
---
|
|
|
|
# `fastmcp.apps.approval`
|
|
|
|
|
|
Approval — a Provider that adds human-in-the-loop approval to any server.
|
|
|
|
The LLM presents a summary of what it's about to do, and the user
|
|
approves or rejects via buttons. The result is sent back into the
|
|
conversation as a message, prompting the LLM's next turn.
|
|
|
|
Requires ``fastmcp[apps]`` (prefab-ui).
|
|
|
|
Usage::
|
|
|
|
from fastmcp import FastMCP
|
|
from fastmcp.apps.approval import Approval
|
|
|
|
mcp = FastMCP("My Server")
|
|
mcp.add_provider(Approval())
|
|
|
|
|
|
## Classes
|
|
|
|
### `Approval` <sup><a href="https://github.com/PrefectHQ/fastmcp/blob/main/fastmcp_slim/fastmcp/apps/approval.py#L49" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>
|
|
|
|
|
|
A Provider that adds human-in-the-loop approval to a server.
|
|
|
|
The LLM calls the ``request_approval`` tool with a summary and
|
|
optional details. The user sees an approval card with Approve and
|
|
Reject buttons. Clicking either sends a message back into the
|
|
conversation (via ``SendMessage``), triggering the LLM's next turn.
|
|
|
|
The message appears as if the user sent it, so the LLM sees
|
|
something like ``'"Deploy v3.2 to production" is APPROVED'``.
|
|
|
|
Example::
|
|
|
|
from fastmcp import FastMCP
|
|
from fastmcp.apps.approval import Approval
|
|
|
|
mcp = FastMCP("My Server")
|
|
mcp.add_provider(Approval())
|
|
|
|
Customized::
|
|
|
|
Approval(
|
|
title="Deploy Gate",
|
|
approve_text="Ship it",
|
|
approve_variant="default",
|
|
reject_text="Abort",
|
|
reject_variant="destructive",
|
|
)
|
|
|