Next.js MCP server with tools for name manipulation and content widget resources
This HTTP-based MCP server implements 2 tools with basic structure but significant quality gaps. Tool naming uses camelCase convention and lacks verb prefixes; descriptions are present but minimal (10-20 chars, below the 34-char baseline); input schemas use Zod but lack formal JSON Schema documentation. No parameter descriptions in visible schema output. Error handling is absent, tools return hardcoded text responses with no validation or recovery guidance. The server uses mcp-handler wrapper, obscuring direct schema visibility. Resources feature is implemented (content-widget) but tool definitions lack the rigor expected for production agent integration.
Recebe um nome de família e uma lista de nomes e retorna todos concatenados
Retorna o nome informado
Tool naming lacks action verb prefix. 'sayMyName' and 'merge' do not start with get_, create_, update_, delete_, search_, list_, or send_. LLMs rely on verb-first naming to infer intent before reading descriptions.
Tool descriptions are too short (10-20 chars). 'Retorna o nome informado' and 'Recebe um nome de família...' provide minimal context. Baseline for A+ tools is 50-200 chars. Descriptions must explain WHAT, WHEN, and any prerequisites to guide LLM selection.
No parameter descriptions visible in schema output. Input schema for 'sayMyName' has {'name': {description: 'Seu nome'}} but 'merge' family and names lack inline parameter documentation in the Zod schema. Parameter descriptions are mandatory for LLM understanding.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 46 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 43 | - | v1 |
Output schemas are undocumented. Both tools return {content: [{type, text}], ...} but the LLM has no declared schema for return fields. Tool definitions lack response shape documentation required for downstream tool chaining.
No error handling or input validation. Tools accept any string for 'name' and any array for 'names' without bounds checking, type validation, or fallback guidance. No error messages guide recovery if inputs fail.
Tool 'merge' response includes 'strictedContent' field which appears to be a typo or non-standard payload. Output structure is inconsistent: 'content' is standard MCP, but 'strictedContent' and '_meta' mixing undocumented fields suggests incomplete schema thinking.