This server has consistently strong tool definitions across all 8 tools. Every tool has a clear verb-based name (find_, search_, get_), comprehensive descriptions (150-300+ chars each), and explicit Zod schemas with typed parameters and descriptions. All tools are READ_ONLY, reducing security surface. The output schemas are documented with structured return types. However, there are minor gaps: (1) no input validation error messages that guide LLM recovery, (2) no tool annotations (readOnlyHint/destructiveHint/idempotentHint) in the MCP registration despite all being read-only, (3) some optional parameters lack guidance on when they're needed (e.g., search_issues_and_prs has 7 optional params with minimal dependency documentation), (4) no confirmation patterns or dry-run variants for safety-critical operations (though all are read-only, this doesn't apply). The server leverages a boilerplate (@tigerdata/mcp-boilerplate) for registration, which handles schema compilation, so schemas are explicitly defined in source code via Zod. Strengths: clear naming conventions, detailed descriptions with usage context, comprehensive parameter documentation, structured output definitions.
Searches for matching repositories in the GitHub organization. When referring to a result, always provide a link to the `url` field so the user can easily access the full context on GitHub.
Fetches a specific issue by URL or issue number and repo.
Fetches a specific pull request by URL or pull number and repo.
Fetches recent commits for a specific user in the configured GitHub organization.
Fetches recent releases for specified GitHub repositories. Returns release information including assets, publication dates, and author details.
Retrieves all users within the configured GitHub organization
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) registered despite all 8 tools being read-only. This prevents clients from optimizing caching, request batching, or pre-flight validation. The boilerplate does not appear to set these hints in the tool config object.
search_issues_and_prs accepts 7 optional parameters with interdependencies (e.g., timestampStart/End, includeClosed, includeIssues/includePullRequests) but does not document which combinations are valid or recommended. The parameter descriptions do not explain default behavior or when to use them together.
No error recovery guidance in tool descriptions. Tools do not include hints like 'If no results found, try...' or 'Rate-limited? GitHub throttling is in place but may fail after retries, consider checking your token scope.' Descriptions state WHAT the tool does but not HOW to recover from failure.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | B | 75 | 2025-06-18+ | v2 |
| 2026-03-09 | D | 50 | - | v1 |
Searches for pull requests and/or issues. By default, will return organization-wide results. Specifying a username or repository will limit the results accordingly.
Searches for matching code in the given GitHub repository. If you are unsure of the exact repository name, use `find_repos` to locate it first. A result is returned for each matching file, along with snippets showing the matching code fragments with index offsets for the match location in the fragment. When referring to a result, always provide a link to the `url` field so the user can easily access the full context on GitHub.
get_pull_request and get_issue accept both URL and (number + repository) parameters, but the schema and description do not explicitly state these are mutually exclusive. LLMs may pass both, causing ambiguity or API confusion.
search_issues_and_prs, get_pull_request, and get_issue have boolean flags (includeCommits, includeComments, includeReviewComments) that can significantly increase response size and token use. Descriptions mention 'Use sparingly as this significantly increases token use' for includeAllCommits but lack concrete guidance on when NOT to use these expansions.