MCP server for managing forge operations (GitHub, GitLab, Forgejo) with orchestrated read/write capabilities, audit logging, and webhook support
forge-mcp provides 24 tools with consistent naming (verb_noun pattern) and descriptions for all tools. However, parameter descriptions are minimal (often single phrases like 'Forge alias identifier'), and output schemas are not documented in the provided code. Input schemas are present but lack detail on constraints, enums, and validation rules. Error handling guidance is absent. The server demonstrates solid foundational structure but lacks the depth needed for production-grade LLM interaction.
Add a dependency relationship between issues
Add a label to an issue
Stream publishable events for an agent (SSE endpoint)
Close a change request
Add a comment to a change request
Add a comment to an issue
Create a commit with file changes in a repository
Output schemas not documented. No tool returns a documented schema showing what fields the LLM should expect. This forces LLMs to guess at response structure and breaks downstream tool chaining.
Parameter descriptions are minimal (single phrases). 'Forge alias identifier' and 'Repository owner' lack context on format, constraints, or when to use. LLMs cannot infer whether 'owner' is a username, email, or ID.
No enum constraints on state/event parameters. 'state' in list_change_requests and 'event' in submit_change_request_review accept free-form strings. LLMs will hallucinate invalid values like 'pending' or 'MAYBE_APPROVE'.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | <=2025-11-25 | v2 |
Create a new issue in a repository
Get details of a specific branch
Retrieve details of a specific change request (pull request or merge request)
Retrieve CI/CD checks for a change request
Retrieve comments on a change request
List branches in a repository
List change requests (pull requests or merge requests) for a repository
List issues in a repository
List repositories accessible to an agent on a forge
Create a new change request (pull request or merge request)
Read the contents of a file in a repository
Rebase a branch onto another branch
Schedule automatic merge of a change request
Submit a review on a change request
Update an existing change request (title, body, state)
Update an existing issue
Receive and process webhook events from forges
No error handling guidance. Tools lack descriptions of failure modes, recovery steps, or actionable error messages. An LLM receiving 'Repository not found' has no guidance on what to try next.
Destructive operations lack confirmation or dry-run support. close_change_request, commit_patch, and rebase_branch modify state irreversibly with no confirmation step. Agents can accidentally close PRs or rebase branches.