Local-workspace-aware MCP server that publishes and syncs files to GitHub Gists over stdio.
gistjet demonstrates solid tool design with consistent naming (verb_noun pattern), comprehensive parameter descriptions, and well-structured schemas. All 13 tools follow the verb-first convention (init_, publish_, sync_, get_, list_, open_, unlink_, update_). Input schemas are present and typed for all tools. However, tool descriptions vary in depth, some are excellent (publish_path_to_gist: 180+ chars with clear intent), others are adequate but could be more prescriptive about when to use them. Parameter descriptions are consistently present and specific (e.g., 'Workspace-relative or absolute path'). Output schemas are documented in type definitions but not explicitly exposed in the tool registration. Error handling is present but lacks recovery guidance in descriptions. No tool annotations (readOnlyHint/destructiveHint) despite clear risk classifications.
Get the sync status of all mappings in the workspace.
Get details of a specific mapping by id.
Get the sync status of a specific mapping, including file-level changes and diffs.
Get the current workspace configuration and state.
Initialize a new gistjet workspace with a `.gistjet.json` configuration file.
List GitHub Gists accessible to the authenticated user, with optional filtering and pagination.
List all local-path ↔ gist mappings in the workspace.
Tool annotations missing: no readOnlyHint, destructiveHint, or idempotentHint despite clear risk classifications (WRITE, DESTRUCTIVE, READ_ONLY). LLMs cannot infer safety properties without explicit hints.
Output schemas not exposed in tool registration. Type definitions exist (PublishResultLike, SyncResultLike, etc.) but are not passed to registerTool(). LLMs cannot plan downstream calls without knowing return structure.
Error handling descriptions lack recovery guidance. E.g., publish_path_to_gist mentions E_VISIBILITY_CONFIRM and E_BINARY errors but does not explain what the LLM should do next (retry with confirm_public=true, use allow_binary=true, etc.).
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2025-06-18+ | v2 |
Retrieve the full content and metadata of a specific GitHub Gist.
Publish a file or folder from the workspace to a new GitHub Gist.
Publish text content from a buffer or editor selection to a new GitHub Gist.
Synchronize a local file or folder with its linked GitHub Gist, resolving conflicts and applying changes.
Unlink a local path from its GitHub Gist, optionally deleting the remote gist.
Update workspace configuration settings.
Generic descriptions on discovery tools. list_mappings, get_workspace, and get_all_mapping_statuses have minimal descriptions (under 80 chars). Should explain when to call them and what they reveal (e.g., 'Call before sync to see which local paths are linked to gists').
Confirmation parameters (confirm_public, confirm_delete, confirm_overwrite_local) lack clear guidance on consequences. Descriptions state 'Must be true' but do not explain what happens if omitted or what the user is confirming.