Feature: Issue 881 - Support 'meta' field in MCPToolResult. #1338
+255
−3
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR adds support for the
metafield inMCPToolResult, allowing MCP tools to return metadata alongside their content. The implementation follows the same pattern asstructuredContent, only including the field when it's not None.Changes:
metafield toMCPToolResultwith documentation_handle_tool_resultinmcp_clientto conditionally include meta when presentecho_serverto add test tools that returnCallToolResultwith meta fieldRelated Issues
Closes #881
Documentation PR
No documentation changes needed - the
metafield is already part of the MCP specification.Type of Change
New feature
Testing
All tests pass:
Additional unit tests in
test_mcp_client.pyNew integration tests in
test_mcp_client_meta_with_hooks.pyI ran
hatch run prepare(equivalently ran ruff, mypy, and all tests)Checklist
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.