MCP server for DeepSeek Harness: exposes the harness tool registry to browser-side MCP clients over streamable HTTP, so a web chat session can drive the local machine.
Three tools with complete schemas and descriptions, but significant gaps in parameter documentation and error guidance. web_task_claim and web_task_list have no parameters (empty objects), limiting composability. web_task_settle has well-defined parameters with descriptions and enum constraints for stopReason. Descriptions are adequate (100-200 chars) but lack dependency hints and recovery guidance. No tool annotations (readOnlyHint/destructiveHint). Error handling exists but is minimal, resolveTaskId returns error strings rather than structured guidance. Output schemas are documented as strings. Tools follow a clear claim/settle pattern but lack idempotency guarantees and batch operations.
Take the next task delegated to you and return its instructions. Waits for work when the queue is empty, so call it again after reporting a result to stay available. Returns "No task available." when nothing arrived in time — call it again to keep waiting. Report the outcome with web_task_settle when the work is done.
List tasks currently queued for browser delegates, with their status.
Report the outcome of a task taken with web_task_claim. The text becomes the delegating agent's result. Call it as <web_task_settle>{"taskId": "task-…", "text": "…", "stopReason": "completed"}</web_task_settle>.
web_task_claim and web_task_list have empty parameter schemas (no properties). This limits composability, agents cannot pass filters, pagination, or context. Even a 'timeout_ms' parameter on claim would improve usability.
web_task_list output schema is undocumented. The tool returns task objects with id, label, cwd, prompt, status fields, but the schema is not declared. Agents cannot plan downstream calls without knowing the structure.
Error handling returns plain strings ('No task available.', 'Several tasks are in flight...') rather than structured error objects with recovery guidance. Agents cannot distinguish retryable from fatal errors or know what to do next.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2025-06-18+ | v2 |
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). web_task_settle is destructive (settles a task, preventing re-settlement), but this is not declared. Agents cannot reason about retry safety.
No pagination or limit parameters on web_task_list. If hundreds of tasks queue, the response could exhaust context. A 'limit' parameter (default 20) and 'offset' or 'cursor' would follow production baselines.