# 🚀 快速发布到 PyPI

## 3步完成发布

### 1️⃣ 激活虚拟环境并安装 twine

```bash
# 进入项目目录
cd /Users/leqin.chen/futurx/mcp/futur-mind-mcp

# 激活虚拟环境
source .venv/bin/activate

# 安装 twine
pip install twine
```

### 2️⃣ 准备 PyPI 凭证

Twine 6 不再支持 `twine login`，推荐使用 **PyPI API Token**：

1. 登录 https://pypi.org/manage/account/token/
2. 点击 "Add API token" → 选择项目或 "Entire account"
3. 复制生成的 token（只会显示一次）

**方式 A: 设置环境变量（推荐）**

```bash
export TWINE_USERNAME="__token__"
export TWINE_PASSWORD="pypi-AgEIcHlwaS5vcmcCJDg5NWY3OTYyLWEwOTEtNGU4MS1iY2E2LTQ0YjhlNzViMWE3NAACFVsxLFsiZnV0dXJtaW5kLW1jcCJdXQACLFsyLFsiNGEyOGIwZjMtZGJiMy00ZmY3LTg2M2ItZjE0OTNhYzQ0NGM2Il1dAAAGIAL-ZEX4ercQmpL89mFUNCseEX7kbgLNZEwcRWYvcJY6"
```

**方式 B: 运行脚本时手动输入**

- 用户名直接回车或输入 `__token__`
- 密码处粘贴完整的 API Token

### 3️⃣ 构建并发布

#### 方式 1: 使用脚本（推荐）
```bash
chmod +x publish_to_pypi.sh
./publish_to_pypi.sh
```

#### 方式 2: 手动发布
```bash
# 确保虚拟环境已激活
source .venv/bin/activate

# 1. 构建包
uv build

# 2. 检查包
python -m twine check dist/*

# 3. 上传
python -m twine upload dist/*
```

## ✅ 验证发布

等待几分钟后访问：
https://pypi.org/project/futurmind-mcp/

## 📦 用户安装

发布成功后，任何人都可以安装：

```bash
pip install futurmind-mcp
```

## ⚠️ 常见问题

### Q: "externally-managed-environment" 错误
**A**: 必须使用虚拟环境！已创建的脚本会自动处理。

```bash
source .venv/bin/activate  # 激活虚拟环境
pip install twine          # 在虚拟环境中安装
```

### Q: "command not found: twine"
**A**: 使用 `python -m twine` 替代，例如：

```bash
source .venv/bin/activate
python -m twine upload dist/*
```

### Q: 如何测试？
**A**: 先在 Test PyPI 测试：

```bash
source .venv/bin/activate
python -m twine upload --repository testpypi dist/*
pip install --index-url https://test.pypi.org/simple/ futurmind-mcp
```

## 📝 更新版本的命令

```bash
# 1. 更新版本号（手动编辑文件）
# pyproject.toml: version = "0.2.0"
# src/futurmind_mcp/__init__.py: __version__ = "0.2.0"

# 2. 重新构建和发布
source .venv/bin/activate
uv build
python -m twine check dist/*
python -m twine upload dist/*
```


