From 0a4e8d4e17a51772f564c6e804e589061d4f7636 Mon Sep 17 00:00:00 2001 From: Giuseppe Coviello Date: Thu, 10 Jul 2025 17:36:45 -0400 Subject: [PATCH] Avoiding to parse string arguments containing valid JSON if the argument annotation is str (#1113) --- src/mcp/server/fastmcp/utilities/func_metadata.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mcp/server/fastmcp/utilities/func_metadata.py b/src/mcp/server/fastmcp/utilities/func_metadata.py index a8f9652d..3c9506fb 100644 --- a/src/mcp/server/fastmcp/utilities/func_metadata.py +++ b/src/mcp/server/fastmcp/utilities/func_metadata.py @@ -130,7 +130,7 @@ class FuncMetadata(BaseModel): for field_name in self.arg_model.model_fields.keys(): if field_name not in data.keys(): continue - if isinstance(data[field_name], str): + if isinstance(data[field_name], str) and self.arg_model.model_fields[field_name].annotation is not str: try: pre_parsed = json.loads(data[field_name]) except json.JSONDecodeError: