MCP server for integrating GitHub and X (Twitter) APIs
Server has 4 tools with basic schemas and descriptions, but significant gaps prevent production use. All tools have input schemas with type definitions and descriptions, meeting minimum requirements. However, descriptions are generic (10-50 chars), parameter descriptions lack detail about constraints/formats, and output schemas are completely undocumented. No error handling guidance, no pagination support despite list operations, and no tool annotations. Tools return formatted strings rather than structured objects, forcing LLMs to parse unstructured text. Context storage pattern is non-standard and not exposed to the agent.
Get information about a GitHub repository.
Get issues from a GitHub repository.
Get information about an X (Twitter) user.
Get recent tweets from an X (Twitter) user.
Output schemas completely undocumented. All tools return formatted strings instead of structured JSON objects. LLMs cannot extract fields for downstream tool calls or understand what data is available.
Parameter descriptions lack actionable constraints. 'state' param in github_list_issues says 'Issue state to filter by (open, closed, all)' but should declare as enum. 'max_results' lacks min/max bounds (description says 'max 100' but no validation).
No error handling guidance. make_github_request() and make_x_request() catch all exceptions and return None with a print() statement. LLM receives no actionable error message, no retry guidance, no recovery path.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
github_list_issues hardcodes result limit to 5 items without pagination support. No limit parameter, no offset/cursor, no total count returned. Large result sets will be silently truncated.
Tool descriptions are too generic (10-50 chars). 'Get information about a GitHub repository' does not explain WHEN to use this vs other tools, what fields are returned, or what prerequisites exist (e.g., repo must be public or token must have access).