Coverage for fastblocks/mcp/__main__.py: 0%

21 statements  

« prev     ^ index     » next       coverage.py v7.10.7, created at 2025-10-09 00:47 -0700

1"""FastBlocks MCP server entry point. 

2 

3Run the FastBlocks MCP protocol server: 

4 python -m fastblocks.mcp 

5 

6This enables IDE/AI assistant integration for FastBlocks development. 

7""" 

8 

9import asyncio 

10import logging 

11import sys 

12 

13# Setup logging 

14logging.basicConfig( 

15 level=logging.INFO, 

16 format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", 

17) 

18logger = logging.getLogger(__name__) 

19 

20 

21async def main() -> int: 

22 """Main entry point for FastBlocks MCP server. 

23 

24 Returns: 

25 Exit code (0 for success, 1 for error) 

26 """ 

27 try: 

28 from .server import create_fastblocks_mcp_server 

29 

30 logger.info("Initializing FastBlocks MCP server...") 

31 server = await create_fastblocks_mcp_server() 

32 

33 logger.info("Starting FastBlocks MCP server...") 

34 await server.start() 

35 

36 return 0 

37 

38 except KeyboardInterrupt: 

39 logger.info("Server stopped by user") 

40 return 0 

41 except Exception as e: 

42 logger.error(f"Server error: {e}", exc_info=True) 

43 return 1 

44 

45 

46def run() -> None: 

47 """Synchronous wrapper for async main function.""" 

48 sys.exit(asyncio.run(main())) 

49 

50 

51if __name__ == "__main__": 

52 run()