MCP server that provides tools for managing Tekton releases, including creating release branches, configuring hack repository, and managing ReleasePlanAdmission and ReleasePlan files
Three tools are explicitly defined with input schemas visible in internal/tools/tools.go. All tools have action-verb names (create-, configure-) and brief descriptions. However, descriptions are minimal (34 - 70 chars), parameter descriptions are sparse, output schemas are entirely absent, and error handling lacks recovery guidance. Tool compositions are reasonable but lack field-level chaining documentation. The codebase follows MCP SDK patterns correctly but falls short of LLM-optimized quality standards.
Configures the hack repository for a new release and creates a pull request
Creates release branches for Tekton components
Creates ReleasePlanAdmission and ReleasePlan files for Tekton components
No output schema documentation. Tools return TextContent with unstructured result strings. LLMs cannot infer what fields to expect or plan downstream operations. This breaks tool chaining and forces agents to parse natural-language responses.
Parameter descriptions missing or minimal. 'upstream_versions' is documented as a map but lacks guidance on required keys, expected value formats (e.g. '0.25.x' is an example, not a constraint), or how to discover valid component names. LLMs will hallucinate values.
Tool descriptions are 34 - 70 characters, below the production baseline of 194 chars (p10=34, p90=392). They lack WHEN to call each tool, what they return, and how they differ from one another. 'Creates release branches for Tekton components' does not explain the purpose of release branches or when an agent should invoke this vs. other tools.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 47 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 49 | - | v1 |
Error handling returns bare error strings in TextContent rather than structured error responses with recovery guidance. 'Failed to create branches: <error>' tells the agent nothing about whether to retry, call a different tool, or ask the user.
No parameter constraints. 'minor_version' is documented as (e.g., '1.19') but lacks format rules (e.g., regex pattern, allowed range), data type specificity, or validation logic visible in parameter descriptions. LLMs will pass invalid versions.
configure-hack-repo and create-release-plans have optional parameters (ocp_version, upstream_versions, patch_version, ocp_versions) with no documented defaults or guidance on what happens if omitted. Tools return success regardless, making agent behavior unpredictable.