Provides approval capabilities through a typed MCP contract.
Approval MCP Server
A multi-stage approval workflow engine for ADK-Rust Enterprise legal and media-content agents. 17 MCP tools: configurable workflow templates, stage rules (all-of / any-of / quorum), decisions with delegation and…
What it gives an agent
A purpose-built capability behind one MCP connection.
The server owns its domain logic and publishes a tool contract an MCP client can discover. ADK-Rust can load that contract into an agent, normalize each schema for the chosen model provider, and keep the connection lifecycle outside the agent’s business logic.
Architecture
How Approval MCP Server fits into an agent system.
The model never needs the implementation details or credentials of the system behind the server. It sees reviewed tool definitions. The MCP client handles discovery and calls, while the server keeps ownership of validation, policy, and communication with its domain system.
ADK-Rust agent
Chooses a capability from the reviewed tool catalog.
MCP client
Discovers schemas, sends calls, and receives typed content.
Approval MCP Server
Validates the request and owns 17 documented tool contracts.
Domain system
Keeps the API, data, credentials, and business rules behind the server.
From the project documentation
The server’s published architecture
Tool catalog
What can an agent ask Approval MCP Server to do?
Each tool has a stable name, a human-readable purpose, and a JSON input contract discovered during MCP initialization. Risk classes come from the project’s registry manifest when one is available.
17 named tools
list_workflowsList workflow templates, optionally by domain
read onlyget_workflowGet a workflow template's stage definitions
read onlycreate_workflowCreate a custom workflow template (ordered stages with rules and approvers)
internal writecreate_requestCreate an approval request bound to a workflow (optionally submit immediately)
internal writeget_requestGet an approval request's full detail including stages, votes, and audit trail
read onlysearch_requestsSearch/filter approval requests by text, domain, type, status, or approver
read onlysubmit_requestSubmit a draft request for review (activates the first stage)
internal writedecideRecord an approver's decision on the active stage and evaluate the stage rule
internal writemy_queueList requests awaiting a given approver's decision
read onlycancel_requestCancel/withdraw a request with a reason
internal writeescalateReassign the active stage to new approvers (escalation)
internal writedelegateDelegate approval authority from one approver to another for a request
internal writeGovernance
Understand the effect of every tool.
A server connection inherits the authority of its credentials and deployment environment. The declarations below come from this project’s README and MCP registry manifest; your application still decides which tools an agent receives and where approval is required.
- Gated writes — decide, cancel_request, escalate, and delegate require approval in production (requires_approval); reads are read_only.
- Defensible audit — every state change is recorded immutably with actor and timestamp.
- No raw documents — items under approval and attachments are opaque references/URIs, never embedded content.
- Integration scaffold — the in-memory store is for development; back it with a durable store and bind approver/actor to authenticated identities in production.
MCP surface
What the current documentation declares.
MCP can carry tools, resources, prompts, structured results, progress, cancellation, and long-running work. This record highlights the modern protocol features explicitly mentioned by this repository.
Install and connect
Follow the project’s documented starting point.
Install the server in the environment that owns its credentials and domain access. Add it to your MCP host, verify the discovered tools, and narrow the toolset before giving it to a production agent.
cargo install mcp-approvallet toolset = McpToolset::from_stdio(
"mcp-approval",
["mcp-approval"],
).await?;
let agent = LlmAgentBuilder::new("agent")
.tools(toolset.tools().await?)
.build()?;Commands and configuration are extracted from the public README. Confirm prerequisites, environment variables, and release-specific options in the official documentation before deployment.
Official documentation
Continue with the project maintainers’ source of truth.
This page provides an approachable map of the server. The repository remains authoritative for exact schemas, prerequisites, configuration, examples, tests, releases, and security updates.
Keep exploring
More in security & governance.
Source record
Release and repository metadata for this catalog entry.
- Version
- 1.0.0
- License
- Apache-2.0
- Tools
- 17
- Revision
- ca104c99caa8
- Updated
- Jun 9, 2026