import logging | |
import argparse | |
from mcp.server.fastmcp import FastMCP | |
from pmcp.mcp_server.github_server.github import initialize_github_client | |
# Configure logging | |
logging.basicConfig( | |
level=logging.INFO, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s" | |
) | |
logger = logging.getLogger(__name__) | |
def parse_args(): | |
parser = argparse.ArgumentParser(description="Avvia il Github MCP Server") | |
parser.add_argument("--api-key", type=str, required=True, help="API key per GitHub") | |
return parser.parse_args() | |
def main(): | |
args = parse_args() | |
initialize_github_client(args.api_key) | |
mcp = FastMCP("Github MCP Server") | |
#import here because the client is not initialized yet | |
from pmcp.mcp_server.github_server.tools.tools import register_tools | |
register_tools(mcp) | |
try: | |
logger.info("Starting Github MCP Server in Stdio...") | |
mcp.run() | |
logger.info("Github MCP Server started successfully") | |
except KeyboardInterrupt: | |
logger.info("Shutting down server...") | |
except Exception as e: | |
logger.error(f"Server error: {str(e)}") | |
raise | |
if __name__ == "__main__": | |
main() |