import os, sys import argparse from dotenv import load_dotenv load_dotenv() from logging_utils import get_logger logger = get_logger(name = __name__) try: from mcp.server.fastmcp import FastMCP from registry import get_tool_functions except ImportError as e: logger.error("Got Error when Importing Packages: \n%s", e) sys.exit(1) except Exception as e: logger.error("Got UnExcepted Error when Importing Packages: \n%s", e) sys.exit(1) # ------------------------- # Initiating FastMCP server # ------------------------- mcp = FastMCP("multitools-server") # Auto register all tools for name, func in get_tool_functions().items(): mcp.tool(name)(func) if __name__ == "__main__": # Argument parser to handle CLI args parser = argparse.ArgumentParser() parser.add_argument("--transport", type= str, default = "stdio", help= "Which transport type do you want to run mcp server?. Controlled by --transport cli arg OR TRANSPORT env. If didn't provide either of those default to stdio.") args = parser.parse_args() transport = os.environ.get("TRANSPORT") or args.transport logger.info(f"multitools-server is started via {transport} transport") mcp.run(transport = transport)