Skip to main content
Glama

Request Approval

request_approval

Ask the ActivitySmith account owner for a decision. Sends an actionable Live Activity when available, falls back to an actionable Push Notification, and waits up to 45 seconds. If the result is pending, call wait_for_approval repeatedly with the returned approval ID. The approval ID stays valid across client timeouts and reconnects. Choose action-specific approve_label and reject_label values when they make the decision clearer, such as Send/Cancel or Deploy/Hold. When approving a concrete command or tool call, include execution_context and the most relevant scope so the user can evaluate the actual operation.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
scopeNoOptional primary scope for the decision. For local shell commands, provide working_directory with the full current working directory. Otherwise use the most decision-relevant project, environment, customer, account, or resource. Omit when no meaningful scope exists.
detailsNoOptional short context that helps the user decide.
deliveryNoOptional delivery preference. auto prefers a Live Activity and falls back to a Push Notification.auto
questionYesThe decision the user needs to make.
appearanceNoOptional pending Live Activity appearance. Customize its tint, SF Symbol, and badge. This does not change Push Notifications or resolved approval states.
reject_labelNoOptional alternative action label. Choose a clear outcome such as Cancel, Keep Draft, or Don't Send. Defaults to Reject.Reject
approve_labelNoOptional positive action label. When approving a specific action, prefer a concrete verb such as Send, Deploy, Publish, or Delete. Defaults to Approve.Approve
execution_contextNoOptional structured context for the specific operation awaiting approval. Include it for commands and tool calls; omit it for question-only decisions.
target_channel_slugsNoAdvanced optional targeting for team accounts. Omit to notify the account-wide default devices.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
approvalYes
next_actionNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations (readOnlyHint=false, idempotentHint=false, openWorldHint=true) by disclosing the 45-second wait, the delivery fallback chain, and that the approval ID survives client timeouts and reconnects. The instruction to re-poll rather than re-request implicitly conveys the non-idempotent behavior that a repeat call would open a second request.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The what/how/when are front-loaded in the first two sentences, and the remaining sentences carry concrete directives rather than filler. Slightly dense with five distinct instructions packed together, but every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be documented, and the description still usefully references the returned approval ID and pending state. For a 9-parameter tool with nested objects and a 45-second blocking wait, it covers polling, labels, and execution_context well; minor gaps remain on target_channel_slugs and appearance usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real operating meaning: it explains when to choose action-specific approve_label/reject_label values ('Send/Cancel', 'Deploy/Hold') and when to include execution_context plus the most relevant scope. It does not address target_channel_slugs or appearance, which the schema handles alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Ask the ActivitySmith account owner for a decision') and immediately explains the mechanism (Live Activity, Push Notification fallback, 45-second wait). An agent can distinguish this from siblings like wait_for_approval, get_approval, and cancel_approval without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the follow-up case: 'If the result is pending, call wait_for_approval repeatedly with the returned approval ID.' It also gives conditional guidance for labels and for including execution_context/scope when approving a concrete command. It stops short of an explicit when-not-to-use rule (e.g., when to prefer send_push_notification or cancel_approval instead).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources