Local MCP tool aggregator — aggregate multiple MCP servers behind a single endpoint
endara-relay is a tool aggregator with 16 tools spanning utility functions (echo, add, concat) and meta-tools (list_tools, search_tools, execute_tools, write_file). All tools have descriptions (10-100 chars) and complete JSON schemas with typed parameters. However, descriptions are uniformly terse (avg ~40 chars vs. production baseline 194 chars), lacking context on WHEN to use each tool or what downstream actions they enable. Parameter descriptions are absent entirely, LLMs cannot infer what 'data' or 'overlay' mean without explicit guidance. The execute_tools and write_file tools present security concerns (JavaScript execution, file writes) but lack error recovery guidance or permission documentation. Tool composition is sound (single responsibility), but descriptions need expansion to meet production standards.
Adds two numbers
Concatenates strings
Counts items in an array
Echoes a message
Executes a JavaScript script with access to tools in a sandboxed environment
Formats a greeting with optional title
Returns server metadata
Lists available tools in the aggregated catalog with optional pagination and filtering
Parameter descriptions entirely absent. 'data', 'overlay', 'items', 'matrix', 'script', 'path', 'content' lack any guidance on expected format, constraints, or semantics. LLMs cannot infer meaning from names alone.
Tool descriptions uniformly terse (avg 40 chars vs. production baseline 194 chars). Lack context on WHEN to use each tool, what it returns, and how it chains with others. E.g., 'Echoes a message' tells LLM nothing about use case.
execute_tools (JavaScript execution) and write_file (file writes) are destructive/high-risk but lack error recovery guidance, permission documentation, or dry-run support. No indication of what errors are retryable or how to handle failures.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 69 | 2025-06-18+ | v2 |
Looks up a key in an object
Merges two JSON objects
Multiplies 2x2 matrix by scalar
Searches tools by name and description using fuzzy matching
Negates a boolean
Converts text to uppercase
Validates email format
Writes content to a file in configured write directories
write_file accepts 'encoding' enum (utf8, base64) but no description of what each encoding does, when to use base64, or what happens if encoding mismatches file content. LLM must guess.
list_tools and search_tools lack output schema documentation. LLMs cannot plan downstream tool calls without knowing what fields (tool_id, description, params, etc.) are returned.