kitty-mcp-server
MCP server for controlling the kitty terminal emulator. Exposes 40 tools for managing windows, tabs, layouts, text, appearance, and more.
README
kitty-mcp-server
MCP server for controlling the kitty terminal emulator.
Exposes 40 tools for managing kitty windows, tabs, layouts, text, appearance, and more via the Model Context Protocol. Communicates with kitty through its remote control protocol using the kitten CLI.
Prerequisites
- kitty terminal emulator with remote control enabled
- Node.js 20+
Installation
npm install
npm run build
kitty.conf setup
Add these lines to your ~/.config/kitty/kitty.conf:
allow_remote_control yes
listen_on unix:/tmp/kitty-{kitty_pid}
Restart kitty after making changes.
Configuration for Claude Code
Option 1: Running inside kitty (auto-detects socket)
Add to .claude/settings.json:
{
"mcpServers": {
"kitty": {
"command": "node",
"args": ["/path/to/kitty-mcp-server/dist/index.js"]
}
}
}
When the MCP server runs inside a kitty window, it automatically picks up the KITTY_LISTEN_ON environment variable.
Option 2: Fixed socket path
{
"mcpServers": {
"kitty": {
"command": "node",
"args": ["/path/to/kitty-mcp-server/dist/index.js"],
"env": {
"KITTY_MCP_SOCKET": "unix:/tmp/kitty-12345"
}
}
}
}
Environment variables
| Variable | Description |
|---|---|
KITTY_MCP_SOCKET |
Override the kitty remote control socket path. Takes highest priority. |
KITTY_LISTEN_ON |
Set automatically by kitty inside its windows. Used as fallback when KITTY_MCP_SOCKET is not set. |
KITTY_MCP_BINARY |
Override the kitty CLI binary name or path. Default: kitten. |
KITTY_RC_PASSWORD |
Password for kitty remote control authentication, if configured. |
Tools
Discovery (read-only inspection)
kitty_ls-- list all OS windows, tabs, and windows as a JSON treekitty_get_text-- retrieve text content from a window (screen, scrollback, selection, last command output)kitty_get_colors-- get terminal color definitionskitty_select_window-- visually select a window with overlay labels
Window Management
kitty_launch-- launch a new process in a window, tab, or OS windowkitty_close_window-- close windowskitty_focus_window-- focus a windowkitty_resize_window-- resize a window within its layoutkitty_detach_window-- move windows to a different tab or OS windowkitty_set_window_title-- set window title
Tab Management
kitty_close_tab-- close tabskitty_focus_tab-- focus a tabkitty_set_tab_title-- set tab titlekitty_set_tab_color-- change tab bar colorskitty_detach_tab-- move tabs to a different OS window
Text / Input
kitty_send_text-- send text to windowskitty_send_key-- send key presses to windows
Scroll
kitty_scroll-- scroll window content (lines, pages, prompts, start/end)
Appearance
kitty_set_colors-- set terminal colorskitty_set_font_size-- set font sizekitty_set_spacing-- set padding and marginskitty_set_background_opacity-- set background opacitykitty_disable_ligatures-- control ligature rendering
Layout
kitty_goto_layout-- switch to a specific layoutkitty_last_used_layout-- toggle to the previous layoutkitty_set_enabled_layouts-- set which layouts are available for cycling
Markers
kitty_create_marker-- highlight text matching a patternkitty_remove_marker-- remove markers from a window
System
kitty_run-- run a program and get its outputkitty_action-- run a mappable kitty actionkitty_kitten-- run a kitten (kitty extension)kitty_load_config-- reload kitty configurationkitty_signal_child-- send Unix signals to foreground processeskitty_env-- change environment variables for new windowskitty_set_user_vars-- set user variables on windowskitty_resize_os_window-- resize, fullscreen, or hide OS windows
Composite (multi-step operations)
kitty_dump_scrollback-- dump scrollback to a temp file with paginationkitty_get_tab_text-- get text from all windows in a tab in one call
Utility
kitty_clear_cache-- clear the MCP server internal cachekitty_health_check-- verify kitty connectivity and server status
License
MIT
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.