A Rust implementation of the MCP server for the Model Context Protocol
The server defines 11 tools across multiple example files. While tool names follow action-verb conventions and input schemas are present with proper JSON Schema structure, descriptions are minimal (many under 50 chars), parameter annotations are sparse or missing, and output schemas are entirely undocumented. Tool definitions appear duplicated (github_search_repos, github_list_issues, github_create_issue, github_create_pr each appear twice), suggesting either incomplete tool registry management or example file fragmentation. No error guidance, no output structure documentation, and no parameter validation constraints visible. This is typical of proof-of-concept code that has not been hardened for production agent use.
Add two numbers
Fetch a website and return the content as HTML
Fetch a website and return the content as plain text
Create a new issue in a GitHub repository
Create a new issue in a GitHub repository
Create a new pull request in a GitHub repository
Create a new pull request in a GitHub repository
Tool definition duplication: github_search_repos, github_list_issues, github_create_issue, and github_create_pr each appear twice in the tool list (tools 2&6, 3&7, 4&8, 5&9). This indicates either incomplete deduplication in tool registry or example files not properly consolidated.
Descriptions are minimal (20 - 50 chars) and lack context. 'Add two numbers' does not explain WHEN to use it vs. other numeric operations. 'Search GitHub repositories' omits return structure, rate limits, or example use cases. LLMs need 50 - 200 char descriptions to make confident tool selection decisions.
Output schemas are not documented. Tools like github_search_repos, github_list_issues, and fetch_html return data structures, but the response schema is not visible in tool definitions. LLMs cannot plan downstream calls or extract required fields without knowing output structure.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 49 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 47 | - | v1 |
List issues for a GitHub repository
List issues for a GitHub repository
Search GitHub repositories
Search GitHub repositories
Parameter descriptions are missing or incomplete. fetch_html and fetch_txt have 'Optional headers' with no type clarification (object of strings? string keys and values?). github_search_repos 'query' param lacks guidance on format, length, or syntax.
No error handling or recovery guidance visible. If github_search_repos returns 0 results, fetch_html hits a 404, or github_create_issue fails due to permission, there is no mechanism to tell the LLM what to do next or how to self-correct.
No pagination support visible in list tools. github_list_issues does not show limit or offset/cursor parameters, risking context window exhaustion if a repo has hundreds of issues. List tools should enforce reasonable result caps (20 - 50 items by default) and provide pagination mechanisms.
Destructive operations (github_create_issue, github_create_pr) lack confirmation or dry-run capability. No tool annotation hints (destructiveHint/idempotentHint) visible. Agents cannot safely test before executing writes.