MCP服务器管理箱
模型上下文协议 (MCP) 服务器,旨在促进大语言模型 (LLM) 和 Govbox 项目 Rakefile 任务之间的集成。
📋 关于项目
该服务器充当LLM和Rake命令之间的桥梁,允许语言模型以安全和可控的方式执行自动化任务。该项目旨在简化Rake命令的执行,使其无需事先了解特定命令即可访问。
🎯 目标
主要目标是使LLM能够:
- 以可编程方式执行 Rakefile 任务
- 自动化常见进程
- 减少对 Rake 命令的特定知识需求
- 提供执行任务的标准化接口
🚀 功能
- 安全可控的任务执行
- 支持多个项目
- 结果同步返回
- 强大的错误处理
🛠️ 使用的技术
- Go (Golang) 到 MCP 服务器
- Ruby/Rake 任务执行
- Docker 容器
⚙️ 安装和配置
📦 步骤 1: 获取代码
- #### 克隆仓库
git clone https://github.com/giovanoh/mcp-server-govbox.git
cd mcp-server-govbox🔨 Passo 2:构建
- #### 使用Docker
docker build -t mcp-server-govbox .- #### 在本地运行
go build cmd/app/main.go🔧 步骤 3:设置服务器
服务器使用环境变量进行配置。所有的环境变量都必须配置为服务器正常工作。首先:
cp .env.example .env
# Edite o arquivo .env com suas configurações需要以下环境变量:
MCP_GOVBOX_PROJECT_PATHGovbox 项目目录路径MCP_SHELL_PATH: 用于执行命令的 shell (例如 /bin/zsh)MCP_SHELL_OPTIONS: 额外的 shell 参数 (例如: -c)
重要说明: .env 文件必须位于调用服务器的客户端项目的根文件夹中。例如:
- 如果您在 Windows 上使用 Claude Desktop,则该文件应保存在:
C:\Users\\AppData\Local\AnthropicClaude\app-\.env - 如果您正在使用自己的客户端,请将.env 放在客户端的根文件夹中
在启动服务器之前,请确保在 .env 文件中正确配置了所有变量。
🔧 步骤 4: 客户端设置
要将此服务器与 Claude Desktop 应用程序作为客户端使用,请调整您的文件配置 claude_desktop_config.json 根据例子:
与 Docker 一起使用
{
"mcpServers": {
"mcp-server-govbox": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"mcp-server-govbox:latest"
]
}
}
}直接使用可执行文件
{
"mcpServers": {
"mcp-server-govbox": {
"command": "/path/to/executable"
}
}
}对于其他客户端,请复制所需的配置,并根据您的 LLM 客户端使用的模板进行配置。
# Usando Docker
cp config_docker_example.json config.json
# OU para executável
cp config_executable_example.json config.json❌ 可能的错误
在服务器运行期间,可能会发生一些错误,并将返回给客户端。以下是可能的错误及其原因:
初始化错误
"Error loading .env file":
- 当 .env 文件未找到时发生 - 或者当有权限读取文件的问题 - 或者当文件格式错误
"Invalid shell configuration":
- 当 shell 环境变量不正确或不存在时发生 - 可能的原因: - MCP_GOVBOX_PROJECT_PATH 未定义或为空 - MCP_SHELL_PATH 未定义或为空 - 指定的 shell 在系统中不存在
校验错误
"Param 'projects' must be a string":
- 当请求中未提供“ projects” 参数时发生 - 或者当给定的值不是一个有效的字符串
执行错误
"Error during command execution (start)":
- 启动命令时出现问题 - 可能的原因: 权限不足、 找不到 shell、 设置错误的环境变量
"Error during command execution (wait)":
- 当执行命令时出现问题时发生 - 可能的原因:命令突然中断,系统资源问题
"Error creating stdout/stderr pipe":
- 当服务器无法创建管道以捕获命令输出时发生 - 可能的原因:权限问题,操作系统限制受到影响
如何解决
- 检查 .env 文件中的所有环境变量是否正确配置
- 确保 .env 文件位于正确的位置
- 检查用户是否拥有适当的权限:
- 读取 .env 文件 - 运行配置的 shell - 访问 Govbox 项目目录
- 确认配置的 shell 是否存在并且可以访问
- 检查 Govbox 工程路径是否正确
- 请检查服务器日志以了解有关错误的详细信息
📝 许可证
这个项目是根据许可证 MIT 学士.
