Files
deploy.stack/mcp_server_go/install.sh
cnphpbb 226726eecd feat: 初始化MCP服务器Go版本实现
添加MCP服务器Go版本的核心功能,包括:
- 配置文件管理
- 日志系统
- OpenAI API集成
- HTTP服务器和API端点
- 健康检查和监控
- 安装脚本和文档
2025-09-10 22:23:34 +08:00

132 lines
3.8 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# MCP Server Go 安装脚本
# 设置颜色
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # 无颜色
# 检查是否安装了Go
echo -e "${BLUE}检查Go环境...${NC}"
if ! command -v go &> /dev/null
then
echo -e "${RED}错误: 未安装Go。请先安装Go 1.21或更高版本。${NC}"
exit 1
fi
# 检查Go版本
GO_VERSION=$(go version | awk '{print $3}' | sed 's/go//')
GO_MAJOR=$(echo $GO_VERSION | cut -d. -f1)
GO_MINOR=$(echo $GO_VERSION | cut -d. -f2)
if [ $GO_MAJOR -lt 1 ] || ([ $GO_MAJOR -eq 1 ] && [ $GO_MINOR -lt 21 ]); then
echo -e "${RED}错误: Go版本过低 ($GO_VERSION)。请安装Go 1.21或更高版本。${NC}"
exit 1
fi
echo -e "${GREEN}已安装Go ($GO_VERSION)${NC}"
# 检查当前目录
echo -e "${BLUE}\n检查项目目录...${NC}"
if [ ! -f "main.go" ]; then
echo -e "${RED}错误: 请在包含main.go的项目根目录下运行此脚本。${NC}"
exit 1
fi
echo -e "${GREEN}项目目录正确${NC}"
# 创建日志目录
echo -e "${BLUE}\n创建日志目录...${NC}"
mkdir -p logs
echo -e "${GREEN}日志目录已创建: logs/${NC}"
# 安装依赖
echo -e "${BLUE}\n安装项目依赖...${NC}"
if [ ! -f "go.mod" ]; then
echo -e "${YELLOW}未找到go.mod文件正在初始化Go模块...${NC}"
go mod init mcp_server_go
fi
go mod tidy
if [ $? -ne 0 ]; then
echo -e "${RED}安装依赖失败请检查网络连接和go.mod文件。${NC}"
exit 1
fi
echo -e "${GREEN}依赖安装成功${NC}"
# 编译项目
echo -e "${BLUE}\n编译项目...${NC}"
go build -o mcp_server
if [ $? -ne 0 ]; then
echo -e "${RED}编译失败,请检查代码是否有错误。${NC}"
exit 1
fi
chmod +x mcp_server
echo -e "${GREEN}编译成功: mcp_server (可执行文件)${NC}"
# 检查配置文件
echo -e "${BLUE}\n检查配置文件...${NC}"
if [ ! -f "config.toml" ]; then
echo -e "${YELLOW}警告: 未找到config.toml文件。请根据config.toml.example创建配置文件。${NC}"
else
# 检查是否设置了API密钥
API_KEY=$(grep "api_key" config.toml | awk -F'=' '{print $2}' | tr -d ' "')
if [ "$API_KEY" = "your_api_key_here" ]; then
echo -e "${YELLOW}警告: 配置文件中的API密钥尚未设置请编辑config.toml并填入有效的OpenAI API密钥。${NC}"
else
echo -e "${GREEN}配置文件已找到API密钥已设置${NC}"
fi
fi
# 创建systemd服务文件
echo -e "${BLUE}\n创建systemd服务文件 (可选)...${NC}"
read -p "是否创建systemd服务文件以便作为系统服务运行(y/n): " CREATE_SERVICE
if [[ $CREATE_SERVICE == [Yy]* ]]; then
# 获取当前路径
CURRENT_DIR=$(pwd)
# 获取当前用户
CURRENT_USER=$(whoami)
# 创建systemd服务文件
SERVICE_FILE="/etc/systemd/system/mcp_server.service"
echo -e "${YELLOW}创建systemd服务文件: $SERVICE_FILE${NC}"
cat > mcp_server.service << EOF
[Unit]
Description=MCP Server Go
After=network.target
[Service]
Type=simple
User=$CURRENT_USER
WorkingDirectory=$CURRENT_DIR
ExecStart=$CURRENT_DIR/mcp_server
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
EOF
echo -e "${BLUE}\n请使用以下命令安装systemd服务:${NC}"
echo -e "sudo mv mcp_server.service $SERVICE_FILE"
echo -e "sudo systemctl daemon-reload"
echo -e "sudo systemctl enable mcp_server"
echo -e "sudo systemctl start mcp_server"
fi
# 显示启动说明
echo -e "\n${GREEN}安装完成!${NC}"
echo -e "${BLUE}\n使用说明:${NC}"
echo -e "1. 确保编辑config.toml文件设置正确的OpenAI API密钥"
echo -e "2. 直接运行: ./mcp_server"
echo -e "3. 或按照上述说明设置为系统服务"
echo -e "\n${YELLOW}注意: 首次运行前请确保config.toml中的配置正确无误。${NC}"
echo -e "\n${GREEN}MCP Server Go安装成功${NC}"