Skip to main content

一键同步ModelScope MCP服务器到Chatbox配置的Python工具

Project description

Chatbox ModelScope MCP Sync

PyPI version Python License

一键同步ModelScope MCP服务器到Chatbox配置,支持智能名称选择和跨平台配置路径检测。

🚀 功能特性

  • 一键同步 自动备份原配置文件并更新MCP服务器列表
  • 智能命名 优先使用中文名称,支持多语言回退策略
  • 跨平台 自动检测Windows/macOS/Linux的Chatbox配置路径
  • 灵活配置 支持命令行参数、环境变量和配置文件
  • 安全备份 每次更新前自动创建配置文件备份
  • 增量更新 智能识别新增和更新的服务器,避免重复

📦 安装

通过uvx运行(无需安装,推荐)

使用 uv 可以无需安装直接运行:

# 直接运行(首次会自动下载)
uvx chatbox-modelscope-sync-mcp --token YOUR_API_TOKEN

# 导出配置
uvx chatbox-modelscope-sync-mcp --token YOUR_API_TOKEN --export mcp-servers.json

# 使用环境变量
export MODELSCOPE_API_KEY=your_api_token_here
uvx chatbox-modelscope-sync-mcp

通过pip安装

pip install chatbox-modelscope-sync-mcp

从源码安装

git clone https://github.com/ztxtech/chatbox-modelscope-sync-mcp.git
cd chatbox-modelscope-sync-mcp
pip install -e .

🎯 快速开始

1. 获取ModelScope API Token

  1. 访问 ModelScope官网
  2. 登录后进入个人中心 → API令牌
  3. 创建并复制你的API令牌

2. 运行同步

uvx方式(无需安装,推荐)

# 直接运行
uvx chatbox-modelscope-sync-mcp --token YOUR_API_TOKEN

# 简写命令
uvx chatbox-mcp-sync-mcp -t YOUR_TOKEN

# 指定配置文件路径
uvx chatbox-modelscope-sync-mcp --token YOUR_TOKEN --path /path/to/config.json

命令行方式(已安装)

# 使用命令行参数
chatbox-modelscope-sync --token YOUR_API_TOKEN

# 简写命令
chatbox-mcp-sync -t YOUR_TOKEN

# 指定配置文件路径
chatbox-modelscope-sync --token YOUR_TOKEN --path /path/to/config.json

环境变量方式

# 设置环境变量
export MODELSCOPE_API_KEY=your_api_token_here
export CHATBOX_CONFIG=/path/to/config.json  # 可选

# 运行同步
chatbox-modelscope-sync

支持的环境变量:

环境变量名 说明 示例
MODELSCOPE_API_KEY ModelScope API访问令牌 sk-xxxxxxxxxxxxxxxx
CHATBOX_CONFIG Chatbox配置文件路径 /home/user/.config/xyz.chatboxapp.app/config.json

Windows PowerShell设置:

# 设置环境变量
$env:MODELSCOPE_API_KEY="your_api_token_here"
$env:CHATBOX_CONFIG="C:\Users\YourName\AppData\Roaming\xyz.chatboxapp.app\config.json"

# 永久设置(需要管理员权限)
[Environment]::SetEnvironmentVariable("MODELSCOPE_API_KEY", "your_api_token_here", "User")
[Environment]::SetEnvironmentVariable("CHATBOX_CONFIG", "C:\path\to\config.json", "User")

Python代码方式

from chatbox_modelscope_sync_mcp import ModelScopeMCPSync

# 基本用法
syncer = ModelScopeMCPSync(api_key="your_token")
syncer.sync()

# 高级用法
syncer = ModelScopeMCPSync(
    api_key="your_token",
    config_path="/path/to/config.json",
    api_url="https://custom-api.com/mcp"
)
syncer.sync(backup=True)

⚙️ 配置优先级

配置项按以下优先级加载:

  1. 命令行参数(最高优先级)

    • --token, --path, --url, --export
  2. 环境变量

    • MODELSCOPE_API_KEY - ModelScope API访问令牌
    • CHATBOX_CONFIG - Chatbox配置文件路径
  3. 自动检测(最低优先级)

    • 自动检测Chatbox默认配置路径

优先级示例:

# 命令行参数会覆盖环境变量
export MODELSCOPE_API_KEY="env_token"
chatbox-modelscope-sync --token "cli_token"  # 使用cli_token而不是env_token

# 环境变量会覆盖自动检测
export CHATBOX_CONFIG="/custom/path/config.json"
chatbox-modelscope-sync  # 使用环境变量指定的路径而不是自动检测路径

🖥️ 支持的平台

操作系统 默认配置路径
Windows ~/AppData/Roaming/xyz.chatboxapp.app/config.json
macOS ~/Library/Application Support/xyz.chatboxapp.app/config.json
Linux ~/.config/xyz.chatboxapp.app/config.json

📋 命令行选项

chatbox-modelscope-sync --help

# 输出:
usage: chatbox-modelscope-sync [-h] [--token TOKEN] [--path PATH] [--url URL] [--export EXPORT] [--no-backup] [--version]

Chatbox ModelScope MCP Sync Tool

options:
  -h, --help            显示帮助信息
  -t, --token TOKEN     ModelScope API Token (也可以使用 MODELSCOPE_API_KEY 环境变量)
  -p, --path PATH       Chatbox配置文件路径 (也可以使用 CHATBOX_CONFIG 环境变量)
  --url URL             ModelScope MCP API URL
  --export EXPORT       导出纯MCP JSON配置到指定文件
  --no-backup           不创建配置文件备份
  -v, --version         显示版本信息

🔧 高级用法

导出纯MCP JSON配置

你可以将ModelScope的MCP服务导出为纯JSON格式,用于其他应用或备份:

# 导出到指定文件
chatbox-modelscope-sync --token YOUR_TOKEN --export mcp-servers.json

# 导出到当前目录
chatbox-modelscope-sync --token YOUR_TOKEN --export ./modelscope-mcp.json

# 导出到绝对路径
chatbox-modelscope-sync --token YOUR_TOKEN --export /path/to/mcp-config.json

导出的JSON格式只包含mcpServers字段,符合标准MCP配置规范:

{
  "mcpServers": {
    "server-1": {
      "command": "npx",
      "args": ["-y", "@modelscope/mcp-server"],
      "env": {
        "API_KEY": "your-key"
      }
    },
    "server-2": {
      "url": "https://modelscope.cn/api/mcp/server2"
    }
  }
}

自定义API端点

如果你的ModelScope服务部署在自定义地址:

chatbox-modelscope-sync \
  --token YOUR_TOKEN \
  --url https://your-domain.com/api/v1/mcp/services/operational

批量操作脚本

创建批量更新脚本:

#!/bin/bash
# sync-mcp.sh

TOKENS=("token1" "token2" "token3")
for token in "${TOKENS[@]}"; do
    echo "正在同步 token: ${token:0:8}..."
    chatbox-modelscope-sync --token "$token" --no-backup
    sleep 2
done

定时同步

使用cron定时同步(Linux/macOS):

# 每小时同步一次
0 * * * * /usr/local/bin/chatbox-modelscope-sync --token YOUR_TOKEN

# 每天凌晨3点同步
0 3 * * * /usr/local/bin/chatbox-modelscope-sync --token YOUR_TOKEN

📝 配置示例

更新前配置

{
  "settings": {
    "mcp": {
      "servers": [
        {
          "id": "existing-server",
          "name": "现有服务器",
          "enabled": true,
          "transport": {
            "type": "http",
            "url": "http://localhost:8080"
          }
        }
      ]
    }
  }
}

更新后配置

{
  "settings": {
    "mcp": {
      "servers": [
        {
          "id": "existing-server",
          "name": "现有服务器",
          "enabled": true,
          "transport": {
            "type": "http",
            "url": "http://localhost:8080"
          }
        },
        {
          "id": "a1b2c3d4-e5f6-7890-abcd-1234567890ef",
          "name": "ModelScope中文模型",
          "enabled": true,
          "transport": {
            "type": "http",
            "url": "https://modelscope.cn/api/mcp/server1"
          }
        },
        {
          "id": "b2c3d4e5-f6g7-8901-bcde-2345678901fa",
          "name": "ModelScope English Model",
          "enabled": true,
          "transport": {
            "type": "http",
            "url": "https://modelscope.cn/api/mcp/server2"
          }
        }
      ]
    }
  }
}

🛠️ 故障排除

常见问题

1. API Token无效

错误信息: API调用失败: 401 Unauthorized

解决方案:

  • 检查API Token是否正确
  • 确保Token有访问MCP服务的权限
  • 重新生成Token并重试

2. 配置文件路径错误

错误信息: 加载配置文件失败: [Errno 2] No such file or directory

解决方案:

  • 确认Chatbox已安装并运行过一次
  • 手动指定配置文件路径: --path /path/to/config.json
  • 检查文件权限

3. 权限不足

错误信息: 保存配置文件失败: [Errno 13] Permission denied

解决方案:

  • 以管理员身份运行命令
  • 检查文件和目录权限
  • 使用sudo(Linux/macOS)

4. 网络连接问题

错误信息: API调用失败: Connection timeout

解决方案:

  • 检查网络连接
  • 确认防火墙设置
  • 尝试使用代理

调试模式

# 查看详细日志
chatbox-modelscope-sync --token YOUR_TOKEN --verbose

# 测试API连接
python -c "
from chatbox_modelscope_sync_mcp import ModelScopeMCPSync
syncer = ModelScopeMCPSync(api_key='your_token')
result = syncer.call_modelscope_api()
print('API连接成功' if result else 'API连接失败')
"

🤝 贡献

欢迎提交Issue和Pull Request!

开发环境设置

git clone https://github.com/ztxtech/chatbox-modelscope-sync-mcp.git
cd chatbox-modelscope-sync-mcp
pip install -e ".[dev]"

# 运行测试
python -m pytest tests/

# 代码格式化
black chatbox_modelscope_sync_mcp/
isort chatbox_modelscope_sync_mcp/

📄 许可证

MIT License - 详见 LICENSE 文件

🙋‍♂️ 支持

🔄 更新日志

v0.0.1 (2025-8-10)

  • ✨ 初始版本发布
  • 🎯 支持一键同步ModelScope MCP服务器
  • 🌍 跨平台配置路径自动检测
  • 🧠 智能服务器名称选择
  • 🛡️ 配置文件自动备份
  • 📦 PyPI包发布

Made with ❤️ by ztxtech

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

chatbox_modelscope_sync_mcp-0.0.2.tar.gz (19.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

chatbox_modelscope_sync_mcp-0.0.2-py3-none-any.whl (17.0 kB view details)

Uploaded Python 3

File details

Details for the file chatbox_modelscope_sync_mcp-0.0.2.tar.gz.

File metadata

File hashes

Hashes for chatbox_modelscope_sync_mcp-0.0.2.tar.gz
Algorithm Hash digest
SHA256 9279599222c71fc5a5075f47e56bc52e3c16bd761d725845f3a8c07ef399ce19
MD5 5ad685b466def7277edbb5e8d8802867
BLAKE2b-256 a147a1fd3ccca2f1c14a0d94c7c7b070f521bad4c7d98ac3774112a7ebf0ec7f

See more details on using hashes here.

File details

Details for the file chatbox_modelscope_sync_mcp-0.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for chatbox_modelscope_sync_mcp-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b58e39552129b8259dd0e1558a270993f5623f401d80bd6ba183da406d4e4004
MD5 5a8920f30fa2c5e9a8e16e5d3580ef67
BLAKE2b-256 6715db8718dce0359ab1154278c0fa1c863f313fc5fdfcd312c3965452618067

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page