Skip to main content
Glama
Kiro MCP Server

Kiro MCP Server

Pending Kiro permissions

kiro_permissions
Read-onlyIdempotent

Lists Kiro's pending permission requests with offered options and consent details, so you can review and respond before they expire.

Instructions

List Kiro's pending permission requests (all sessions, or one), with the options exactly as offered, the consent details (capability, resource, workspace root), and the MCP tool identity, which is untrusted display data. Answer with kiro_permission_respond before expires_at, or the request is rejected.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "kiro_permissions"
  }
}

Input Schema

NameRequiredDescriptionDefault
session_idNoKiro session id (sess_<uuid>).

Output Schema

NameRequiredDescriptionDefault
policyYes
pendingYes
shell_approvalsYes
persistent_consentYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), yet the description adds material context beyond them: the pending requests carry an expires_at deadline that converts inaction into rejection, and the MCP tool identity is explicitly flagged as untrusted display data. That trust-boundary warning is exactly the kind of behavioral disclosure annotations cannot express.

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?

Two sentences, no filler, with the scope constraint and the deadline both front-loaded. The first sentence is dense — it stacks return contents, a trust caveat, and scoping into one line — but every clause earns its place and nothing is redundant.

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

Completeness5/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 shape need not be spelled out, yet the description still names the salient fields (options as offered, capability, resource, workspace root) and the deadline that governs action. For a one-parameter read tool with full annotation coverage, nothing an agent needs to call it correctly is missing.

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% for the single optional session_id, so the schema already carries the format. The description still adds meaning by stating that omitting it lists across all sessions while supplying one narrows to that session, which the schema alone does not say. It adds value without over-explaining.

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 opens with a specific verb and resource ('List Kiro's pending permission requests') and immediately scopes it ('all sessions, or one'). It also names the paired sibling kiro_permission_respond, so the agent can separate this read-side tool from the respond-side tool without consulting either 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?

The description clearly routes the follow-up action: answer with kiro_permission_respond before expires_at or the request is rejected. That is concrete when-to-act guidance tied to a named alternative. It does not, however, explain when to call this list versus other status-style siblings such as kiro_events or kiro_status, so a small inference gap remains.

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