Skip to content

logging

Logging utilities for MCPServer.

get_logger

get_logger(name: str) -> Logger

Get a logger nested under MCP namespace.

Parameters:

Name Type Description Default
name str

The name of the logger.

required

Returns:

Type Description
Logger

A configured logger instance.

Source code in src/mcp/server/mcpserver/utilities/logging.py
 7
 8
 9
10
11
12
13
14
15
16
def get_logger(name: str) -> logging.Logger:
    """Get a logger nested under MCP namespace.

    Args:
        name: The name of the logger.

    Returns:
        A configured logger instance.
    """
    return logging.getLogger(name)

configure_logging

configure_logging(
    level: Literal[
        "DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"
    ] = "INFO",
) -> None

Configure logging for MCP.

Parameters:

Name Type Description Default
level Literal['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL']

The log level to use.

'INFO'
Source code in src/mcp/server/mcpserver/utilities/logging.py
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
def configure_logging(
    level: Literal["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"] = "INFO",
) -> None:
    """Configure logging for MCP.

    Args:
        level: The log level to use.
    """
    handlers: list[logging.Handler] = []
    try:
        from rich.console import Console
        from rich.logging import RichHandler

        handlers.append(RichHandler(console=Console(stderr=True), rich_tracebacks=True))
    except ImportError:  # pragma: no cover
        pass

    if not handlers:  # pragma: no cover
        handlers.append(logging.StreamHandler())

    logging.basicConfig(level=level, format="%(message)s", handlers=handlers)