karabiner-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_rulesA | List Karabiner-Elements complex modification rules for a profile. Returns each rule's description, enabled/disabled status, whether it's installed in karabiner.json, and its source asset file. Rules are listed in priority order (first match wins in Karabiner). |
| add_ruleA | Create and install a new Karabiner-Elements rule. Writes the rule to an asset file AND installs it in karabiner.json for immediate effect. Karabiner-Elements auto-reloads on file change. For simple remaps, use to_key_code. For tap-vs-hold, combine to_key_code (held behavior) with to_if_alone_key_code (tap behavior). Examples:
|
| toggle_ruleA | Enable or disable an installed rule. The rule stays in karabiner.json either way — disabling adds 'enabled: false', enabling removes that flag. |
| remove_ruleA | Remove a rule from karabiner.json (all profiles). By default the asset file is preserved so the rule can be re-added later via the Karabiner Settings UI or add_rule. |
| edit_ruleA | Edit an existing rule. Updates both the asset file and karabiner.json. Only pass the parameters you want to change. To see a rule's current configuration, use list_rules first. |
| list_profilesA | List all Karabiner-Elements profiles with their rule counts. Shows which profile is currently selected. Use select_profile to switch the active profile. |
| select_profileA | Switch the active Karabiner-Elements profile. Takes effect immediately. Use list_profiles first to see available profiles and their indices. |
| search_key_codesA | Search valid Karabiner-Elements key codes and modifiers. Call this before add_rule or edit_rule to find the correct key_code string. Key codes are Karabiner-specific identifiers (e.g. 'return_or_enter' not 'enter', 'delete_or_backspace' not 'backspace', 'grave_accent_and_tilde' not '`'). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jason-weddington/karabiner-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server