MCP server for GitVerse: repositories, pull requests, reviews, comments and CI
gitverse-mcp demonstrates solid fundamentals: all 13 tools have descriptions (avg 120 chars), input schemas with types, and tool annotations (readOnlyHint, destructiveHint). Naming follows verb_noun convention (list, get, create, update, approve, decline, request). However, several tools lack descriptions entirely (createDraftPullRequest), parameter descriptions are sometimes generic ('Usernames to assign' lacks format guidance), and output schemas are not documented. Error handling returns raw API errors without recovery guidance. Pagination support is present but inconsistently applied. No per-tool output schema documentation visible.
Approve a pull request by submitting an APPROVED review.
Create a pull request from head to base. GitVerse has no reviewer requests — use assignees instead. Pass draft=true to create a draft.
Decline (close) a pull request. An optional message is posted to the discussion before closing.
Get details of a specific pull request.
Get the activity/timeline of a pull request.
createDraftPullRequest has no description and no visible input schema in source code. Tool is inferred to exist but definition is incomplete.
Output schemas are not documented. LLMs cannot plan downstream tool calls or extract required fields (e.g., PR IDs for follow-up operations). Responses are returned as raw JSON without field documentation.
Error handling returns raw GitVerseApiError without recovery guidance. LLMs receive 'GitVerse API error 404 NOT_FOUND: ...' with no actionable next steps (e.g., 'Try search_repositories() with a partial name').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 67 | 2026-07-28+ | v2 |
List pull requests of a repository. state filters by open/closed. Supports page/per_page.
Get details of a specific repository.
List repositories. Without arguments lists the authenticated user's repositories; pass org to list organization repositories. Supports page/per_page.
Remove your change request by superseding it with an APPROVED review (GitVerse has no dedicated un-request endpoint).
Request changes on a pull request by submitting a REQUEST_CHANGES review.
Remove your approval: finds your latest APPROVED review on the pull request and deletes it.
Update a pull request: title, body, state (open|closed), base branch. assignees and labels are applied through the issue endpoint because a PR is an issue in GitVerse.
Parameter descriptions lack format constraints. 'Usernames to assign' does not specify format (comma-separated? array?). 'Label names' does not clarify if labels must exist or can be created. LLMs guess and pass invalid values.
Pagination is supported (page, per_page) but not consistently applied across all list tools. listRepositories supports pagination; other discovery tools may not. Inconsistency forces LLMs to reason about which tools paginate.