import os from dotenv import load_dotenv from mcp.server.fastmcp import FastMCP from helpers import log from tools import ( repo_create_tool, repo_update_tool, repo_delete_tool, issue_list_tool, issue_create_tool, issue_update_tool, pr_open_tool, ) load_dotenv() mcp = FastMCP("Git Pasha Server") # Register all tools mcp.tool()(repo_create_tool) mcp.tool()(repo_update_tool) mcp.tool()(repo_delete_tool) mcp.tool()(issue_list_tool) mcp.tool()(issue_create_tool) mcp.tool()(issue_update_tool) mcp.tool()(pr_open_tool) if __name__ == "__main__": base_url = os.getenv("GITPASHA_BASE_URL", "https://app.gitpasha.com/api/v1") transport_type = os.getenv("MCP_TRANSPORT", "stdio") log.info(f"Starting MCP server | BASE_URL={base_url} | Transport={transport_type}") if transport_type == "sse": # Run SSE with explicit host/port binding import uvicorn host = os.getenv("HOST", "0.0.0.0") port = int(os.getenv("PORT", "8000")) log.info(f"Starting SSE server on {host}:{port}") # Get the SSE app and run with uvicorn app = mcp.sse_app() uvicorn.run(app, host=host, port=port, log_level="info") else: # Run stdio for local development mcp.run(transport="stdio")