Description

When converting an instance of McpSchema.TextContent to JSON using Jackson's ObjectMapper, the resulting JSON contains a duplicate "type" field. This is incorrect and could lead to parsing issues or unexpected behavior in systems consuming this JSON.

Steps to Reproduce

  1. Create an instance of McpSchema.TextContent
  2. Serialize it to JSON using Jackson's ObjectMapper
  3. Observe the output contains a duplicate "type" field
@Test
void testContent() throws Exception {
  McpSchema.TextContent test = new McpSchema.TextContent("XXX");
  String value = new ObjectMapper().writeValueAsString(test);
  assertEquals(
      """
      {"type":"text","type":"text","text":"XXX"}""",
      value);
}

Expected Behavior

The JSON output should have only one "type" field:

{"type":"text","text":"XXX"}

Actual Behavior

The JSON output contains a duplicate "type" field:

{"type":"text","type":"text","text":"XXX"}

Possible Cause

This is likely due to a field and a getter method both being annotated with @JsonProperty("type") in the McpSchema.TextContent class, or the field might be defined twice in the class hierarchy.

Environment

  • Java version: 21.0.5
  • Spring AI version: 1.0.0-M6