from services.sql_service import SqlService from mcp.server.fastmcp import FastMCP from create_logger import logger # 创建票务MCP服务器 def create_ticket_mcp_server(): # 创建FastMCP实例 ticket_mcp = FastMCP(name="TicketTools", instructions="票务查询工具,基于 train_tickets, flight_tickets, concert_tickets 表。只支持查询。", log_level="ERROR", host="127.0.0.1", port=8001) # 实例化票务服务对象 service = SqlService("票务查询") @ticket_mcp.tool( name="query_tickets", description="查询票务数据,输入 SQL,如 'SELECT * FROM train_tickets WHERE departure_city = \"北京\" AND arrival_city = \"上海\"'" ) def query_tickets(sql: str) -> str: logger.info(f"执行票务查询: {sql}") return service.execute_query(sql) # 打印服务器信息 logger.info("=== 票务MCP服务器信息 ===") logger.info(f"名称: {ticket_mcp.name}") logger.info(f"描述: {ticket_mcp.instructions}") # 运行服务器 try: print("服务器已启动,请访问 http://127.0.0.1:8001/mcp") ticket_mcp.run(transport="streamable-http") # 使用 streamable-http 传输方式 except Exception as e: print(f"服务器启动失败: {e}") if __name__ == "__main__": create_ticket_mcp_server()