A comprehensive monorepo containing iPolloWork desktop application, server, web UI, and various plugin packages. Includes Model Context Protocol (MCP) SDK integration for remote client communication and tool invocation.
Scoring was not performed
Output schemas not documented for any tool. LLMs cannot plan multi-step operations without knowing what fields are returned (e.g., does list-tools return tool descriptions? What does read-resource return?).
DESTRUCTIVE operation delete-config lacks confirmation, dry-run, rollback, or error recovery guidance. High risk of agent-initiated data loss.
Multiple tools use bare 'object' types for complex parameters (call-tool.arguments, distribute-tokens.result, connect.script, get-prompt.arguments, proxy-message.message) without inner schemas. LLMs cannot validate structure before calling.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 42 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 50 | - | v1 |
Tool registration is inferred from Next.js API route file names (app/api/*/route.ts) rather than explicit MCP server.tool() definitions visible in source. Cannot verify actual tool registration, schema compliance, or MCP SDK usage.
Missing pagination parameters and result-capping guidance for list_* tools (list-tools, list-resources, list-prompts, get-all-configs). Returns could explode context window.
Error handling across all tools lacks actionable recovery guidance. No distinction between retryable, user-fixable, and fatal errors. Descriptions do not tell LLM what to do on failure.
Mutually exclusive parameters not documented. connect tool accepts url OR command OR script but descriptions do not say they are exclusive or required.
Parameter format validation rules missing. Examples: connectionId format (alphanumeric, length), resourceUri format (URL? path? ID?), walletAddress format (Ethereum address validation), configId format.
WRITE operation distribute-tokens modifies blockchain state but lacks clear prerequisites, idempotency guarantee, or dry-run. Missing: what makes a wallet address valid? What if transaction fails? Can it be retried safely?
WRITE operation proxy-message forwards messages but output schema and response format undefined. Cannot plan downstream tool composition.