一键同步ModelScope MCP服务器到Chatbox配置的Python工具
Project description
Chatbox ModelScope MCP Sync
一键同步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
- 访问 ModelScope官网
- 登录后进入个人中心 → API令牌
- 创建并复制你的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)
⚙️ 配置优先级
配置项按以下优先级加载:
-
命令行参数(最高优先级)
--token,--path,--url,--export
-
环境变量
MODELSCOPE_API_KEY- ModelScope API访问令牌CHATBOX_CONFIG- Chatbox配置文件路径
-
自动检测(最低优先级)
- 自动检测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 文件
🙋♂️ 支持
- 📧 邮箱: ztxtechfoxmail.com
- 🐛 Issue: GitHub Issues
- 💬 讨论: GitHub Discussions
🔄 更新日志
v0.0.1 (2025-8-10)
- ✨ 初始版本发布
- 🎯 支持一键同步ModelScope MCP服务器
- 🌍 跨平台配置路径自动检测
- 🧠 智能服务器名称选择
- 🛡️ 配置文件自动备份
- 📦 PyPI包发布
Made with ❤️ by ztxtech
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file chatbox_modelscope_sync_mcp-0.0.2.tar.gz.
File metadata
- Download URL: chatbox_modelscope_sync_mcp-0.0.2.tar.gz
- Upload date:
- Size: 19.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9279599222c71fc5a5075f47e56bc52e3c16bd761d725845f3a8c07ef399ce19
|
|
| MD5 |
5ad685b466def7277edbb5e8d8802867
|
|
| BLAKE2b-256 |
a147a1fd3ccca2f1c14a0d94c7c7b070f521bad4c7d98ac3774112a7ebf0ec7f
|
File details
Details for the file chatbox_modelscope_sync_mcp-0.0.2-py3-none-any.whl.
File metadata
- Download URL: chatbox_modelscope_sync_mcp-0.0.2-py3-none-any.whl
- Upload date:
- Size: 17.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b58e39552129b8259dd0e1558a270993f5623f401d80bd6ba183da406d4e4004
|
|
| MD5 |
5a8920f30fa2c5e9a8e16e5d3580ef67
|
|
| BLAKE2b-256 |
6715db8718dce0359ab1154278c0fa1c863f313fc5fdfcd312c3965452618067
|