Skip to main content
Glama

Ask the admin to approve a server or plugin

request_approval
Idempotent

Creates an approval request in the user's organisation for an MCP server (e.g. project:linear) or a plugin, when the team policy blocks it or does not list it. Use it only when the user asks.

Instructions

Creates an approval request in the user's organisation for an MCP server (e.g. project:linear) or a plugin, when the team policy blocks it or does not list it. Use it only when the user asks. The admin decides on the command line; this tool cannot approve anything.

Input Schema

NameRequiredDescriptionDefault
kindYes
noteNoWhy the user needs it.
identityYesServer as "scope:name" or plugin name.
confirm_networkYesMust be true: the request is sent to the team backend. Ask the user first.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.9.1

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare the write/network/idempotent profile, so the bar is lower, and the description adds real context beyond them: the request is sent to the team backend, a human admin decides out-of-band on the command line, and the tool itself grants nothing. It does not explain what happens to the request afterwards or whether duplicates collapse, despite idempotentHint=true.

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

Conciseness5/5

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

Three short sentences with the action, the trigger, and the capability limit front-loaded in that order. No redundant restatement of the title or schema.

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?

For a network-touching request tool with no output schema, the description covers what is created, where it goes, and who resolves it, which is enough to call it correctly. A brief statement about the returned acknowledgement or subsequent approval status would close the remaining gap.

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?

With 75% schema coverage the baseline is 3, and the description earns an extra point by illustrating the identity format (project:linear) that maps to the schema's scope:name pattern. It says nothing about note or confirm_network, which the schema already documents, so it adds example semantics rather than new parameter detail.

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+resource ("Creates an approval request in the user's organisation") scoped to two artifact types, MCP server or plugin, and gives a concrete identity example (project:linear). It also draws a hard boundary the siblings don't cover: "this tool cannot approve anything."

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?

Gives an explicit trigger ("when the team policy blocks it or does not list it") and a gating restriction ("Use it only when the user asks"), which is clear when-to-use and when-not guidance. It stops short of naming a sibling to check policy status first, but no sibling obviously fills that role.

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