MCP (Model Context Protocol) server over stdio that mirrors the poly CLI's lint/format/cache capabilities.
poly-mcp has 6 tools with basic schemas and descriptions, but significant quality gaps. Tool names lack clear action verbs (workspace_lint vs lint_workspace), descriptions are minimal (10-50 chars, well below the 194-char baseline), and parameter descriptions are sparse or missing. No input validation guidance, no error recovery hints, and no output schema documentation. The server exposes file paths as parameters without sanitization guidance, raising injection risks. Tool composition is reasonable (separate lint/format/config tools), but descriptions don't explain when to use each or what they return.
Clear the poly result cache
Show the current poly configuration
Format files using the poly formatter engine
Lint files using the poly linter engine
Lint entire workspace using whole-project orchestration
Lint and fix entire workspace using whole-project orchestration
Descriptions are critically short (10-50 chars vs 194-char baseline). 'Lint files using the poly linter engine' and 'Format files using the poly formatter engine' lack context on when to use each tool, what they return, or how they differ from workspace variants.
Parameter descriptions are missing or trivial. 'paths' array and 'fix' boolean lack guidance on format, constraints, or examples. No mention of path validation, glob patterns, or what 'fix' actually modifies.
No output schema documentation. Tools return unspecified results, LLMs cannot plan downstream calls or extract structured data. What does lint() return? Errors? Counts? File paths?
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | 2026-07-28+ | v2 |
Tool naming lacks clear action verbs. 'workspace_lint' vs 'lint' is ambiguous, does workspace_lint lint the entire workspace or a workspace file? Rename to 'lint_workspace' and 'lint_files' for clarity.
File path parameters ('paths' array) lack sanitization guidance. No mention of path traversal validation, symlink handling, or allowed directories. Agents could pass '../../../etc/passwd' without constraint.