Update entrypoint.sh
Browse files- entrypoint.sh +55 -66
entrypoint.sh
CHANGED
|
@@ -1,82 +1,71 @@
|
|
| 1 |
#!/bin/bash
|
| 2 |
|
| 3 |
-
# 设置错误处理和日志记录
|
| 4 |
-
set -e
|
| 5 |
-
trap 'echo "$(date +"%Y-%m-%d %H:%M:%S") - 错误:脚本执行失败,行号: $LINENO, 命令: $BASH_COMMAND"' ERR
|
| 6 |
-
|
| 7 |
-
# 创建日志目录
|
| 8 |
-
mkdir -p /tmp/mcp_logs
|
| 9 |
-
LOG_FILE="/tmp/mcp_logs/mcpo_$(date +%Y%m%d_%H%M%S).log"
|
| 10 |
-
|
| 11 |
-
# 记录开始时间和环境信息
|
| 12 |
-
echo "===== MCP服务器启动 $(date) =====" | tee -a $LOG_FILE
|
| 13 |
-
echo "主机名: $(hostname)" | tee -a $LOG_FILE
|
| 14 |
-
|
| 15 |
-
# 检查Node.js版本
|
| 16 |
-
if command -v node &> /dev/null; then
|
| 17 |
-
NODE_VERSION=$(node -v)
|
| 18 |
-
echo "Node.js版本: $NODE_VERSION" | tee -a $LOG_FILE
|
| 19 |
-
else
|
| 20 |
-
echo "警告: 未找到Node.js" | tee -a $LOG_FILE
|
| 21 |
-
fi
|
| 22 |
-
|
| 23 |
-
# 检查Python版本
|
| 24 |
-
if command -v python3 &> /dev/null; then
|
| 25 |
-
PYTHON_VERSION=$(python3 --version 2>&1)
|
| 26 |
-
echo "Python版本: $PYTHON_VERSION" | tee -a $LOG_FILE
|
| 27 |
-
else
|
| 28 |
-
echo "警告: 未找到Python3" | tee -a $LOG_FILE
|
| 29 |
-
fi
|
| 30 |
-
|
| 31 |
-
# 检查npm版本
|
| 32 |
-
if command -v npm &> /dev/null; then
|
| 33 |
-
NPM_VERSION=$(npm --version 2>&1)
|
| 34 |
-
echo "npm版本: $NPM_VERSION" | tee -a $LOG_FILE
|
| 35 |
-
else
|
| 36 |
-
echo "警告: 未找到npm" | tee -a $LOG_FILE
|
| 37 |
-
fi
|
| 38 |
-
|
| 39 |
-
# 检查mcpo可执行文件
|
| 40 |
-
if command -v mcpo &> /dev/null; then
|
| 41 |
-
MCPO_VERSION=$(mcpo --version 2>&1 || echo "无法获取版本")
|
| 42 |
-
echo "MCPO版本: $MCPO_VERSION" | tee -a $LOG_FILE
|
| 43 |
-
MCPO_PATH=$(which mcpo)
|
| 44 |
-
echo "MCPO路径: $MCPO_PATH" | tee -a $LOG_FILE
|
| 45 |
-
else
|
| 46 |
-
echo "警告: mcpo命令未找到" | tee -a $LOG_FILE
|
| 47 |
-
fi
|
| 48 |
-
|
| 49 |
-
# 创建最小配置 - 只使用一个服务进行测试
|
| 50 |
-
echo "创建最小配置文件..." | tee -a $LOG_FILE
|
| 51 |
cat <<EOF > /app/config.json
|
| 52 |
{
|
| 53 |
"mcpServers": {
|
| 54 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 55 |
"command": "npx",
|
| 56 |
"args": [
|
| 57 |
"-y",
|
| 58 |
-
"
|
| 59 |
],
|
| 60 |
"env": {
|
| 61 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 62 |
}
|
| 63 |
}
|
| 64 |
}
|
| 65 |
}
|
| 66 |
EOF
|
| 67 |
|
| 68 |
-
|
| 69 |
-
echo "配置文件内容:" | tee -a $LOG_FILE
|
| 70 |
-
cat /app/config.json | tee -a $LOG_FILE
|
| 71 |
-
|
| 72 |
-
# 尝试直接通过npx安装和运行fetch服务(测试依赖项是否正常)
|
| 73 |
-
echo "测试NPX安装..." | tee -a $LOG_FILE
|
| 74 |
-
npx -y @kazuph/mcp-fetch@latest --help > /tmp/mcp_logs/npx_test.log 2>&1 || echo "NPX测试失败,查看 /tmp/mcp_logs/npx_test.log" | tee -a $LOG_FILE
|
| 75 |
-
|
| 76 |
-
# 启动MCPO服务器
|
| 77 |
-
echo "启动MCP服务器..." | tee -a $LOG_FILE
|
| 78 |
-
|
| 79 |
-
# 使用debug模式运行mcpo
|
| 80 |
-
# 输出日志到文件,同时显示在控制台
|
| 81 |
-
echo "执行命令: mcpo --config /app/config.json --log-level debug" | tee -a $LOG_FILE
|
| 82 |
-
mcpo --config /app/config.json --log-level debug 2>&1 | tee -a $LOG_FILE
|
|
|
|
| 1 |
#!/bin/bash
|
| 2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3 |
cat <<EOF > /app/config.json
|
| 4 |
{
|
| 5 |
"mcpServers": {
|
| 6 |
+
"github": {
|
| 7 |
+
"command": "npx",
|
| 8 |
+
"args": [
|
| 9 |
+
"-y",
|
| 10 |
+
"@modelcontextprotocol/server-github"
|
| 11 |
+
],
|
| 12 |
+
"env": {
|
| 13 |
+
"GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_PERSONAL_ACCESS_TOKEN}"
|
| 14 |
+
}
|
| 15 |
+
},
|
| 16 |
+
"filesystem": {
|
| 17 |
+
"command": "npx",
|
| 18 |
+
"args": [
|
| 19 |
+
"-y",
|
| 20 |
+
"@modelcontextprotocol/server-filesystem",
|
| 21 |
+
"/home/mcp"
|
| 22 |
+
]
|
| 23 |
+
},
|
| 24 |
+
"edgeone-pages-mcp-server": {
|
| 25 |
+
"command": "npx",
|
| 26 |
+
"args": ["edgeone-pages-mcp"]
|
| 27 |
+
},
|
| 28 |
+
"mcp-server-firecrawl": {
|
| 29 |
"command": "npx",
|
| 30 |
"args": [
|
| 31 |
"-y",
|
| 32 |
+
"firecrawl-mcp"
|
| 33 |
],
|
| 34 |
"env": {
|
| 35 |
+
"FIRECRAWL_API_KEY": "${FIRECRAWL_API_KEY}"
|
| 36 |
+
}
|
| 37 |
+
},
|
| 38 |
+
"sequential-thinking": {
|
| 39 |
+
"command": "npx",
|
| 40 |
+
"args": [
|
| 41 |
+
"-y",
|
| 42 |
+
"@modelcontextprotocol/server-sequential-thinking"
|
| 43 |
+
]
|
| 44 |
+
},
|
| 45 |
+
"brave-search": {
|
| 46 |
+
"command": "npx",
|
| 47 |
+
"args": [
|
| 48 |
+
"-y",
|
| 49 |
+
"@modelcontextprotocol/server-brave-search"
|
| 50 |
+
],
|
| 51 |
+
"env": {
|
| 52 |
+
"BRAVE_API_KEY": "${BRAVE_API_KEY}"
|
| 53 |
+
}
|
| 54 |
+
},
|
| 55 |
+
"time-mcp": {
|
| 56 |
+
"command": "npx",
|
| 57 |
+
"args": ["-y", "time-mcp"]
|
| 58 |
+
},
|
| 59 |
+
"youtube": {
|
| 60 |
+
"command": "npx",
|
| 61 |
+
"args": ["-y", "youtube-data-mcp-server"],
|
| 62 |
+
"env": {
|
| 63 |
+
"YOUTUBE_API_KEY": "${YOUTUBE_API_KEY}",
|
| 64 |
+
"YOUTUBE_TRANSCRIPT_LANG": "${YOUTUBE_TRANSCRIPT_LANG}"
|
| 65 |
}
|
| 66 |
}
|
| 67 |
}
|
| 68 |
}
|
| 69 |
EOF
|
| 70 |
|
| 71 |
+
exec mcpo --config /app/config.json
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|