AI-powered robotic arm control server with pose and trajectory management via MCP protocol
cogni-mcp-server has 9 tools with basic descriptions and minimal input schemas. Tool names follow verb_noun convention (storePose, listPoses, moveTo, etc.), which is good. However, descriptions are terse (10-60 chars), parameter descriptions are minimal or absent, and output schemas are not documented. No error handling guidance, no parameter constraints (enums, ranges), and no indication of idempotency or retry safety. The server targets robotics (arm control, pose management) but lacks the structured output and error recovery patterns needed for reliable agent integration.
Deletes a pose with the given label from the database
Delete a trajectory by its label
List all stored poses.
List all stored trajectories.
Move robotic arm through the sequence of poses specified by labels
Replay a stored trajectory
Start hand‑teaching for a given label. The user can manually guide the arm.
Stop hand‑teaching for a label and save the recorded trajectory
Store the current robot configuration under a semantic label and return all joint angles for it.
Descriptions are too short (10-60 chars) to guide LLM tool selection. Baseline is 194 chars. Missing context on WHEN to use each tool and WHAT it returns.
Output schemas are not documented. LLMs cannot infer what fields listPoses or listTrajectories return, forcing them to guess or make extra calls.
No error handling guidance. Destructive tools (deletePose, deleteTrajectory) lack confirmation or dry-run patterns. No recovery hints if a label is not found.
Parameter descriptions are minimal. 'label' and 'labels' lack format guidance, constraints, or examples. No indication of valid label syntax or length limits.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 36 | <=2025-11-25 | v2 |
start/stop tool pair lacks clear state machine documentation. Unclear if calling start twice is safe, or if stop without start is an error. No idempotency guarantees.