MCP server for Tissue, a personal data logging and checkin service
tissue-mcp has 2 tools with basic schemas and minimal descriptions. Tool names lack action verbs (checkin vs check_in). Descriptions are extremely short (10-40 chars), below the 50-200 char baseline for LLM optimization. Parameters have types but lack detailed descriptions explaining constraints, formats, or dependencies. No output schema documentation. Error handling is absent, raw errors returned without recovery guidance. The checkin tool accepts free-form strings (tags, link, note) without validation or format constraints. No pagination, no structured output guidance.
Checkin to the Tissue
Get the current status of the Tissue
Tool names lack action verbs. 'checkin' should be 'create_checkin' or 'check_in' to signal intent clearly. 'get_status' is acceptable but inconsistent naming style.
Descriptions are critically short (10-40 chars). 'Checkin to the Tissue' and 'Get the current status of the Tissue' lack context on WHEN to use, WHAT it returns, and any prerequisites. Baseline is 50-200 chars for LLM optimization.
Parameter descriptions are missing or trivial. 'tags' accepts free-form comma-separated strings with no format validation, length limits, or examples. 'link' and 'note' have no constraints. LLMs cannot infer valid input ranges.
No output schema documented. checkin returns a text message with ID; get_status returns JSON wrapped in markdown. LLMs cannot parse structured responses or chain downstream calls without explicit schema.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 35 | 2026-07-28+ | v2 |
Error handling is absent. Raw errors from tissueClient are returned without recovery guidance. No distinction between retryable, user-fixable, or fatal errors. LLMs receive no actionable next steps.