Files
funstat-mcp/docs/DEPLOYMENT_FOR_OTHERS.md
2025-11-01 21:58:03 +08:00

11 KiB
Raw Permalink Blame History

为其他用户部署 Funstat MCP 工具

📝 概述

这个文档说明如何让其他人(你的团队成员、朋友等)在他们自己的电脑上使用 Funstat MCP 工具。


🎯 三种部署方案

方案 1完全独立部署推荐

适用场景

  • 每个人有自己的电脑
  • 每个人有自己的 Telegram 账号
  • 需要各自独立使用

优势

  • 完全独立,互不影响
  • 每人有自己的积分和配额
  • 安全性最高
  • 可以使用不同的 Telegram 账号

缺点

  • 每人需要申请自己的 API 凭证
  • 每人需要自己配置

方案 2共享 Session不推荐⚠️

适用场景

  • 临时测试
  • 演示使用

优势

  • 部署快速

缺点

  • 安全风险:所有人使用同一个 Telegram 账号
  • 并发问题:可能导致 session 冲突
  • 配额共享:积分被所有人共用
  • 不推荐用于生产环境

方案 3中心化 API 服务(未来扩展)

适用场景

  • 大规模团队使用
  • 需要统一管理

架构

多个用户 → 中心 API 服务器 → MCP Server → @openaiw_bot

说明:这需要额外开发,当前版本不支持。


🚀 方案 1完全独立部署指南

前置要求

每个用户需要:

  • macOS / Linux / Windows带 WSL
  • Python 3.10+
  • Claude Code 已安装
  • 一个 Telegram 账号(可以是新注册的)

步骤 1分享项目文件

方法 AGitHub推荐

如果你的项目在 GitHub

# 其他用户克隆仓库
git clone https://github.com/your-username/funstat-mcp.git
cd funstat-mcp

方法 B直接分享文件

打包项目文件夹:

# 在你的电脑上
cd /Users/lucas/chat--1003255561049
tar -czf funstat-mcp.tar.gz \
    funstat_mcp/ \
    create_session_safe.py \
    mermaid_diagrams.md \
    *.md

# 发送 funstat-mcp.tar.gz 给其他用户

其他用户解压:

tar -xzf funstat-mcp.tar.gz
cd funstat_mcp

步骤 2申请 Telegram API 凭证

重要:每个用户需要申请自己的 API 凭证!

  1. 访问:https://my.telegram.org/apps
  2. 登录他们自己的 Telegram 账号
  3. 创建新应用
  4. 获取 api_idapi_hash

步骤 3配置 API 凭证

编辑 server.pycreate_session_safe.py,替换 API 凭证:

# server.py 和 create_session_safe.py 中
API_ID = 你的_api_id      # 替换这里
API_HASH = "你的_api_hash"  # 替换这里

更好的方法:使用环境变量(推荐)

创建 .env 文件:

# .env
TELEGRAM_API_ID=你的_api_id
TELEGRAM_API_HASH=你的_api_hash

然后修改代码读取环境变量:

import os
from dotenv import load_dotenv

load_dotenv()

API_ID = int(os.getenv('TELEGRAM_API_ID'))
API_HASH = os.getenv('TELEGRAM_API_HASH')

步骤 4安装依赖

cd funstat_mcp
pip3 install -r requirements.txt

# 如果使用 .env
pip3 install python-dotenv

步骤 5创建 Session 文件

cd ..
python3 create_session_safe.py

按照提示:

  1. 输入手机号
  2. 输入验证码
  3. 如果有两步验证,输入密码

步骤 6配置 Claude Code

编辑 Claude Code 配置文件:

macOS:

nano ~/Library/Application\ Support/Claude/claude_desktop_config.json

Linux:

nano ~/.config/claude-code/config.json

添加配置(注意修改路径

{
  "mcpServers": {
    "funstat": {
      "command": "python3",
      "args": [
        "/完整路径/到/funstat_mcp/server.py"
      ]
    }
  }
}

步骤 7测试

cd funstat_mcp
python3 test_server.py

应该看到:

✅ 登录成功
✅ 已连接到: KT超级数据
✅ 当前账号: @你的用户名

步骤 8重启 Claude Code 并使用

完全退出并重启 Claude Code然后测试

你: "帮我搜索 Python 学习群组"

🔐 安全配置指南

敏感信息管理

不要在代码中硬编码 API 凭证!

方法 1使用 .env 文件(推荐)

# .env
TELEGRAM_API_ID=你的api_id
TELEGRAM_API_HASH=你的api_hash
# server.py
import os
from dotenv import load_dotenv

load_dotenv()

API_ID = int(os.getenv('TELEGRAM_API_ID'))
API_HASH = os.getenv('TELEGRAM_API_HASH')

记得添加到 .gitignore

echo ".env" >> .gitignore
echo "*.session" >> .gitignore

方法 2使用配置文件

创建 config.json(不提交到 Git

{
  "api_id": 你的_api_id,
  "api_hash": "你的_api_hash"
}
# server.py
import json

with open('config.json') as f:
    config = json.load(f)

API_ID = config['api_id']
API_HASH = config['api_hash']

👥 多用户部署示例

场景:团队 3 人使用

用户 A(你):

  • API ID: 24660516
  • Session: ~/telegram_sessions/funstat_bot.session
  • 账号: @xiaobai_80

用户 B(同事):

  • API ID: 12345678他自己申请的
  • Session: ~/telegram_sessions/funstat_bot.session
  • 账号: @colleague_account

用户 C(朋友):

  • API ID: 87654321他自己申请的
  • Session: ~/telegram_sessions/funstat_bot.session
  • 账号: @friend_account

每个人完全独立,互不影响


📦 创建分发包

自动化部署脚本

创建一个 setup.sh 脚本:

#!/bin/bash
#
# Funstat MCP 自动部署脚本
#

echo "=================================="
echo "Funstat MCP 工具部署向导"
echo "=================================="
echo ""

# 检查 Python
if ! command -v python3 &> /dev/null; then
    echo "❌ 未找到 Python 3"
    echo "请先安装 Python 3.10 或更高版本"
    exit 1
fi

echo "✅ Python 版本: $(python3 --version)"
echo ""

# 安装依赖
echo "📦 安装依赖..."
pip3 install -r requirements.txt
echo ""

# 检查 API 凭证
echo "=================================="
echo "配置 Telegram API 凭证"
echo "=================================="
echo ""
echo "请访问 https://my.telegram.org/apps"
echo "获取你的 API ID 和 API Hash"
echo ""

read -p "请输入你的 API ID: " api_id
read -p "请输入你的 API Hash: " api_hash

# 创建 .env 文件
cat > .env << EOF
TELEGRAM_API_ID=$api_id
TELEGRAM_API_HASH=$api_hash
EOF

echo "✅ API 凭证已保存到 .env 文件"
echo ""

# 创建 session
echo "=================================="
echo "创建 Telegram Session"
echo "=================================="
echo ""
echo "现在将引导你登录 Telegram 账号..."
echo ""

python3 create_session_safe.py

echo ""
echo "=================================="
echo "✅ 部署完成!"
echo "=================================="
echo ""
echo "下一步:"
echo "1. 配置 Claude Code参考文档"
echo "2. 重启 Claude Code"
echo "3. 测试: python3 test_server.py"
echo ""

使用:

chmod +x setup.sh
./setup.sh

🌐 Web 界面部署(高级)

如果需要提供 Web 界面供多人使用,可以创建 API 服务:

架构

多个用户浏览器
    ↓
Web 界面 (FastAPI/Flask)
    ↓
认证层 (JWT)
    ↓
MCP Server Pool
    ↓
@openaiw_bot

示例代码框架

# api_server.py
from fastapi import FastAPI, Depends, HTTPException
from fastapi.security import HTTPBearer
from server import FunstatMCPServer

app = FastAPI()
security = HTTPBearer()

# 用户认证(简化版本)
async def verify_token(credentials = Depends(security)):
    # 实现你的认证逻辑
    if credentials.credentials != "你的密钥":
        raise HTTPException(status_code=401)
    return credentials

@app.post("/search")
async def search(
    query: str,
    credentials = Depends(verify_token)
):
    server = FunstatMCPServer()
    await server.initialize()
    result = await server.call_tool("funstat_search", {"query": query})
    await server.client.disconnect()
    return {"result": result}

注意:这需要额外的开发和安全配置。


🔒 安全检查清单

在分享给其他人之前,确保:

  • 移除所有个人 API 凭证
  • 移除所有 session 文件
  • 添加 .gitignore
    .env
    config.json
    *.session
    *.session-journal
    __pycache__/
    
  • 提供清晰的文档
  • 说明数据隐私政策
  • 说明使用限制

📄 提供给用户的文档模板

创建一个 README_FOR_USERS.md

# Funstat MCP 工具 - 用户指南

## 快速开始

1. 申请 Telegram API 凭证
   访问https://my.telegram.org/apps

2. 安装依赖
   ```bash
   pip3 install -r requirements.txt
  1. 配置 API 凭证 编辑 server.py 替换 API_ID 和 API_HASH

  2. 创建 Session

    python3 create_session_safe.py
    
  3. 配置 Claude Code 添加配置到 Claude Code 配置文件

  4. 测试

    python3 test_server.py
    

支持

如有问题,请联系:[你的联系方式]


---

## 🎯 最佳实践总结

### 推荐做法 ✅

1. **每个用户独立部署**
   - 各自申请 API 凭证
   - 各自创建 session
   - 各自配置 Claude Code

2. **使用环境变量**
   - 不在代码中硬编码凭证
   - 使用 .env 文件
   - 添加到 .gitignore

3. **提供自动化脚本**
   - setup.sh 一键部署
   - 详细的使用文档
   - 故障排除指南

### 避免做法 ❌

1. **不要共享 session 文件**
   - 安全风险
   - 并发冲突
   - 积分混乱

2. **不要在 Git 中提交敏感信息**
   - API 凭证
   - Session 文件
   - 配置文件

3. **不要使用同一个 API 凭证**
   - 可能违反 Telegram ToS
   - 配额限制问题

---

## 💡 常见问题

### Q: 多个用户会互相影响吗?

A: 不会。只要每个用户:
- 使用自己的 API 凭证
- 创建自己的 session
- 在自己的电脑上运行

就完全独立,互不影响。

### Q: 需要购买服务器吗?

A: 不需要。每个用户在自己的电脑上运行 MCP 服务器即可。

### Q: 可以共享一个 Telegram 账号吗?

A: 技术上可以,但**强烈不推荐**
- 安全风险
- Session 冲突
- 积分共享问题

### Q: 如何限制使用次数?

A: 可以在 MCP 服务器中添加使用计数:

```python
# server.py
class FunstatMCPServer:
    def __init__(self):
        self.usage_count = 0
        self.usage_limit = 100  # 每天限制

    async def call_tool(self, name, arguments):
        if self.usage_count >= self.usage_limit:
            raise Exception("今日使用次数已达上限")

        self.usage_count += 1
        # ... 原有逻辑

📞 支持和帮助

如果其他用户在部署时遇到问题:

  1. 查看文档:QUICK_START_GUIDE.md
  2. 运行诊断:python3 test_server.py
  3. 检查 session~/telegram_sessions/check_session.sh
  4. 联系你获取支持

部署给其他用户?完全可以!

只要每个人按照这个指南独立部署,就可以安全、稳定地使用 Funstat MCP 工具。