This is an automated email from the ASF dual-hosted git repository.

xtsong pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/flink-agents.git


The following commit(s) were added to refs/heads/main by this push:
     new 90eaa259 [mcp] Change PromptArgument.required from boolean to Boolean 
and default null to false (#583)
90eaa259 is described below

commit 90eaa25971877648add8da2e17efcb7bf0bea8e7
Author: Vino1016 <[email protected]>
AuthorDate: Thu Mar 26 19:20:29 2026 +0800

    [mcp] Change PromptArgument.required from boolean to Boolean and default 
null to false (#583)
    
    * [FLINK-AGENTS] Change PromptArgument.required from boolean to Boolean and 
default null to false (#578)
---
 .../apache/flink/agents/integrations/mcp/MCPPrompt.java  | 16 ++++++++--------
 .../flink/agents/integrations/mcp/MCPPromptTest.java     | 10 ++++++++++
 2 files changed, 18 insertions(+), 8 deletions(-)

diff --git 
a/integrations/mcp/src/main/java/org/apache/flink/agents/integrations/mcp/MCPPrompt.java
 
b/integrations/mcp/src/main/java/org/apache/flink/agents/integrations/mcp/MCPPrompt.java
index 5fd9085a..e539245a 100644
--- 
a/integrations/mcp/src/main/java/org/apache/flink/agents/integrations/mcp/MCPPrompt.java
+++ 
b/integrations/mcp/src/main/java/org/apache/flink/agents/integrations/mcp/MCPPrompt.java
@@ -65,16 +65,16 @@ public class MCPPrompt extends Prompt {
         private final String description;
 
         @JsonProperty("required")
-        private final boolean required;
+        private final Boolean required;
 
         @JsonCreator
         public PromptArgument(
                 @JsonProperty("name") String name,
                 @JsonProperty("description") String description,
-                @JsonProperty("required") boolean required) {
+                @JsonProperty("required") Boolean required) {
             this.name = Objects.requireNonNull(name, "name cannot be null");
             this.description = description;
-            this.required = required;
+            this.required = required != null && required;
         }
 
         public String getName() {
@@ -85,7 +85,7 @@ public class MCPPrompt extends Prompt {
             return description;
         }
 
-        public boolean isRequired() {
+        public Boolean isRequired() {
             return required;
         }
 
@@ -94,9 +94,9 @@ public class MCPPrompt extends Prompt {
             if (this == o) return true;
             if (o == null || getClass() != o.getClass()) return false;
             PromptArgument that = (PromptArgument) o;
-            return required == that.required
-                    && Objects.equals(name, that.name)
-                    && Objects.equals(description, that.description);
+            return Objects.equals(name, that.name)
+                    && Objects.equals(description, that.description)
+                    && Objects.equals(required, that.required);
         }
 
         @Override
@@ -193,7 +193,7 @@ public class MCPPrompt extends Prompt {
         Map<String, Object> result = new HashMap<>();
 
         for (PromptArgument arg : promptArguments.values()) {
-            if (arg.isRequired()) {
+            if (Boolean.TRUE.equals(arg.isRequired())) {
                 if (arguments == null || 
!arguments.containsKey(arg.getName())) {
                     throw new IllegalArgumentException(
                             "Missing required argument: " + arg.getName());
diff --git 
a/integrations/mcp/src/test/java/org/apache/flink/agents/integrations/mcp/MCPPromptTest.java
 
b/integrations/mcp/src/test/java/org/apache/flink/agents/integrations/mcp/MCPPromptTest.java
index 1c0e2f01..4bb49619 100644
--- 
a/integrations/mcp/src/test/java/org/apache/flink/agents/integrations/mcp/MCPPromptTest.java
+++ 
b/integrations/mcp/src/test/java/org/apache/flink/agents/integrations/mcp/MCPPromptTest.java
@@ -182,4 +182,14 @@ class MCPPromptTest {
         assertThat(prompt.getPromptArguments()).hasSize(1);
         assertThat(prompt.getPromptArguments()).doesNotContainKey("arg3");
     }
+
+    @Test
+    @DisabledOnJre(JRE.JAVA_11)
+    @DisplayName("Test PromptArgument defaults required to false when null")
+    void testPromptArgumentDefaultsRequiredToFalseWhenNull() {
+        MCPPrompt.PromptArgument arg = new MCPPrompt.PromptArgument("name", 
"Name", null);
+
+        // Required should default to false when null
+        assertThat(arg.isRequired()).isFalse();
+    }
 }

Reply via email to