Model Context Protocol (MCP) server for Opengist, the self-hosted pastebin powered by Git
Server has 10 tools with consistent verb-noun naming (list_, get_, create_, update_, delete_, search_, like_, unlike_). All tools have descriptions (avg ~50 chars, baseline 194 chars) and input schemas with typed parameters. However, descriptions are significantly shorter than production baselines and lack context on WHEN to use tools or dependencies between them. Parameter descriptions are present but minimal. Output schemas are not documented. Error handling guidance is absent. No tool annotations (readOnlyHint/destructiveHint) despite clear risk stratification in metadata.
Create a new gist
Delete a gist
Get a specific gist by ID
Get the raw content of a file in a gist
Get information about the authenticated user
Like a gist
List gists from the Opengist instance
Search for gists by query
Descriptions are 40-50 characters, well below production baseline of 194 chars. Lack context on WHEN to use each tool, dependencies, or prerequisites. E.g., 'List gists from the Opengist instance' does not explain pagination behavior, filtering, or when to call search_gists instead.
Output schemas are not documented. LLMs cannot infer what fields list_gists returns, whether pagination includes total_count or next_cursor, or what structure create_gist returns. This forces agents to guess and risks failed downstream tool chains.
No tool annotations despite clear risk stratification: delete_gist is DESTRUCTIVE, create_gist/update_gist/like_gist/unlike_gist are WRITE, others are READ_ONLY. Missing readOnlyHint/destructiveHint annotations prevent agents from reasoning about safety and retry logic.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
Unlike a gist
Update an existing gist
Parameter descriptions are minimal (e.g., 'The gist ID' for id param). No format constraints, ranges, or examples. 'files' parameter in create_gist/update_gist is typed as 'object' with no schema for its structure, LLMs cannot infer the expected shape.
No error handling guidance. Tools lack recovery hints (e.g., 'If gist not found, try search_gists() first'). No categorization of errors as retryable vs user-fixable. Agents cannot self-correct on failures.