Skip to main content
Glama
Kiro MCP Server

Kiro MCP Server

Answer a Kiro permission

kiro_permission_respond

Answer a pending Kiro permission request by selecting an offered option ID to approve or deny a tool call. Use scope and resource when granting persistent consent.

Instructions

Answer a pending permission with one of its offered option_ids (never anything else). allow_always needs the operator's KIRO_MCP_ALLOW_PERSISTENT_CONSENT; reject_always is always allowed because it only narrows Kiro. For an always option, scope (session, workspace, or user) and resource (a pattern; default the request's resource) are sent as Kiro consent. Shell commands can be approved only when the operator sets KIRO_MCP_ALLOW_SHELL. A denied tool call fails and the turn continues.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "permission_id": "<permission_id>",
      "option_id": "<option_id>"
    },
    "name": "kiro_permission_respond"
  }
}

Input Schema

NameRequiredDescriptionDefault
scopeNo
resourceNo
option_idYes
permission_idYes

Output Schema

NameRequiredDescriptionDefault
resolvedYes
option_idYes
option_kindYes
permission_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A4.3/5.0
Behavior4/5

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

The description goes well beyond the annotations by disclosing operator environment gates, the asymmetry between allow_always and reject_always, what scope/resource are used for (Kiro consent), and the post-condition that a denied tool call fails while the turn continues. The annotations already flag a non-read-only, non-idempotent write, and the text adds the authorization constraints on top. It stops short of saying whether the answer is idempotent or what happens if the permission has already expired.

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 core constraint (use an offered option_id, nothing else) is front-loaded, and each subsequent sentence adds a distinct operational gate rather than restating the schema. The density is high but the parenthetical asides make it slightly slower to scan than strictly necessary.

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 four-parameter permission-answering tool with an output schema, the description covers the authorization gates, scope defaults, and failure behavior an agent needs. The one gap is how to obtain a pending permission_id and its option_ids before calling, which the agent must infer from the sibling kiro_permissions.

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 0% schema description coverage, the description carries the burden and largely does: option_id is constrained to the request's offered values, scope is limited to session/workspace/user for always options, and resource is a pattern defaulting to the request's resource. Only permission_id is left implicit, and its purpose is recoverable from its name and the perm_ pattern.

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?

The description states a specific verb and resource: answer a pending permission by returning one of its offered option_ids, and explicitly forbids inventing values ('never anything else'). This is clearly distinct from the sibling kiro_permissions, which the agent can infer enumerates the pending requests this tool resolves.

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?

It gives concrete conditions for each choice class: allow_always requires KIRO_MCP_ALLOW_PERSISTENT_CONSENT, reject_always is always permitted, and shell commands need KIRO_MCP_ALLOW_SHELL. What it does not say is where the pending permission and its option_ids come from (presumably kiro_permissions) or what to do when no option is acceptable.

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