A comprehensive suite for building generative AI applications with C4 model architecture, featuring document processing, chat/RAG capabilities, evaluation services, and a web frontend
Scoring was not performed
Tool names do not follow verb_noun convention. 'executeTool' and 'getTools' use camelCase instead of snake_case (execute_tool, get_tools), and 'executeTool' is too generic, it doesn't indicate WHAT tool will be executed or what domain it serves.
Input schema for executeTool contains only a nested object 'executeRequestDto' with no visible parameter descriptions. The schema shows {"type":"object","description":"Tool execution request with name and arguments"} but lacks details on what 'name' and 'arguments' fields expect, their types, required status, valid values, or constraints.
Tool descriptions are extremely minimal. 'Execute a tool' and 'Gets the available tools' lack context: WHEN should an LLM call these? What domain do they cover (file operations, API calls, data processing)? What prerequisites exist? These descriptions violate the 10-1024 character guideline for meaningful content and fail to guide LLM selection.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 44 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 37 | 1.26.0+ | v1 |
No output schemas documented. LLMs cannot know what fields executeTool returns (success flag? result? error details?) or what structure getTools yields (list of tool names? full definitions? capabilities?). Undocumented output forces LLMs to guess and blocks composition with downstream tools.
No error handling guidance. If executeTool fails, what error does the LLM receive? Is it retryable? Are there recovery options? A raw error code or exception message provides no actionable path forward for the agent.
Parameter naming ambiguity. 'executeRequestDto' uses a DTO class name instead of intuitive parameter names. The nested 'name' and 'arguments' fields are not visible in the schema snippet provided, making it impossible to assess whether they accept natural identifiers (e.g. tool names users would say) or require system IDs.
Proxy pattern leakage. This server wraps an external backend (C4 GenAI Suite) and exposes a generic 'execute anything' interface. This defeats the purpose of explicit tool definitions, the LLM has no semantic visibility into what tools are available or what they do. A proper MCP server should enumerate tools with clear, domain-specific definitions, not defer to a runtime lookup.