PHP SDK for building Model Context Protocol (MCP) servers - Create MCP tools, resources, and prompts
PHP MCP Server has significant definition quality gaps. Of 8 tools, 2 lack descriptions entirely (echo_text, hidden_subdir_tool), 3 have minimal/generic descriptions under 50 chars. Naming is inconsistent: some tools use verb_noun (process_data_by_mode, greet_user), others use camelCase (repeatAction, InvokableCalculator). Only 3 tools have complete input schemas with typed parameters and descriptions. Parameter descriptions are sparse, most tools lack per-parameter documentation. No output schemas are documented. Error handling is absent from all tool definitions. The framework supports tool annotations (McpTool attribute), but only 1 tool demonstrates usage. Overall, definitions lack the LLM-optimization and completeness required for reliable agent selection and execution.
An invokable calculator tool.
Perform basic math operations (add, subtract, multiply, divide)
Greets a user by name.
Performs an action that can be modified by an environment variable. The MCP client should set 'APP_MODE' in its 'env' config for this server.
4 of 8 tools lack descriptions entirely (echo_text, hidden_subdir_tool, repeatAction, manualGreeter). LLMs cannot determine when to select these tools without descriptions.
Inconsistent naming conventions: camelCase (repeatAction, InvokableCalculator) vs snake_case (process_data_by_mode, greet_user). LLMs struggle with mixed conventions when parsing tool names.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields without knowing response structure.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | <=2025-11-25 | v2 |
Parameter descriptions missing or incomplete. 'count' in repeatAction lacks description; 'mode' enum values (OptionA, OptionB) are cryptic without context. LLMs cannot infer parameter semantics from names alone.
No error handling guidance in any tool definition. Tools provide no recovery hints, retryability classification, or actionable error messages for LLM agents.