forked from DevOps/deploy.stack
71 lines
2.1 KiB
Bash
71 lines
2.1 KiB
Bash
|
|
#!/bin/bash
|
|||
|
|
|
|||
|
|
# MCP Time Server 安装脚本
|
|||
|
|
|
|||
|
|
# 设置颜色
|
|||
|
|
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}"
|
|||
|
|
go mod tidy
|
|||
|
|
if [ $? -ne 0 ]; then
|
|||
|
|
echo -e "${RED}安装依赖失败,请检查网络连接。${NC}"
|
|||
|
|
exit 1
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
echo -e "${GREEN}依赖安装成功${NC}"
|
|||
|
|
|
|||
|
|
# 编译项目
|
|||
|
|
echo -e "${BLUE}\n编译项目...${NC}"
|
|||
|
|
go build -o mcp_time_server
|
|||
|
|
if [ $? -ne 0 ]; then
|
|||
|
|
echo -e "${RED}编译失败。${NC}"
|
|||
|
|
exit 1
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
chmod +x mcp_time_server
|
|||
|
|
echo -e "${GREEN}编译成功,生成可执行文件: mcp_time_server${NC}"
|
|||
|
|
|
|||
|
|
# 显示使用说明
|
|||
|
|
echo -e "\n${GREEN}安装完成!${NC}"
|
|||
|
|
echo -e "${BLUE}\n使用说明:${NC}"
|
|||
|
|
echo -e "1. 启动服务器: ./mcp_time_server"
|
|||
|
|
echo -e "2. 服务器启动后,可以通过以下方式测试:"
|
|||
|
|
echo -e " - 健康检查: curl http://localhost:8080/health"
|
|||
|
|
echo -e " - 获取当前时间: curl -X POST http://localhost:8080/mcp/v1/submit -H 'Content-Type: application/json' -d '{\"data\":{},\"type\":\"get_current_time\",\"timestamp\":$(date +%s)}'"
|
|||
|
|
echo -e " - 订阅时间流: 使用浏览器或SSE客户端访问 http://localhost:8080/sse"
|
|||
|
|
echo -e "\n${YELLOW}注意: 服务器默认监听在8080端口。${NC}"
|
|||
|
|
echo -e "\n${GREEN}MCP Time Server安装成功!${NC}"
|