karabiner-mcp
MCP server for managing Karabiner-Elements keyboard remapping rules on macOS, enabling LLMs to search key codes, list/add/edit/remove/toggle rules, and switch profiles through natural language.
README
karabiner-mcp
MCP server for managing Karabiner-Elements keyboard remapping rules on macOS.
Exposes Karabiner configuration as MCP tools so an LLM can search key codes, list/add/edit/remove/toggle rules, and switch profiles — all through natural language.
Tools
| Tool | Description |
|---|---|
search_key_codes |
Find Karabiner key code names (e.g. "enter" → return_or_enter) |
list_rules |
List all rules in the current profile with enabled/disabled status |
add_rule |
Create a new remapping rule |
edit_rule |
Modify an existing rule |
remove_rule |
Delete a rule (with optional asset cleanup) |
toggle_rule |
Enable or disable a rule |
list_profiles |
Show all Karabiner profiles |
select_profile |
Switch the active profile |
Installation
Requires Python 3.13+ and uv. No need to clone the repo — register the server in your Claude config (~/.claude.json) and uvx will install it on first run:
{
"mcpServers": {
"karabiner-mcp": {
"type": "stdio",
"command": "uvx",
"args": [
"--from", "git+https://github.com/jason-weddington/karabiner-mcp.git",
"karabiner-mcp"
]
}
}
}
Then ask Claude things like:
- "Remap Caps Lock to Escape"
- "Make right Option act as Hyper key"
- "When I tap left Shift, type open-paren"
- "Disable the rule called 'Caps Lock to Escape'"
Rule patterns
- Simple remap — one key to another
- Modifier combo — e.g. Cmd+Shift+K to something
- Tap vs hold — different output for tap and hold on the same key
- App-specific — rules scoped to specific applications by bundle ID
- Shell command — trigger a shell command from a key combo
Development
uv run pytest # Run tests
uv run pytest --cov=karabiner_mcp # Tests with coverage
uv run ruff check . # Lint
uv run ruff format . # Format
uv run mypy src/ # Type check
License
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.