mirror of
https://github.com/PrefectHQ/fastmcp.git
synced 2026-08-27 15:51:33 +02:00
address PR feedback
This commit is contained in:
parent
80f7487f36
commit
d1eb1812f3
3 changed files with 7 additions and 8 deletions
|
|
@ -205,7 +205,7 @@ class FastMCP(Generic[LifespanResultT]):
|
|||
| None
|
||||
) = None,
|
||||
tags: set[str] | None = None,
|
||||
serializer: Callable[[Any], str] | None = None,
|
||||
tool_serializer: Callable[[Any], str] | None = None,
|
||||
**settings: Any,
|
||||
):
|
||||
self.tags: set[str] = tags or set()
|
||||
|
|
@ -215,7 +215,6 @@ class FastMCP(Generic[LifespanResultT]):
|
|||
seconds=self.settings.cache_expiration_seconds
|
||||
)
|
||||
)
|
||||
self._serializer = serializer
|
||||
|
||||
self._mounted_servers: dict[str, MountedServer] = {}
|
||||
|
||||
|
|
@ -229,7 +228,7 @@ class FastMCP(Generic[LifespanResultT]):
|
|||
)
|
||||
self._tool_manager = ToolManager(
|
||||
duplicate_behavior=self.settings.on_duplicate_tools,
|
||||
serializer=self._serializer,
|
||||
serializer=tool_serializer,
|
||||
)
|
||||
self._resource_manager = ResourceManager(
|
||||
duplicate_behavior=self.settings.on_duplicate_resources
|
||||
|
|
|
|||
|
|
@ -125,7 +125,7 @@ class Tool(BaseModel):
|
|||
arguments_to_validate=arguments,
|
||||
arguments_to_pass_directly=pass_args,
|
||||
)
|
||||
return _convert_to_content(result, _serializer=self.serializer)
|
||||
return _convert_to_content(result, serializer=self.serializer)
|
||||
except Exception as e:
|
||||
raise ToolError(f"Error executing tool {self.name}: {e}") from e
|
||||
|
||||
|
|
@ -146,8 +146,8 @@ class Tool(BaseModel):
|
|||
|
||||
def _convert_to_content(
|
||||
result: Any,
|
||||
serializer: Callable[[Any], str] | None = None,
|
||||
_process_as_single_item: bool = False,
|
||||
_serializer: Callable[[Any], str] | None = None,
|
||||
) -> list[TextContent | ImageContent | EmbeddedResource]:
|
||||
"""Convert a result to a sequence of content objects."""
|
||||
if result is None:
|
||||
|
|
@ -182,8 +182,8 @@ def _convert_to_content(
|
|||
return other_content + mcp_types
|
||||
|
||||
if not isinstance(result, str):
|
||||
if _serializer is not None:
|
||||
result = _serializer(result)
|
||||
if serializer is not None:
|
||||
result = serializer(result)
|
||||
else:
|
||||
result = pydantic_core.to_json(result, fallback=str, indent=2).decode()
|
||||
|
||||
|
|
|
|||
|
|
@ -401,7 +401,7 @@ class TestCallTools:
|
|||
return json.dumps(data)
|
||||
|
||||
# Instantiate FastMCP with the custom serializer
|
||||
mcp = FastMCP(serializer=custom_serializer)
|
||||
mcp = FastMCP(tool_serializer=custom_serializer)
|
||||
manager = mcp._tool_manager
|
||||
|
||||
def get_data() -> dict:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue