A Go-based conversational AI application with agent capabilities, tool execution, and skill management
NusaShell exhibits severe definition quality gaps across all dimensions. Tool definitions are inferred from test files and source references rather than explicit MCP registration. Most tools lack visible input schemas (only 3 of 16 have documented schemas in the provided code). Descriptions are present but generic and lack LLM-optimization guidance. No evidence of output schema documentation, error handling patterns, or parameter validation. The codebase appears to be a Go agent framework rather than an MCP server with proper tool registration.
Tool for executing commands with optional async/background operation support
Tool for listing files in a directory
Tool for reading file contents
Tool for searching file contents
Tool for finding files by name
Tool for searching text patterns in files
Tool for learner agent to acknowledge learning results
Tool for managing conversation memory
No visible input schemas for 13 of 16 tools. Only 'skill', 'file_read', and 'grep' have documented input parameters. Remaining tools lack JSON Schema definitions, making it impossible for LLMs to understand required/optional parameters, types, or constraints.
Tool definitions appear inferred from test files and source references rather than explicit MCP tool registration. No evidence of formal MCP ToolDefinition structures with names, descriptions, and inputSchema. This violates the MCP protocol requirement for explicit tool registration.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 29 | 2026-07-28+ | v2 |
Tool for displaying content (HTML, images, audio, video, PDF) in the UI
Tool for managing skills with save and delete operations
Tool for steering subagent execution
Tool for stopping subagent execution
Tool for waiting on subagent execution results
Tool for sending messages via Telegram adapter
Tool for managing todo checklist items
Tool for fetching web content
Descriptions are generic and lack LLM-optimization. Most descriptions (10+ tools) are under 50 characters and provide minimal context on WHEN to use the tool, WHAT it returns, or HOW it differs from similar tools. Examples: 'Tool for managing todo checklist items' (35 chars), 'Tool for managing conversation memory' (36 chars).
No documented output schemas. Tools return data but there is no specification of response structure, field types, or pagination. LLMs cannot plan downstream tool calls without knowing what fields to expect.
No error handling guidance. Tools lack recovery instructions, error categorization (retryable vs fatal), or actionable error messages. An LLM receiving a failure has no guidance on what to do next.