MCP server for interacting with Forgejo (a self-hosted Git service) repositories, issues, pull requests, and releases
Server defines 13 tools with consistent naming (verb_noun pattern: forgejoCreate*, forgejoList*, forgejoGet*, forgejoUpdate*, forgejoMerge*). All tools have descriptions (10-50 chars, below ideal 50-200 baseline). Input schemas present with type declarations and parameter descriptions. However, descriptions are terse and lack context on WHEN to use each tool, prerequisites, or recovery guidance. No output schemas documented. No error handling guidance visible. Complex types like CreateRepoOption and CreateIssueOption are referenced but not expanded in source, making full schema validation impossible. Risk annotations (WRITE, READ_ONLY, IRREVERSIBLE) are present but not mapped to tool annotations in the MCP protocol.
Create an issue in a repository.
Create a repository in an organization.
Create a pull request in a repository.
Create a release in a repository.
Create a repository for the authenticated user.
Get a pull request by index.
Get a repository.
List a repository's action tasks.
Descriptions are terse (10-50 chars) and lack context. 'Create a repository for the authenticated user' does not explain WHEN to use forgejoCreateUserRepo vs forgejoCreateOrgRepo, what happens on success, or what errors to expect. Baseline for A+ tools is 50-200 chars with WHAT/WHEN/PREREQUISITES.
Output schemas not documented. Tools return complex types (Repository, Release, Issue, PullRequest) but no schema is visible in source. LLMs cannot plan downstream calls or extract required fields (e.g., repo_id for chaining). Baseline: 100% of A+ tools document return types.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | <=2025-11-25 | v2 |
List issues for a repository.
List pull requests for a repository.
List releases for a repository.
Merge a pull request.
Update a release in a repository.
No error handling guidance. Tools declare WRITE and IRREVERSIBLE risks but provide no recovery hints. If forgejoMergePullRequest fails, the LLM has no guidance on whether to retry, ask the user, or abort. Baseline: error responses must tell the LLM what to do next.
Complex input types (CreateRepoOption, CreateIssueOption, CreatePullRequestOption, EditReleaseOption) are referenced but not expanded. Source shows only the class name, not the fields, constraints, or required properties. Full schema validation impossible.
Risk annotations (WRITE, READ_ONLY, IRREVERSIBLE) present in metadata but not mapped to MCP tool annotations (readOnlyHint, destructiveHint, idempotentHint). Agents cannot infer safety properties from the protocol.