Files
funstat-mcp/core/setup.sh
2025-11-01 21:58:03 +08:00

244 lines
5.8 KiB
Bash
Executable File
Raw Permalink 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
#
# Funstat MCP 自动部署脚本
# 用途:帮助新用户快速部署和配置 Funstat MCP 工具
#
set -e # 遇到错误立即退出
echo "=========================================="
echo "🚀 Funstat MCP 工具 - 自动部署向导"
echo "=========================================="
echo ""
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# 检查 Python
echo "📋 检查前置要求..."
echo ""
if ! command -v python3 &> /dev/null; then
echo -e "${RED}❌ 未找到 Python 3${NC}"
echo "请先安装 Python 3.10 或更高版本"
echo "访问https://www.python.org/downloads/"
exit 1
fi
PYTHON_VERSION=$(python3 --version | cut -d' ' -f2)
echo -e "${GREEN}✅ Python 版本: $PYTHON_VERSION${NC}"
# 检查 pip
if ! command -v pip3 &> /dev/null; then
echo -e "${RED}❌ 未找到 pip3${NC}"
exit 1
fi
echo -e "${GREEN}✅ pip3 已安装${NC}"
echo ""
# 安装依赖
echo "=========================================="
echo "📦 安装 Python 依赖包"
echo "=========================================="
echo ""
if [ ! -f "requirements.txt" ]; then
echo -e "${RED}❌ 未找到 requirements.txt${NC}"
echo "请确保在 funstat_mcp 目录中运行此脚本"
exit 1
fi
echo "正在安装依赖..."
pip3 install -r requirements.txt --quiet
if [ $? -eq 0 ]; then
echo -e "${GREEN}✅ 依赖安装成功${NC}"
else
echo -e "${RED}❌ 依赖安装失败${NC}"
exit 1
fi
echo ""
# 配置 API 凭证
echo "=========================================="
echo "🔑 配置 Telegram API 凭证"
echo "=========================================="
echo ""
echo -e "${YELLOW}重要:每个用户需要申请自己的 API 凭证${NC}"
echo ""
echo "步骤:"
echo "1. 访问https://my.telegram.org/apps"
echo "2. 登录你的 Telegram 账号"
echo "3. 创建新应用(如果还没有)"
echo "4. 获取 API ID 和 API Hash"
echo ""
read -p "你已经获取了 API 凭证吗?(y/n): " has_credentials
if [ "$has_credentials" != "y" ]; then
echo ""
echo "请先获取 API 凭证,然后重新运行此脚本"
echo "运行命令:./setup.sh"
exit 0
fi
echo ""
read -p "请输入你的 API ID: " api_id
read -p "请输入你的 API Hash: " api_hash
# 验证输入
if [ -z "$api_id" ] || [ -z "$api_hash" ]; then
echo -e "${RED}❌ API 凭证不能为空${NC}"
exit 1
fi
# 创建 .env 文件
echo ""
echo "正在创建配置文件..."
cat > .env << EOF
# Telegram API 凭证
# 请妥善保管,不要分享给他人
TELEGRAM_API_ID=$api_id
TELEGRAM_API_HASH=$api_hash
EOF
chmod 600 .env
echo -e "${GREEN}✅ API 凭证已保存到 .env 文件${NC}"
echo ""
# 更新 .gitignore
if [ ! -f ".gitignore" ]; then
cat > .gitignore << EOF
.env
*.session
*.session-journal
__pycache__/
*.pyc
.DS_Store
EOF
echo -e "${GREEN}✅ 创建了 .gitignore 文件${NC}"
fi
echo ""
# 创建 Session
echo "=========================================="
echo "📱 创建 Telegram Session"
echo "=========================================="
echo ""
echo "现在需要登录你的 Telegram 账号来创建 session 文件"
echo -e "${YELLOW}注意:验证码会发送到你的 Telegram 应用${NC}"
echo ""
read -p "准备好了吗?按 Enter 继续..."
# 检查是否存在 create_session_safe.py
if [ -f "../create_session_safe.py" ]; then
python3 ../create_session_safe.py
elif [ -f "create_session_safe.py" ]; then
python3 create_session_safe.py
else
echo -e "${RED}❌ 未找到 create_session_safe.py${NC}"
echo "请确保项目文件完整"
exit 1
fi
echo ""
# 检查 session 是否创建成功
if [ -f ~/telegram_sessions/funstat_bot.session ]; then
echo -e "${GREEN}✅ Session 创建成功${NC}"
else
echo -e "${RED}❌ Session 创建失败${NC}"
echo "请检查上面的错误信息"
exit 1
fi
echo ""
# 测试
echo "=========================================="
echo "🧪 测试 MCP 服务器"
echo "=========================================="
echo ""
if [ -f "test_server.py" ]; then
echo "正在测试连接..."
python3 test_server.py
if [ $? -eq 0 ]; then
echo ""
echo -e "${GREEN}✅ 测试通过!${NC}"
else
echo ""
echo -e "${YELLOW}⚠️ 测试遇到问题,但可能不影响使用${NC}"
fi
else
echo -e "${YELLOW}⚠️ 未找到测试脚本,跳过测试${NC}"
fi
echo ""
# 配置 Claude Code
echo "=========================================="
echo "⚙️ 配置 Claude Code"
echo "=========================================="
echo ""
CURRENT_DIR=$(pwd)
echo "请将以下配置添加到 Claude Code 配置文件:"
echo ""
echo -e "${YELLOW}配置文件位置:${NC}"
echo " macOS: ~/Library/Application Support/Claude/claude_desktop_config.json"
echo " Linux: ~/.config/claude-code/config.json"
echo ""
echo -e "${YELLOW}添加以下内容:${NC}"
echo ""
echo '{
"mcpServers": {
"funstat": {
"command": "python3",
"args": [
"'$CURRENT_DIR'/server.py"
]
}
}
}'
echo ""
read -p "按 Enter 继续..."
# 完成
echo ""
echo "=========================================="
echo "🎉 部署完成!"
echo "=========================================="
echo ""
echo -e "${GREEN}下一步:${NC}"
echo ""
echo "1. 配置 Claude Code复制上面的配置"
echo "2. 完全退出并重启 Claude Code"
echo "3. 在 Claude Code 中测试:"
echo " \"帮我搜索 Python 学习群组\""
echo ""
echo -e "${YELLOW}安全提醒:${NC}"
echo "• .env 文件包含你的 API 凭证,不要分享给他人"
echo "• ~/telegram_sessions/ 目录包含 session不要提交到 Git"
echo "• 建议定期备份 session 文件"
echo ""
echo -e "${GREEN}文档:${NC}"
echo "• 快速开始QUICK_START_GUIDE.md"
echo "• Session 管理SESSION_MANAGEMENT.md"
echo "• 完整文档README.md"
echo ""
echo "🎊 享受使用 Funstat MCP 工具!"
echo ""