| """ |
| Task: T027 |
| Spec: 010-ai-chatbot/spec.md - Correct MCP Server Runner |
| |
| Script to properly run the MCP server for task management tools. |
| This script starts the MCP server using the correct method for streamable-http transport. |
| """ |
|
|
| import sys |
| import os |
| sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) |
|
|
| from mcp.server.fastmcp import FastMCP |
| from src.mcp_server import mcp |
| import asyncio |
| import argparse |
|
|
|
|
| async def run_mcp_server(): |
| """Run the MCP server with proper streamable-http transport.""" |
| print("Starting MCP Server for task management tools...") |
| print("Using streamable-http transport...") |
|
|
| |
| |
| async with mcp.session_manager.run(): |
| |
| print("MCP Server is running and ready for connections.") |
| print("Tools available:") |
| for tool_name in mcp._tools.keys(): |
| print(f" - {tool_name}") |
|
|
| |
| try: |
| while True: |
| await asyncio.sleep(1) |
| except KeyboardInterrupt: |
| print("\nShutting down MCP server...") |
|
|
|
|
| def main(): |
| """Entry point for running the MCP server.""" |
| parser = argparse.ArgumentParser(description="MCP Server for task management") |
| parser.add_argument("--port", type=int, default=8002, help="Port for MCP server (default: 8002)") |
| args = parser.parse_args() |
|
|
| |
| |
|
|
| try: |
| asyncio.run(run_mcp_server()) |
| except KeyboardInterrupt: |
| print("\nMCP server stopped by user.") |
|
|
|
|
| if __name__ == "__main__": |
| main() |