OpenHands MCP服务器
一种模型上下文协议(MCP)服务器,提供用于管理OpenHands编码环境的工具。此服务器允许您创建隔离的编码会话,执行git操作,并管理Docker容器以获得AI驱动的编码帮助。
特性
- 会话管理:创建和管理独立的编码会话
- Git集成:克隆存储库、签出分支并执行git命令
- Docker集成:启动OpenHands容器以辅助AI编码(每个会话有多个并发任务)
- 秘密注射:通过环境变量将机密安全地注入会话容器
- 环境隔离:每个会话都有自己的工作区目录
- 清理:自动拆卸,可选择归档未提交的更改
- 会话列表和状态:列出所有会话并监控编码任务容器
MCP工具
start_session
使用指定的git存储库和分支创建新的编码会话。
参数:
repo_url(string):要克隆的Git存储库URLbranch(字符串,可选):要签出的分支名称(默认为main/master)
退货: 用于其他工具的会话ID
代码
启动与OpenHands AI代理的编码会话。每个会话支持多个并发编码任务(容器)。
参数:
session_id(string):start_Session中的会话IDtask_description(string):编码任务的简明语言描述
退货: 容器ID和状态
版本控制系统
在会话的工作区内执行git命令。
参数:
session_id(string):start_Session中的会话IDcommand(string):要执行的Git命令(不带“Git”前缀)
退货: 命令输出和状态
拆卸
清理编码会话,删除容器和目录。
参数:
session_id(string):要删除的会话IDarchive_changes(布尔值,可选):是否存档未提交的更改
退货: 清理状态和归档位置(如适用)
list_sessions
列出所有活动会话及其元数据。
退货: 会话ID和会话信息字典
get_coding_task_status
返回会话中所有编码任务容器的状态和日志。
参数:
session_id(string):会话ID
退货: 包含状态、日志和元数据的容器列表
cleanup_cding_tasks
停止并删除会话的所有编码任务容器。
参数:
session_id(string):会话ID
退货: 每个集装箱的状态
环境变量
您可以使用以下环境变量配置服务器:
OPENHANDS_VERSION:OpenHands版本(默认:0.45)OPENHANDS_SANDBOX_VERSION:沙盒运行时映像(默认:使用OPENHANDS_VERSION)OPENHANDS_VER:容器映像的OpenHands版本(默认值:0.45)OPENHANDS_MAX_TASKS:每个会话的最大并发编码任务(容器)(默认值:3)DOCKER_HOST:Docker套接字/主机覆盖XDG_RUNTIME_DIR:用于波德曼插座检测OPENHANDS_SECRET_*:任何以this为前缀的环境变量都将作为秘密注入会话容器中(例如。,OPENHANDS_SECRET_GITHUB_TOKEN)
安装
- 克隆此存储库
- 安装依赖项:
pip install -e . - 确保Docker正在运行
- 运行服务器:
openhands-mcp-server
需求
- Python 3.8+
- 码头工人
- Git
- OpenHands Docker镜像
配置
服务器使用以下默认设置:
- 会话目录:
./sessions - 存档目录:
./archive - OpenHands Docker镜像:
docker.all-hands.dev/all-hands-ai/openhands:
这些可以通过如上所述的环境变量进行配置。
