48 أسطر
1.3 KiB
Python
48 أسطر
1.3 KiB
Python
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")
|