Coverage for src/pip_project_template/cli/serve01.py: 100.00%

27 statements  

« prev     ^ index     » next       coverage.py v7.9.2, created at 2025-08-28 08:53 +1000

1#!/usr/bin/env python3 

2# -*- coding: utf-8 -*- 

3# Timestamp: "2025-08-27 01:15:00 (ywatanabe)" 

4# File: /home/ywatanabe/proj/pip-project-template/src/cli/serve01.py 

5# ---------------------------------------- 

6from __future__ import annotations 

7import os 

8__FILE__ = ( 

9 "./pip-project-template/src/cli/serve01.py" 

10) 

11__DIR__ = os.path.dirname(__FILE__) 

12# ---------------------------------------- 

13"""Serve01 command to start MCP Server 01.""" 

14 

15import argparse 

16 

17 

18def create_parser(): 

19 """Create parser for serve01 command.""" 

20 parser = argparse.ArgumentParser(description="Start MCP Server 01", add_help=False) 

21 parser.add_argument( 

22 "--port", type=int, default=8081, help="Port to serve on (default: 8081)" 

23 ) 

24 parser.add_argument( 

25 "--host", type=str, default="localhost", help="Host to serve on (default: localhost)" 

26 ) 

27 parser.add_argument( 

28 "--transport", 

29 choices=["stdio", "http", "sse"], 

30 default="stdio", 

31 help="Transport protocol (default: stdio)" 

32 ) 

33 return parser 

34 

35 

36def main(args=None): 

37 """Execute serve01 command.""" 

38 parser = create_parser() 

39 parsed = parser.parse_args(args) 

40 

41 from ..mcp_servers.McpServer01 import run_server 

42 

43 print(f"Starting FastMCP Server 01 ({parsed.transport.upper()}) on {parsed.host}:{parsed.port}") 

44 

45 # Use specified transport 

46 if parsed.transport == "stdio": 

47 print("Using STDIO transport") 

48 run_server(transport="stdio") 

49 elif parsed.transport == "http": 

50 print(f"Using HTTP transport at http://{parsed.host}:{parsed.port}/mcp") 

51 run_server(transport="http", host=parsed.host, port=parsed.port) 

52 elif parsed.transport == "sse": 

53 print(f"Using SSE transport at http://{parsed.host}:{parsed.port}") 

54 run_server(transport="sse", host=parsed.host, port=parsed.port) 

55 

56 return 0 

57 

58# EOF