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
« prev ^ index » next coverage.py v7.10.7, created at 2025-10-09 00:47 -0700
1"""FastBlocks MCP server entry point.
3Run the FastBlocks MCP protocol server:
4 python -m fastblocks.mcp
6This enables IDE/AI assistant integration for FastBlocks development.
7"""
9import asyncio
10import logging
11import sys
13# Setup logging
14logging.basicConfig(
15 level=logging.INFO,
16 format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
17)
18logger = logging.getLogger(__name__)
21async def main() -> int:
22 """Main entry point for FastBlocks MCP server.
24 Returns:
25 Exit code (0 for success, 1 for error)
26 """
27 try:
28 from .server import create_fastblocks_mcp_server
30 logger.info("Initializing FastBlocks MCP server...")
31 server = await create_fastblocks_mcp_server()
33 logger.info("Starting FastBlocks MCP server...")
34 await server.start()
36 return 0
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
46def run() -> None:
47 """Synchronous wrapper for async main function."""
48 sys.exit(asyncio.run(main()))
51if __name__ == "__main__":
52 run()