MCP server for Ghostty terminal configuration management
Solid foundation with consistent naming (verb_noun pattern), clear descriptions (avg 120 chars), and complete input schemas with types. All 11 tools follow the ghostty_* prefix convention. However, output schemas are not documented in the source code, only inferred from CLI parser return types. Parameter descriptions are present but often generic (e.g., 'Filter by...'). No error handling guidance, no recovery hints, and no indication of which tools are idempotent or safe to retry. Missing tool annotations (readOnlyHint, destructiveHint). All tools are read-only (low risk), but this is not explicitly declared in the tool definitions.
Get full documentation for a specific Ghostty config option. Supports fuzzy matching if exact key is not found.
List actions that can be bound to keybindings in Ghostty
List named colors available in Ghostty
List available font families and their faces
List current keybindings in Ghostty
List available Ghostty themes
Search Ghostty configuration documentation by keyword. Returns matching config options with their docs and default values.
Output schemas not documented. Parsers (parseConfigDocs, parseFontList, parseThemeList, etc.) exist in src/lib/parsers.ts but are not exposed as formal schema definitions in tool registration. LLMs cannot plan downstream operations without knowing return field names and types.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All 11 tools are read-only and safe to retry, but this is not declared in the tool definitions. LLMs cannot infer safety properties and may avoid retrying on transient failures.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 67 | 2026-07-28+ | v2 |
Show the currently active Ghostty configuration. Use changes_only=true to see only user-modified values.
Show which font face Ghostty uses to render specific characters
Validate a Ghostty config file for syntax errors. Without arguments, validates the default config.
Show the installed Ghostty version and build info
No error handling guidance. exec() in src/lib/exec.ts returns exitCode but tools do not document what errors mean or how to recover. E.g., if ghostty CLI is not installed, the error message is opaque to the LLM.
Parameter descriptions are generic. E.g., 'Filter by family name (case-insensitive substring match)' appears in ghostty_list_fonts but does not explain when to use this vs. calling ghostty_list_fonts without filters. Discovery tools should explain what structure they reveal.
No result limits or pagination documented. ghostty_list_fonts, ghostty_list_themes, ghostty_list_actions, ghostty_list_keybinds, and ghostty_list_colors may return large result sets. Tool descriptions do not state max results or offer pagination guidance.