privateGPT MCP Server

# config.py import json import logging from mcp.server.sse import SseServerTransport from .transport.stdio.stdio_server_parameters import StdioServerParameters async def load_config(config_path: str, server_name: str) -> StdioServerParameters: """Load the server configuration from a JSON file.""" try: # debug logging.debug(f"Loading config from {config_path}") # Read the configuration file with open(config_path, "r") as config_file: config = json.load(config_file) # Retrieve the server configuration server_config = config.get("mcpServers", {}).get(server_name) if not server_config: error_msg = f"Server '{server_name}' not found in configuration file." logging.error(error_msg) raise ValueError(error_msg) # Construct the server parameters result = StdioServerParameters( command=server_config["command"], args=server_config.get("args", []), env=server_config.get("env"), ) # debug logging.debug( f"Loaded config: command='{result.command}', args={result.args}, env={result.env}" ) # return result return result except FileNotFoundError: # error error_msg = f"Configuration file not found: {config_path}" logging.error(error_msg) raise FileNotFoundError(error_msg) except json.JSONDecodeError as e: # json error error_msg = f"Invalid JSON in configuration file: {e.msg}" logging.error(error_msg) raise json.JSONDecodeError(error_msg, e.doc, e.pos) except ValueError as e: # error logging.error(str(e)) raise