MCP server for the niri Wayland compositor - documentation lookup and keybind management
Server has 6 tools with complete schemas and descriptions. Naming follows verb_noun convention (niri_docs_lookup, niri_add_keybind, etc.). Descriptions are present and contextual (avg ~150 chars), meeting baseline. However, parameter descriptions lack specificity on constraints, formats, and error recovery. Output schemas are not documented. Error handling is minimal, most tools return plain text without structured guidance. No tool annotations (readOnlyHint/destructiveHint) despite clear risk profiles. Missing pagination for docs_lookup despite potentially large result sets.
Add a new keybinding to the niri config file. The config is validated using 'niri validate' before being applied. If the binds section doesn't exist, it will be created.
Search documentation in the niri wiki docs or read a specific doc file. Use this to find information about niri configuration, key bindings, window rules, and other features. If query matches a filename (e.g. 'Configuration:-Key-Bindings.md' or 'Configuration:-Key-Bindings'), the full document is returned.
Query the action and properties associated with a specific keybinding in the niri config file.
Rebind an action to a new key combination. You can either look up the action to rebind, or specify the old key combination to replace. The config is validated using 'niri validate' before being applied.
Remove (comment out) a keybinding from the niri config file by its key combination. The config is validated using 'niri validate' before being applied.
No tool annotations (readOnlyHint/destructiveHint/idempotentHint) despite clear risk profiles. niri_add_keybind and niri_remove_keybind are destructive but unmarked; niri_docs_lookup and niri_query_keybind are read-only but unmarked.
Output schemas not documented. Tool handlers return plain text responses without structured field definitions. LLMs cannot plan downstream calls or extract typed data.
Parameter descriptions lack constraint details. 'key' parameter accepts complex syntax (Mod+T, Super+Alt+L, etc.) but no regex pattern or format specification. 'action' parameter accepts free-form strings with no enum or examples of valid actions.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
Validate the niri KDL configuration file using 'niri validate'. Checks for syntax errors and duplicate bindings.
Error handling is minimal. Most tools return plain text errors without recovery guidance. niri_validate_config returns isError flag but no actionable next steps. No categorization of retryable vs fatal errors.
niri_docs_lookup accepts maxResults parameter but no pagination support (no offset/cursor). Large doc sets could exceed context window. Description does not mention result limits.