Server has 7 tools with basic schemas and descriptions, but significant gaps limit production readiness. All tools have descriptions (10-50 chars, mostly short), and input schemas are present with type definitions. However, descriptions lack depth, most are single-sentence and do not explain WHEN to use the tool or what happens on failure. Output schemas are partially documented via TypedDict but not exposed in tool registration. Critical security issue: execute_bash accepts arbitrary shell commands with only basic character filtering (';', '&', '|'), which is insufficient against prompt injection. ask_user_input returns a static response without actually requesting input from the user, the implementation is incomplete. Error handling is minimal; most tools return generic success/failure without recovery guidance. No tool annotations (readOnlyHint, destructiveHint) despite clear risk levels. Naming is generally good (verb_noun pattern), but parameter descriptions are sparse.
Apply MCP configuration for a server.
Ask the user for input with an optional default value.
Create a directory for the MCP server.
Execute a bash command and return the output.
Get the README content from a GitHub repository.
Get repository information from a name or URL.
Search GitHub for repositories matching the given query.
execute_bash has insufficient input validation. Filtering only ';', '&', '|' does not prevent command injection via backticks, $(), or other shell metacharacters. Agents can be tricked into executing arbitrary commands.
ask_user_input does not actually request input from the user. It returns a static response with input_required=true but never blocks or prompts. Implementation is incomplete and will not work in practice.
Tool descriptions are too short (40-60 chars) and lack context. None explain WHEN to use the tool, what prerequisites exist, or what happens on error. Descriptions should be 50-200 chars and answer: What? When? Why?
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels. execute_bash is DESTRUCTIVE, apply_mcp_configuration is WRITE, create_mcp_directory is WRITE. Agents cannot reason about side effects.
Error responses are generic and do not guide recovery. E.g., 'Network error: <str(e)>' tells the agent nothing about whether to retry, ask the user, or give up. Errors should include recovery hints.