fix(fastmcp): handle strings containing numbers correctly

This is a port of https://github.com/jlowin/fastmcp/pull/63 to this repo
- I guess the transition was made before this PR was merged into
fastmcp, so it wasn't included here.

See https://github.com/jlowin/fastmcp/issues/62 for the initial bug
report.
This commit is contained in:
Ben Sully 2025-01-08 17:17:45 +00:00
commit 5abe811337
No known key found for this signature in database

View file

@ -88,7 +88,7 @@ class FuncMetadata(BaseModel):
pre_parsed = json.loads(data[field_name])
except json.JSONDecodeError:
continue # Not JSON - skip
if isinstance(pre_parsed, str):
if isinstance(pre_parsed, (str, int, float)):
# This is likely that the raw value is e.g. `"hello"` which we
# Should really be parsed as '"hello"' in Python - but if we parse
# it as JSON it'll turn into just 'hello'. So we skip it.