Skip to content

Commit e0006bb

Browse files
committed
fix: Make context log extra field dict
1 parent 4fa9f38 commit e0006bb

File tree

2 files changed

+13
-12
lines changed

2 files changed

+13
-12
lines changed

src/mcp/server/fastmcp/server.py

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1206,15 +1206,15 @@ async def log(
12061206
message: str,
12071207
*,
12081208
logger_name: str | None = None,
1209-
**extra: Any,
1209+
extra: dict[str, Any] | None = None,
12101210
) -> None:
12111211
"""Send a log message to the client.
12121212
12131213
Args:
12141214
level: Log level (debug, info, warning, error)
12151215
message: Log message
12161216
logger_name: Optional logger name
1217-
**extra: Additional structured data to include
1217+
extra: Optional dictionary with additional structured data to include
12181218
"""
12191219

12201220
if extra:
@@ -1248,18 +1248,20 @@ def session(self):
12481248
return self.request_context.session
12491249

12501250
# Convenience methods for common log levels
1251-
async def debug(self, message: str, **extra: Any) -> None:
1251+
async def debug(self, message: str, *, logger_name: str | None = None, extra: dict[str, Any] | None = None) -> None:
12521252
"""Send a debug log message."""
1253-
await self.log("debug", message, **extra)
1253+
await self.log("debug", message, logger_name=logger_name, extra=extra)
12541254

1255-
async def info(self, message: str, **extra: Any) -> None:
1255+
async def info(self, message: str, *, logger_name: str | None = None, extra: dict[str, Any] | None = None) -> None:
12561256
"""Send an info log message."""
1257-
await self.log("info", message, **extra)
1257+
await self.log("info", message, logger_name=logger_name, extra=extra)
12581258

1259-
async def warning(self, message: str, **extra: Any) -> None:
1259+
async def warning(
1260+
self, message: str, *, logger_name: str | None = None, extra: dict[str, Any] | None = None
1261+
) -> None:
12601262
"""Send a warning log message."""
1261-
await self.log("warning", message, **extra)
1263+
await self.log("warning", message, logger_name=logger_name, extra=extra)
12621264

1263-
async def error(self, message: str, **extra: Any) -> None:
1265+
async def error(self, message: str, *, logger_name: str | None = None, extra: dict[str, Any] | None = None) -> None:
12641266
"""Send an error log message."""
1265-
await self.log("error", message, **extra)
1267+
await self.log("error", message, logger_name=logger_name, extra=extra)

tests/client/test_logging_callback.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,7 @@ async def test_tool_with_log_extra(
6060
level=level,
6161
message=message,
6262
logger_name=logger,
63-
extra_string=extra_string,
64-
extra_dict=extra_dict,
63+
extra={"extra_string": extra_string, "extra_dict": extra_dict},
6564
)
6665
return True
6766

0 commit comments

Comments
 (0)