The server defines 3 tools with explicit schemas and descriptions. However, there are significant gaps in parameter-level documentation and output schema specification. Tool names follow verb_noun convention appropriately ('create_draft', 'get_scheduled_drafts', 'get_published_drafts'). All tool descriptions are present but very brief (14-44 chars, below the 194 char production baseline). Critically, parameter descriptions are missing for several fields: 'threadify', 'schedule_date', 'auto_retweet_enabled', and 'auto_plug_enabled' lack any explanation of what they control. The 'get_scheduled_drafts' and 'get_published_drafts' tools accept no parameters but also lack documentation about return structure, pagination, or result limits. Output schemas are not documented, LLMs cannot infer what fields to expect from draft objects. Error handling exists (McpError with ErrorCode) but provides no recovery guidance or actionable next steps.
Tools (3)
create_draftwriteauthsource verified58/100
Create a new draft on Typefully. Supports single tweets and threads.
Parameter descriptions missing for 4 of 5 create_draft parameters (threadify, schedule_date, auto_retweet_enabled, auto_plug_enabled). LLMs cannot infer what these flags control without explicit docs.
Output schemas not documented for any tool. Draft objects returned by all 3 tools lack field-level descriptions. LLMs cannot plan downstream operations or extract data confidently.
Tool descriptions are extremely brief (14-44 chars, well below 194 char production baseline). 'Get recently scheduled drafts from Typefully.' does not clarify when to use this vs get_published_drafts, what ordering is returned, or whether results are paginated.
Add detailed parameter descriptions for all 5 create_draft fields. Example: 'threadify: If true, automatically split content into tweets when it exceeds Twitter character limits. Default: false. Useful for long-form content that you want split without manual formatting.'
Document the output schema for Draft objects returned by all 3 tools. Include field definitions: { id: string, content: string, scheduled_date?: ISO8601, published_date?: ISO8601, share_url?: string, auto_retweet_enabled: boolean, auto_plug_enabled: boolean }.
Expand tool descriptions to 50 - 200 chars, following production baselines. Example for get_scheduled_drafts: 'Retrieve up to 20 recently scheduled drafts, sorted by scheduled date (nearest first). Useful for reviewing what's queued before publishing. Call create_draft first to schedule new content.'
Add pagination support: limit (default 20, max 100) and offset parameters to get_scheduled_drafts and get_published_drafts. Return total_count so the agent knows if more results exist.
Implement a dry-run mode for create_draft: add optional 'dry_run' boolean (default false) parameter. When true, validate the request and return a preview (e.g., auto-split tweets) without committing to Typefully.
Enhance error messages with structured classification. Catch API errors from this.client.* and map them to categories: 'rate_limited (retryable)', 'invalid_input (user-fixable)', 'auth_failed (fatal)'. Return { error: string, code: string, retry_after?: number, next_steps?: string }.
Score history
Overall score trend
↑ 4 points across a rubric change (v1 → v2)
49/100
Scored
Grade
Overall
Spec posture
Rubric
2026-09-22
F
49
2026-07-28+
v2
2026-03-09
F
45
-
v1
No pagination mechanism (limit, offset, cursor) exposed in get_scheduled_drafts or get_published_drafts. If user has hundreds of drafts, response could be truncated or cause context window explosion without guidance on how to retrieve more.
No dry-run or confirmation mechanism for create_draft. This is a WRITE operation that creates state on Typefully. Agents can accidentally spam drafts with no way to preview or confirm before execution.
Error messages in tool responses are generic text blocks (e.g., 'Tool execution failed: <error message>'). No structured error classification (retryable, user-fixable, fatal) or recovery guidance for the LLM.
Parameter 'schedule_date' documented as 'ISO date string' but lacks specifics: is time required? What timezone? What if the date is in the past? No constraint bounds or validation examples provided.
Result limits not specified or capped in server code. get_scheduled_drafts and get_published_drafts could return hundreds of drafts, wasting tokens and degrading LLM reasoning. Production tools cap results at 20-50 items.
get_scheduled_draftsget_published_drafts
Constrain schedule_date: validate it is a valid ISO8601 string and is in the future. Return a specific error if the date is in the past: 'schedule_date must be in the future (got 2024-01-15, but current time is 2024-12-20).'
Cap results in get_scheduled_drafts and get_published_drafts to 20 items by default. Update descriptions: 'Returns up to 20 most recent drafts. Use offset parameter to fetch older results.'
Add idempotent ID or request deduplication for create_draft to prevent duplicate drafts if an agent retries on transient errors. Include an optional 'idempotency_key' parameter.
Validate threadify and auto_* boolean parameters with clear error messages if unexpected types are passed (e.g., 'threadify must be boolean, got string "yes"').