CKS MCP has 8 tools with schemas and descriptions present, but quality is inconsistent. Tool names lack clear action verbs (e.g., 'agent_status' vs 'get_agent_status', 'arbitrate_inference_conflict' is vague). Descriptions are present but often domain-specific and lack LLM-friendly guidance on WHEN to use each tool or WHAT happens (especially for WRITE operations). Parameter descriptions exist but are minimal (avg ~30 chars, well below 72-char baseline). No output schemas documented. Error handling is absent, no recovery guidance, no categorization of retryable vs fatal errors. Security concerns: ai_chat accepts 'messages' array and 'model' override without validation; approve_resolution accepts arbitrary 'resolution' objects. No tool annotations (readOnlyHint/destructiveHint) despite 4 WRITE tools. Composition is weak: ai_chat and arbitrate_inference_conflict appear to do overlapping reasoning work; no clear separation of concerns.
return the status of a single in-process reasoning sweeper by agent_id
Bounded agentic loop over a tool-calling LLM with session pinning and iteration limits
Apply a resolution to a dead-lettered conflict task after validation
Resolve an InferenceConfidenceConflict by applying an explicit policy to weigh competing InferenceSteps
Cross-check version recorded on a registered ecosystem graph's Component objects against real __version__ in each component's GitHub repository
Read-only check of whether a registered graph is still fresh using the same TTL GraphFreshnessSweeper applies
Tool names lack action verbs. 'agent_status', 'arbitrate_inference_conflict', 'approve_resolution' are vague. Should be 'get_agent_status', 'resolve_inference_conflict', 'apply_resolution'. LLMs infer intent from verb-noun structure.
No output schemas documented. LLMs cannot plan downstream calls or extract required fields. E.g., does ai_chat return session_id, messages, metadata? Does create_branch return new_session_id?
No error handling guidance. Tools lack recovery hints (e.g., 'If session not found, call create_branch first'). No error categorization (retryable vs fatal). Agents cannot self-correct.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
Close a session, releasing it from the runtime
Fork a new session from an existing one, optionally from a specific historical version
WRITE tools lack annotations and confirmation steps. ai_chat, approve_resolution, arbitrate_inference_conflict, create_branch, close_session modify state but have no destructiveHint, idempotentHint, or dry-run support. Agents cannot safely reason about side effects.
Parameter descriptions are minimal (~30 chars avg, below 72-char baseline). E.g., 'session_id' described as 'Session identifier', does not explain what a session is, how to obtain one, or what happens if invalid. LLMs need actionable context.