Skip to content

feat!: relax tool result structuredContent type (SEP-2106)#919

Open
DaleSeo wants to merge 1 commit into
mainfrom
fix/tool-result-content-structured-value
Open

feat!: relax tool result structuredContent type (SEP-2106)#919
DaleSeo wants to merge 1 commit into
mainfrom
fix/tool-result-content-structured-value

Conversation

@DaleSeo

@DaleSeo DaleSeo commented Jun 23, 2026

Copy link
Copy Markdown
Member

Motivation and Context

This was discovered while reviewing PR #895. Besides CallToolResult, ToolResultContent should also be typed with its structured content as Option<Value> to accommodate any JSON value.

2025-11-25 2026-07-28
2026-06-23 at 15 42 59 2026-06-23 at 15 41 47

How Has This Been Tested?

Added tests

Breaking Changes

Yes. The public field ToolResultContent.structured_content changes type from Option<JsonObject> to Option<Value>.

The green SemVer Check is a false negative due to known upstream gap: obi1kenobi/cargo-semver-checks#148

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update

Checklist

  • I have read the MCP Documentation
  • My code follows the repository's style guidelines
  • New and existing tests pass locally
  • I have added appropriate error handling
  • I have added or updated documentation as needed

@github-actions github-actions Bot added T-test Testing related changes T-config Configuration file changes T-core Core library changes labels Jun 23, 2026
@DaleSeo DaleSeo self-assigned this Jun 23, 2026
@github-actions github-actions Bot added the T-model Model/data structure changes label Jun 23, 2026
@DaleSeo DaleSeo marked this pull request as ready for review June 23, 2026 19:56
@DaleSeo DaleSeo requested a review from a team as a code owner June 23, 2026 19:56
@DaleSeo DaleSeo changed the title feat!: relax tool result structuredContent type feat!: relax tool result structuredContent type (SEP-2106) Jun 23, 2026
@DaleSeo DaleSeo force-pushed the fix/tool-result-content-structured-value branch from 97d6a3d to 4dcb918 Compare June 25, 2026 23:26

#[tokio::test]
async fn test_tool_result_content_with_primitive_structured_content() -> Result<()> {
let structured = serde_json::json!(42);

@alexhancock alexhancock Jun 26, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Worth one that loops through all the possible primitive types (string, number, boolean, null) and does the same test? This way it would catch if anyone changes it in some way that drops support for something.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

2026-07-28 T-config Configuration file changes T-core Core library changes T-model Model/data structure changes T-test Testing related changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants