63 lines
2.0 KiB
Python
63 lines
2.0 KiB
Python
|
#!/usr/bin/env python
|
|||
|
# -*- coding: utf-8 -*-
|
|||
|
"""
|
|||
|
FLUX风格塑形MCP服务器启动脚本
|
|||
|
--------------------------
|
|||
|
启动带有FLUX风格塑形功能的MCP服务器
|
|||
|
"""
|
|||
|
|
|||
|
import logging
|
|||
|
import argparse
|
|||
|
import sys
|
|||
|
import asyncio
|
|||
|
|
|||
|
# 设置日志
|
|||
|
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
|
|||
|
logger = logging.getLogger(__name__)
|
|||
|
|
|||
|
# 导入MCP服务器
|
|||
|
from mcp_server import MCPServer
|
|||
|
from flux_style_resource import register_flux_resources
|
|||
|
|
|||
|
async def main_async():
|
|||
|
"""异步主函数"""
|
|||
|
# 解析命令行参数
|
|||
|
parser = argparse.ArgumentParser(description='启动带有FLUX风格塑形功能的MCP服务器')
|
|||
|
parser.add_argument('--host', type=str, default='127.0.0.1', help='服务器监听地址')
|
|||
|
parser.add_argument('--port', type=int, default=8189, help='服务器监听端口')
|
|||
|
parser.add_argument('--name', type=str, default='FLUX-MCP', help='服务器名称')
|
|||
|
args = parser.parse_args()
|
|||
|
|
|||
|
try:
|
|||
|
# 创建MCP服务器实例
|
|||
|
logger.info(f"正在初始化MCP服务器: {args.name}...")
|
|||
|
server = MCPServer(server_name=args.name)
|
|||
|
|
|||
|
# 注册FLUX风格塑形资源和工具
|
|||
|
logger.info("正在注册FLUX风格塑形资源...")
|
|||
|
register_flux_resources(server)
|
|||
|
|
|||
|
# 启动服务器
|
|||
|
logger.info(f"正在启动MCP服务器,监听地址: {args.host}:{args.port}")
|
|||
|
await server.start(host=args.host, port=args.port)
|
|||
|
except KeyboardInterrupt:
|
|||
|
logger.info("收到中断信号,服务器关闭")
|
|||
|
except Exception as e:
|
|||
|
logger.error(f"服务器启动失败: {e}")
|
|||
|
return 1
|
|||
|
|
|||
|
return 0
|
|||
|
|
|||
|
def main():
|
|||
|
"""主函数"""
|
|||
|
try:
|
|||
|
return asyncio.run(main_async())
|
|||
|
except KeyboardInterrupt:
|
|||
|
logger.info("收到中断信号,服务器关闭")
|
|||
|
return 0
|
|||
|
except Exception as e:
|
|||
|
logger.error(f"服务器运行出错: {e}")
|
|||
|
return 1
|
|||
|
|
|||
|
if __name__ == "__main__":
|
|||
|
sys.exit(main())
|