Skip to content

Cli

chatbox_modelscope_sync_mcp.cli

Chatbox ModelScope MCP同步工具 - 命令行接口

该模块提供了命令行界面,用于从ModelScope平台同步MCP服务到Chatbox应用。 支持多种命令行参数配置,包括API密钥、配置文件路径、API地址等。

使用方式: 基本使用: chatbox-modelscope-sync --token YOUR_API_KEY

高级配置:
    chatbox-modelscope-sync --token YOUR_API_KEY --path /custom/config.json --url https://custom-api.com

跳过备份:
    chatbox-modelscope-sync --token YOUR_API_KEY --no-backup

环境变量支持: MODELSCOPE_API_KEY: ModelScope API密钥 CHATBOX_CONFIG: Chatbox配置文件路径

退出状态码: 0: 同步成功 1: 同步失败或用户取消

main()

命令行入口函数

处理命令行参数解析并执行MCP服务同步操作。 提供友好的命令行界面和错误处理。

支持的命令行参数: --token, -t: ModelScope API密钥 --path, -p: Chatbox配置文件路径 --url: ModelScope MCP API地址 --no-backup: 跳过配置文件备份

错误处理: - 捕获KeyboardInterrupt异常(Ctrl+C) - 捕获所有其他异常并显示友好错误信息 - 使用适当的退出状态码

控制台输出: ✅ MCP服务器同步成功! ❌ MCP服务器同步失败 ❌ 错误: [具体错误信息]

Returns:

Type Description

None - 通过sys.exit()返回状态码

Source code in chatbox_modelscope_sync_mcp/cli.py
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
def main():
    """
    命令行入口函数

    处理命令行参数解析并执行MCP服务同步操作。
    提供友好的命令行界面和错误处理。

    支持的命令行参数:
        --token, -t: ModelScope API密钥
        --path, -p: Chatbox配置文件路径
        --url: ModelScope MCP API地址
        --no-backup: 跳过配置文件备份

    错误处理:
        - 捕获KeyboardInterrupt异常(Ctrl+C)
        - 捕获所有其他异常并显示友好错误信息
        - 使用适当的退出状态码

    控制台输出:
        ✅ MCP服务器同步成功!
        ❌ MCP服务器同步失败
        ❌ 错误: [具体错误信息]

    Returns:
        None - 通过sys.exit()返回状态码

    Raises:
        所有异常都会被捕获并处理,不会抛出到外层
    """
    parser = argparse.ArgumentParser(
        description='Chatbox ModelScope MCP Sync Tool',
        prog='chatbox-modelscope-sync'
    )

    parser.add_argument(
        '--token', '-t',
        help='ModelScope API Token (也可以使用 MODELSCOPE_API_KEY 环境变量)'
    )

    parser.add_argument(
        '--path', '-p',
        help='Chatbox配置文件路径 (也可以使用 CHATBOX_CONFIG 环境变量)'
    )

    parser.add_argument(
        '--url',
        help='ModelScope MCP API URL (默认: https://www.modelscope.cn/api/v1/mcp/services/operational)'
    )

    parser.add_argument(
        '--no-backup',
        action='store_true',
        help='不创建配置文件备份'
    )

    parser.add_argument(
        '--export',
        metavar='OUTPUT_PATH',
        help='导出纯MCP JSON格式到指定文件路径'
    )

    args = parser.parse_args()

    try:
        syncer = ModelScopeMCPSync(
            api_key=args.token,
            config_path=args.path,
            api_url=args.url
        )

        if args.export:
            success = syncer.export_mcp_json_to_file(args.export)
            if success:
                print("✅ MCP JSON导出成功!")
            else:
                print("❌ MCP JSON导出失败")
                sys.exit(1)
            return

        success = syncer.sync(backup=not args.no_backup)

        if success:
            print("\n✅ MCP服务器同步成功!")
            print("重启Chatbox应用以应用新配置")
        else:
            print("\n❌ MCP服务器同步失败")
            sys.exit(1)

    except KeyboardInterrupt:
        print("\n\n操作已取消")
        sys.exit(1)
    except Exception as e:
        print(f"\n❌ 错误: {e}")
        sys.exit(1)