MCP server providing tools for web search, dice rolling, social media content creation, GitHub repository operations, and presentation/quote generation
The server has 10 tools with partial but incomplete coverage. All tools have names starting with action verbs (web_search, roll_dice, create_social_post, get_slide_image, create_quote_card, github_search_repositories, github_get_repository_info, github_get_file_content, github_list_files, github_auth_status), which follows naming conventions. However, descriptions are present but brevity varies significantly. Input schemas are declared with parameters and types visible in the specification. The GitHub tools demonstrate better schema completeness with field descriptions (owner, repo, file_path, branch with defaults). Most parameter descriptions are functional but lack depth on constraints, enums, or validation rules. Error handling is mentioned in the GitHub tool code (e.g., 'Repository not found or is private') but not consistently applied across all tools. No output schemas are documented, the tool definitions show what goes IN but not what comes OUT, which prevents LLMs from planning downstream calls. Tool composition is reasonable: GitHub tools are granular (search, get_info, get_file, list_files, auth_status), though they could benefit from pagination documentation. No evidence of security controls (secrets injection, permission gates, audit logging) visible in the source provided.
Generate a quote card with inspirational text and background image
Generate a social media post with image and text for any topic
Get presentation-ready images for slides and presentations
Check GitHub authentication status and rate limits
Get the content of a specific file from a GitHub repository
Get detailed information about a specific GitHub repository
List files and directories in a GitHub repository path
No output schemas documented for any tool. LLMs cannot predict what fields will be returned, forcing them to treat responses as opaque text rather than structured data. This breaks tool chaining because downstream tools cannot be selected based on return fields.
Parameter descriptions lack constraint documentation. For example, 'num_rolls' in roll_dice has no min/max; 'limit' in github_search_repositories defaults to 5 but max is unstated. 'size' in get_slide_image expects WIDTHxHEIGHT format but no regex or format validation is documented.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 47 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 37 | - | v1 |
Search for GitHub repositories by query (e.g., 'python machine learning', 'user:microsoft')
Roll the dice with the given notation
Search the web for information about the given query
create_social_post and create_quote_card have 'style' and 'theme' parameters with enums in descriptions ('professional, motivational, casual' and 'motivation, business, technology, nature, abstract') but these are not formally declared as JSON Schema enums. LLMs are more likely to hallucinate invalid values when constraints are not machine-parseable.
Inconsistent error handling. GitHub tools include recovery guidance ('Try search_users() with a partial name'), but web_search, roll_dice, and image generation tools have no documented error cases or recovery paths.
No pagination support documented for tools that return multiple items (web_search, github_search_repositories, github_list_files). LLMs cannot know whether results are capped, whether to request more, or how to iterate through large result sets.
Tool descriptions lack context on WHEN to use each tool. For example, create_social_post, get_slide_image, and create_quote_card are all image/content generation tools but their differences and intended use cases are unclear. An LLM struggling to choose between them would need explicit guidance.
github_auth_status accepts no parameters but its description does not clarify what it returns or when to call it. The source code shows it returns rate limit info, but this is not documented in the tool definition.