Token导航 LogoToken导航TokenDH.com
Kitty MCP Server logo
开发工具stdio官方级别未说明来源级核验

Kitty MCP Server

MCP Server

Kitty MCP Server是一个生产级的MCP服务器,用于编程方式控制kitty终端实例,适用于自动化工作流程和终端管理。

工具数

9

提示词数

0

GitHub Stars

3

资源数

0
进程管理PythonClaude开发工具Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

den-tanui

提供方

den-tanui

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install kitty-mcp

详细介绍

Kitty MCP服务器

A production-grade MCP server for controlling kitty terminal instances

A生产级 模型上下文协议(MCP) 控制服务器 小猫 终端实例。

概述

  • 以编程方式创建、管理和控制kitty终端实例
  • 将文本和组合键发送到kitty窗口
  • 捕获回滚缓冲区内容以进行命令输出分析
  • 适用于长时间运行的流程、日志分析和自动化工作流
  • 所有实例均已启动 --app-id 用于窗口识别

特性

  • 发射 具有唯一Unix套接字和应用程序id的kitty实例
  • 发送文本组合键 到windows
  • 启动窗口 在现有实例中
  • 捕捉回滚 缓冲区内容物
  • 管理应用程序ID 用于窗口识别
  • 列表关闭 实例
  • JSON结构化日志记录
  • 始终异步/等待
  • 全面的错误处理

安装

先决条件

  • Python 3.11+
  • 安装了kitty终端并位于PATH中
  • 紫外线 (推荐)或pip

从PyPI安装

# Install from PyPI
pip install kitty-mcp

# Install with uv (recommended)
uv add kitty-mcp

从源代码安装

# Clone repository
git clone https://github.com/your-username/kitty-mcp.git
cd kitty-mcp

# Install with uv
uv pip install -e ".[dev]"

# Or with pip
pip install -e ".[dev]"

用法

运行服务器

# Run directly
python -m kitty_mcp

# Or using the installed script
kitty-mcp

服务器通过stdio(标准输入/输出)进行通信,以实现MCP兼容性。

配置

在以下位置创建配置文件 ~/.config/kitty-mcp/config.json:

{
  "socket_dir": "/tmp/kitty-mcp",
  "max_instances": 10,
  "socket_permissions": "0600",
  "logging": {
    "level": "INFO"
  },
  "kitty": {
    "launch_timeout": 30,
    "command_timeout": 30
  }
}

配置选项:

  • socket_dir:Unix套接字目录(默认: /tmp/kitty-mcp-)
  • max_instances:最大并发实例数(默认值:10,最大值:100)
  • socket_permissions:套接字文件权限(默认值:“0600”)
  • logging.level:日志级别(调试、信息、警告、错误)
  • kitty.launch_timeout:启动kitty的超时时间(秒)
  • kitty.command_timeout:RC命令超时(秒)

可用工具

发射

启动启用远程控制的新kitty实例。

参数:

  • app_id (字符串,必填):实例的唯一标识符
  • working_directory (字符串,可选):工作目录
  • window_class (字符串,可选):窗口类(默认为app_id)

退货: {"success": true, "app_id": "...", "socket_path": "...", "pid": 1234}

send_text

将文本发送到kitty窗口。

参数:

  • app_id (字符串,必填):实例标识符
  • text (字符串,必填):要发送的文本
  • match (字符串,可选):窗口匹配条件

send_key

将组合键发送到小猫窗口。

参数:

  • app_id (字符串,必填):实例标识符
  • key (字符串,必填):组合键(例如,“ctrl+c”、“enter”)
  • match (字符串,可选):窗口匹配条件

launch_window

在现有的kitty实例中启动一个新窗口。

参数:

  • app_id (字符串,必填):实例标识符
  • command (array,必填):运行命令
  • cwd (字符串,可选):工作目录

get_scrollback

捕获回滚缓冲区内容。

参数:

  • app_id (字符串,必填):实例标识符
  • lines (整数,可选):行数(默认值:全部)
  • match (字符串,可选):窗口匹配条件

退货: {"success": true, "content": "..."}

关闭

关闭一个kitty实例。

参数:

  • app_id (字符串,必填):实例标识符
  • force (布尔值,可选):强制关闭

get_app_id

获取正在运行的kitty实例的应用程序id。

参数:

  • app_id (字符串,必填):实例标识符

退货: {"success": true, "app_id": "...", "configured_app_id": "..."}

set_app_id

更新实例的应用id跟踪。

参数:

  • app_id (字符串,必填):当前实例标识符
  • new_app_id (字符串,必填):新标识符

list_instances

列出所有活动的托管kitty实例。

退货: {"success": true, "instances": [...]}

发展

运行测试

# Run all tests
uv run pytest

# Run with coverage
uv run pytest --cov=kitty_mcp --cov-report=term-missing

# Run only unit tests
uv run pytest tests/unit/

# Run only integration tests (requires kitty)
uv run pytest tests/integration/

快速开始

  1. 安装 kitty mcp并使用您的mcp客户端(例如OpenCode、Claude Desktop)进行配置
  2. 发射 kitty实例:
   result = kitty_launch(app_id="my-terminal", working_directory="/home/user")
  1. 发送命令:
   kitty_send_text(app_id="my-terminal", text="echo 'Hello World!'")
   kitty_send_key(app_id="my-terminal", key="enter")
  1. 获取输出:
   output = kitty_get_scrollback(app_id="my-terminal", lines=5)
   print(output["content"])  # Hello World!
  1. 清理:
   kitty_close(app_id="my-terminal")

MCP客户端配置

开源代码

增添 .opencode/opencode.jsonc:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "kitty": {
      "type": "local",
      "command": ["kitty-mcp"],
      "enabled": true
    }
  }
}

克劳德桌面

增添 claude_desktop_config.json:

{
  "mcpServers": {
    "kitty": {
      "command": "kitty-mcp"
    }
  }
}

代码质量

# Type checking
mypy src/

# Linting
ruff check src/

# Format code
ruff format src/

建筑

┌─────────────────┐
│   MCP Client    │ (opencode/Claude Desktop)
│   (stdio IPC)   │
└────────┬────────┘
         │
         ▼
┌──────────────────────┐
│  KittyMCP Server     │ FastMCP framework
│  ├─ Tool handlers    │
│  ├─ State management │
│  ├─ Configuration    │
│  └─ Logging          │
└────────┬─────────────┘
         │ asyncio subprocess
         ▼
┌──────────────────────┐
│  Kitty RC Commands   │ kitten @ --to unix:/socket
└────────┬─────────────┘
         │ Unix socket
         ▼
┌──────────────────────┐
│  Kitty Instance      │ allow_remote_control=yes
│  └─ --app-id set     │
└──────────────────────┘

例子

终端自动化

# Launch and run commands
kitty_launch(app_id="automation", working_directory="/tmp")
kitty_send_text(app_id="automation", text="ls -la")
kitty_send_key(app_id="automation", key="enter")
output = kitty_get_scrollback(app_id="automation")
print(output["content"])

TUI应用程序控制

# Control nvim with complex workflows
kitty_launch(app_id="editor", working_directory="/project")
kitty_send_text(app_id="editor", text="nvim")
kitty_send_key(app_id="editor", key="enter")

# Navigate nvim interfaces
kitty_send_key(app_id="editor", key="space")
kitty_send_key(app_id="editor", key="p")  # Open projects
kitty_send_key(app_id="editor", key="enter")

多实例管理

# Launch multiple terminals
for i in range(3):
    kitty_launch(app_id=f"terminal-{i}", working_directory=f"/tmp/term-{i}")

# List all instances
instances = kitty_list_instances()
print(f"Active instances: {len(instances['instances'])}")

# Close all
for instance in instances["instances"]:
    kitty_close(app_id=instance["app_id"])

演出

  • 命令延迟:RC操作\<100ms
  • 启动时间:MCP服务器初始化约0.5秒
  • 内存使用:10个活动实例小于50MB
  • 并行支持:最多100个实例(可配置)

安全

  • 套接字权限:默认情况下仅限用户(0600)
  • 命令验证:输入净化和验证
  • 错误处理:日志中没有敏感数据
  • 原子操作:安全状态持久性

贡献

欢迎投稿!请参阅 贡献.md 作为指导方针。

许可证

MIT许可证-请参阅 许可证 了解详情。

更新日志

更改日志.md 查看版本历史和发行说明。

目录标签

目录标签

进程管理PythonClaude开发工具终端控制本地部署自动化工具命令行工具

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

部署方式(deploymentType,部署类型)

local-only

工具数量(toolCount,工具数)

9

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiononelocal-only

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP