Skip to content

Commit 31ff6ac

Browse files
authored
Setup logging middleware (#41)
* Add LoggingMiddleware. * Cleanup. * Only enable payload logging in debug mode.
1 parent fc21801 commit 31ff6ac

1 file changed

Lines changed: 18 additions & 0 deletions

File tree

aws_mcp_proxy/server.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
determine_service_name,
3535
)
3636
from fastmcp.server.middleware.error_handling import RetryMiddleware
37+
from fastmcp.server.middleware.logging import LoggingMiddleware
3738
from fastmcp.server.server import FastMCP
3839
from typing import Any
3940

@@ -65,6 +66,7 @@ async def setup_mcp_mode(local_mcp: FastMCP, args) -> None:
6566

6667
# Create proxy with the transport
6768
proxy = FastMCP.as_proxy(transport)
69+
add_logging_middleware(proxy, args.log_level)
6870
add_tool_filtering_middleware(proxy, args.read_only)
6971

7072
if args.retries:
@@ -99,6 +101,22 @@ def add_retry_middleware(mcp: FastMCP, retries: int) -> None:
99101
mcp.add_middleware(RetryMiddleware(retries))
100102

101103

104+
def add_logging_middleware(mcp: FastMCP, log_level: int) -> None:
105+
"""Add logging middleware."""
106+
if log_level != 'DEBUG':
107+
return
108+
middleware_logger = logging.getLogger('aws-mcp-proxy-middleware-logger')
109+
middleware_logger.setLevel(log_level)
110+
mcp.add_middleware(
111+
LoggingMiddleware(
112+
logger=middleware_logger,
113+
log_level=middleware_logger.level,
114+
include_payloads=True,
115+
include_payload_length=True,
116+
)
117+
)
118+
119+
102120
def parse_args():
103121
"""Parse command line arguments."""
104122
parser = argparse.ArgumentParser(

0 commit comments

Comments
 (0)