Skip to main content
Glama
4hglee-ops

Gyuniverse GitHub Projects MCP

by 4hglee-ops

approve_github_project_bulk_plan

Idempotent

Approve an exact immutable bulk preview using its plan ID and digest. Enforces maker-checker policy and bulk.approve capability without mutating GitHub.

Instructions

Explicitly approve the exact immutable bulk preview identified by plan ID and digest. The current maker-checker policy and bulk.approve capability are enforced; this does not mutate GitHub.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
planIdYes
planDigestYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare a write operation (readOnlyHint=false) that is idempotent and non-destructive. The description adds meaningful context beyond that: the maker-checker policy and bulk.approve capability are enforced, and the approval 'does not mutate GitHub', resolving the apparent tension between a non-read-only hint and a no-external-write operation. It stops short of describing what an approval record is or its downstream effect.

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?

Two tight sentences, front-loading the action and the identifier requirement, with the enforcement and non-mutation caveats trailing. No redundant restatement of the name or schema patterns.

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 two-parameter tool with no output schema, the description covers purpose, prerequisite policy/capability, and the non-mutating nature of the call. It could say what constitutes success or how the approval is later consumed by apply, but nothing an agent needs to invoke it correctly is absent.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must carry the load. It does explain that planId and planDigest together pin down 'the exact immutable bulk preview', which conveys their joint role and the immutability guarantee. It adds no format, matching, or failure semantics (e.g., what happens on digest mismatch).

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

Purpose4/5

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

States a specific verb (approve) and resource (the immutable bulk preview identified by plan ID + digest), which is enough to separate it from preview_github_project_bulk_updates and apply_github_project_bulk_plan. It does not explicitly name those siblings or position this approval step in the preview→approve→apply sequence, so it is clear but not maximally differentiated.

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

Usage Guidelines3/5

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

The clause 'this does not mutate GitHub' implicitly contrasts approval with application, giving some routing signal. However, there is no explicit when-to-use condition (e.g., after a preview has been generated, before apply_github_project_bulk_plan) and no named alternative, so the guidance is only implied.

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