# -*- coding: utf-8 -*-
"""CLI entry point for TF Tools MCP Server"""
import sys

import click

from .server import app
from .transports.stdio import run_stdio
from .transports.http import run_http


@click.group()
@click.version_option(version="0.1.0")
def cli():
    """TF Tools MCP Server - 图像生成与理解工具集

    支持两种传输模式：
    - stdio (默认): 标准输入输出通信
    - http: HTTP REST API 服务
    """
    pass


@cli.command()
@click.option("--port", default=8000, help="监听端口", type=int, show_default=True)
@click.option("--host", default="0.0.0.0", help="监听地址", show_default=True)
def serve(port: int, host: str):
    """启动 HTTP 服务器

    示例:
        tf-tools-mcp serve --port 8000
        tf-tools-mcp serve --host 127.0.0.1 --port 9000
    """
    click.echo(f"启动 HTTP 服务器，监听 {host}:{port}")
    run_http(app, host=host, port=port)


def main():
    """
    主入口函数

    行为：
    - 无参数: 运行 stdio 模式（默认）
    - 有参数: 解析为 CLI 命令
    """
    if len(sys.argv) == 1:
        # No arguments, run stdio mode by default
        run_stdio(app)
    else:
        # Parse CLI commands
        cli()


if __name__ == "__main__":
    main()
