import logging import sys import asyncio from contextlib import asynccontextmanager from typing import Any from mcp.server import Server from mcp.types import ( INTERNAL_ERROR, INVALID_PARAMS, CallToolResult, GetPromptResult, ListPromptsResult, ListResourcesResult, ListToolsResult, ReadResourceResult, TextContent, TextResourceContents, ) from .config import Config from .prompts import MissingPromptArgumentError, PromptsManager, UnknownPromptError from .server import MiniServer from . import __version__ logger = logging.getLogger(__name__) def _setup_logging(level: str) -> None: logging.basicConfig( level=getattr(logging, level, logging.INFO), format="%(asctime)s %(name)s %(levelname)s %(message)s", stream=sys.stderr, ) def main() -> None: config = Config() server = MiniServer(config) _setup_logging(config.server.log_level) transport = config.server.transport if transport == "stdio": asyncio.run(server.start_stdio()) else: logger.error("Unsupported transport: %s", transport) if __name__ == "__main__": main()