MCP server implementing the SYNAPSE Cognitive Envelope Protocol (RFC-001) for wrapping and validating cognitive messages in a standardized format
Two tools with basic schemas and descriptions, but significant gaps in parameter documentation, output schema clarity, and error handling guidance. create_thought has a context parameter (object type) with no field constraints or examples. validate_thought lacks output schema documentation. Neither tool describes what happens on error or how to recover. Descriptions are adequate (100-150 chars) but lack WHEN/WHY guidance. No tool annotations (readOnlyHint, destructiveHint). Parameter descriptions are present but generic, 'Metadata about the environment' does not explain what fields context should contain or what values are valid.
Wraps a raw message/payload into a formal Cognitive Envelope (RFC-001). Use this when you want to send a thought to the Stigmergic Field or another agent.
Validates if a given JSON string is a compliant Cognitive Envelope. Use this when receiving a message from an untrusted agent.
Output schema not documented. create_thought returns 'A JSON string representing the full Cognitive Envelope' but the structure (envelope/cognition/payload nesting) is not formally specified in the tool definition. LLMs cannot plan downstream tool calls without knowing the response shape.
context parameter (object type) has no field constraints or documentation of expected keys. Description says 'e.g., {domain: production}' but does not specify required vs optional fields, allowed keys, or value types. LLMs will guess at structure.
Error handling lacks recovery guidance. Both tools catch exceptions and return error strings, but do not categorize errors as retryable, user-fixable, or fatal. 'Error creating thought: ...' gives the LLM no actionable next step.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
No tool annotations. Neither tool declares readOnlyHint (both are read-only per Risk field) or idempotentHint. Agents cannot determine if repeated calls are safe or if they have side effects.
validate_thought output is unstructured. Returns a plain string ('Valid: ...', 'Invalid: ...') instead of a structured object with fields like {valid: bool, errors: [string], details: object}. LLMs cannot reliably parse or act on the result.