MCP Server that proxies tools and resources from a Drupal instance with MCP support
This server exposes a single tool 'dynamic_tools_from_drupal' that is dynamically proxied from a remote Drupal instance at runtime. The tool definition itself is not statically visible in the source code, only a description stating that 'Tool names and schemas are retrieved at runtime from the Drupal MCP endpoint and forwarded via tools/call method.' No input schema, no parameter definitions, no output schema documentation can be found in the provided source. The server acts as a pure proxy/pass-through mechanism. Per the hard rules, when tool definitions are inferred rather than directly visible (here, delegated to runtime discovery), the tool's overall score is capped at 50. However, since we cannot verify the actual schema, descriptions, or parameters of the dynamically registered tool, the definition quality score must reflect that this server provides NO verifiable tool definition quality, it is entirely dependent on the remote Drupal instance to declare tool metadata at runtime.
Dynamically proxied tools from the connected Drupal instance. Tool names and schemas are retrieved at runtime from the Drupal MCP endpoint and forwarded via tools/call method.
No input schema visible in source code. The tool 'dynamic_tools_from_drupal' is declared as dynamically proxied; no JSON Schema, parameter types, or constraints are defined in the codebase.
Tool definition is inferred/delegated to runtime. The tool is not explicitly registered with a static schema in the server code, instead, tools are fetched from a remote Drupal endpoint at initialization. This violates the verifiability principle: an MCP server should declare its tools statically so clients can inspect capabilities before calling. Since the schema is completely absent, the tool scores much lower.
No documentation of tool output schema. The description states tools are 'forwarded via tools/call method' but does not explain what the response structure is, what fields are returned, how errors are reported, or what the agent should expect. Clients cannot plan downstream actions without knowing the output shape.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-21 | F | 29 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 24 | - | v1 |
Ambiguous tool name and description. 'dynamic_tools_from_drupal' is a generic proxy label, not a verb-noun action name (e.g., 'get_', 'create_', 'update_', 'search_'). The description does not explain WHEN an LLM should invoke this tool, what user intent it satisfies, or what it actually does, only that it proxies Drupal tools. An LLM cannot determine whether to call this tool or which Drupal actions are available.
No error handling guidance. The tool description does not explain how errors from the Drupal endpoint are handled, how failures are reported to the LLM, or what recovery steps are available. If a Drupal tool call fails, the agent has no guidance on whether to retry, ask the user, or give up.
No parameter documentation. Since the tool delegates to dynamic Drupal tools, the server does not declare what parameters are accepted or required. An LLM cannot infer what to pass without trial and error. Best practice: even for proxy tools, document the expected parameter structure (e.g., 'tool_name: string, args: object') and how they map to Drupal endpoints.