A utility Model Context Protocol (MCP) server with remote repository support for release notes generation and git operations
Single-tool server with a well-structured release notes generator. Tool naming follows verb_noun convention ('generate_release_notes'), description is comprehensive (220 chars, within 10-1024 ideal range), and input schema is fully typed with descriptions. However, output schema is not documented in the provided source, and no error handling guidance is visible. Parameter descriptions are clear and specific (e.g., 'Release date in YYYY-MM-DD format'), covering format constraints. The tool accepts multiple identifier patterns (repo_path for local, repo_url for remote) and auth tokens, reducing friction. No tool annotations present (readOnlyHint, destructiveHint, idempotentHint) despite the risk classification as 'READ_ONLY'. Security concern: GitHub and GitLab tokens are exposed as optional parameters, should use server-side secret injection instead.
Generate release notes from git commits between tags. Fetches git commits between two tags from local or remote repositories (GitHub, GitLab) and returns structured data for AI-powered categorization and release notes generation. The tool automatically detects the previous tag if not provided, validates that tags exist, and extracts PR/MR numbers from commits.
Output schema not documented. LLMs cannot infer what fields the tool returns, forcing them to reason about downstream data extraction and blocking tool chaining.
GitHub and GitLab tokens exposed as optional input parameters. Secrets in parameters leak into agent traces and logs. Should use server-side secret injection via environment variables or vault.
No tool annotations present (readOnlyHint, destructiveHint, idempotentHint). Tool is marked READ_ONLY in metadata but schema lacks structured annotation. Should add 'readOnly': true to descriptor.
No error handling guidance visible in source. Tool should return actionable error messages. E.g., if tags don't exist: 'Tag v0.50.0 not found. Available tags: v0.49.0, v0.48.5, ...' instead of raw API errors.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | B | 75 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 22 | - | v1 |
Parameter 'previous_version' is optional with auto-detection fallback, but behavior is only documented in description. Schema should reflect what 'automatic detection' returns (the actual tag name) to help LLM reason about dependencies.