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

davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new a0cca641dde7 CAMEL-25641, CAMEL-25536: camel-jbang-mcp - review 
follow-ups: next-step hint on over-long arguments, guide boost 1.5 (#27837)
a0cca641dde7 is described below

commit a0cca641dde7f068040ee4fae2c8615b214a2f6a
Author: Federico Mariani <[email protected]>
AuthorDate: Thu Oct 15 08:39:32 2026 +0200

    CAMEL-25641, CAMEL-25536: camel-jbang-mcp - review follow-ups: next-step 
hint on over-long arguments, guide boost 1.5 (#27837)
    
    Co-Authored-By: Claude Fable 5.1 <[email protected]>
---
 .../dsl/jbang/core/commands/mcp/McpSecurityInterceptor.java    |  3 ++-
 .../camel/dsl/jbang/core/commands/mcp/MigrationData.java       |  2 +-
 .../jbang/core/commands/mcp/McpSecurityInterceptorTest.java    |  3 ++-
 .../dsl/jbang/core/commands/mcp/MigrationDataSearchTest.java   | 10 ++++++----
 .../camel/dsl/jbang/core/commands/mcp/MigrationToolsTest.java  |  7 +++++--
 5 files changed, 16 insertions(+), 9 deletions(-)

diff --git 
a/dsl/camel-jbang/camel-jbang-mcp/src/main/java/org/apache/camel/dsl/jbang/core/commands/mcp/McpSecurityInterceptor.java
 
b/dsl/camel-jbang/camel-jbang-mcp/src/main/java/org/apache/camel/dsl/jbang/core/commands/mcp/McpSecurityInterceptor.java
index e16005992711..7507b57207cf 100644
--- 
a/dsl/camel-jbang/camel-jbang-mcp/src/main/java/org/apache/camel/dsl/jbang/core/commands/mcp/McpSecurityInterceptor.java
+++ 
b/dsl/camel-jbang/camel-jbang-mcp/src/main/java/org/apache/camel/dsl/jbang/core/commands/mcp/McpSecurityInterceptor.java
@@ -135,7 +135,8 @@ public class McpSecurityInterceptor {
                     throw new ToolCallException(
                             "Argument '" + parameterName(ctx.getMethod(), i) + 
"' is " + clean.length()
                                                 + " characters long, over the 
limit of " + maxLen
-                                                + " 
(camel.mcp.security.max-argument-length); nothing was done");
+                                                + "; nothing was done. Change 
a large file in parts with camel_edit_file,"
+                                                + " or raise 
camel.mcp.security.max-argument-length");
                 }
                 if (!clean.equals(s)) {
                     params[i] = clean;
diff --git 
a/dsl/camel-jbang/camel-jbang-mcp/src/main/java/org/apache/camel/dsl/jbang/core/commands/mcp/MigrationData.java
 
b/dsl/camel-jbang/camel-jbang-mcp/src/main/java/org/apache/camel/dsl/jbang/core/commands/mcp/MigrationData.java
index 7d1230d9cdcd..e764c8a19d1e 100644
--- 
a/dsl/camel-jbang/camel-jbang-mcp/src/main/java/org/apache/camel/dsl/jbang/core/commands/mcp/MigrationData.java
+++ 
b/dsl/camel-jbang/camel-jbang-mcp/src/main/java/org/apache/camel/dsl/jbang/core/commands/mcp/MigrationData.java
@@ -318,7 +318,7 @@ public class MigrationData {
      * Multiplier for the entries of the 2.x to 3.0 and 3.x to 4.0 migration 
guides in a version-scoped search, so they
      * rank above comparable upgrade guide entries without pushing out strong 
ones.
      */
-    static final double MAJOR_GUIDE_BOOST = 1.85;
+    static final double MAJOR_GUIDE_BOOST = 1.5;
     /** Entries scoring below this are considered unrelated to the query and 
are not returned. */
     static final double MIN_SCORE = 2.5;
 
diff --git 
a/dsl/camel-jbang/camel-jbang-mcp/src/test/java/org/apache/camel/dsl/jbang/core/commands/mcp/McpSecurityInterceptorTest.java
 
b/dsl/camel-jbang/camel-jbang-mcp/src/test/java/org/apache/camel/dsl/jbang/core/commands/mcp/McpSecurityInterceptorTest.java
index 01360328e6d8..bd7718ffa7a6 100644
--- 
a/dsl/camel-jbang/camel-jbang-mcp/src/test/java/org/apache/camel/dsl/jbang/core/commands/mcp/McpSecurityInterceptorTest.java
+++ 
b/dsl/camel-jbang/camel-jbang-mcp/src/test/java/org/apache/camel/dsl/jbang/core/commands/mcp/McpSecurityInterceptorTest.java
@@ -89,7 +89,8 @@ class McpSecurityInterceptorTest {
         assertThatThrownBy(() -> writeFile(securedTools(false), dir, content))
                 .isInstanceOf(ToolCallException.class)
                 .hasMessageContaining("'content'")
-                
.hasMessageContaining(String.valueOf(McpSecurityConfig.DEFAULT_MAX_ARGUMENT_LENGTH));
+                
.hasMessageContaining(String.valueOf(McpSecurityConfig.DEFAULT_MAX_ARGUMENT_LENGTH))
+                .hasMessageContaining("camel_edit_file");
         
assertThat(Files.readString(dir.resolve("notes.txt"))).isEqualTo("original");
     }
 
diff --git 
a/dsl/camel-jbang/camel-jbang-mcp/src/test/java/org/apache/camel/dsl/jbang/core/commands/mcp/MigrationDataSearchTest.java
 
b/dsl/camel-jbang/camel-jbang-mcp/src/test/java/org/apache/camel/dsl/jbang/core/commands/mcp/MigrationDataSearchTest.java
index 5a693d07bc41..08997634accd 100644
--- 
a/dsl/camel-jbang/camel-jbang-mcp/src/test/java/org/apache/camel/dsl/jbang/core/commands/mcp/MigrationDataSearchTest.java
+++ 
b/dsl/camel-jbang/camel-jbang-mcp/src/test/java/org/apache/camel/dsl/jbang/core/commands/mcp/MigrationDataSearchTest.java
@@ -93,10 +93,12 @@ class MigrationDataSearchTest {
         List<MigrationData.SearchHit> hits
                 = migrationData.search("CXF SOAP web service migration Camel 2 
to 4", "2.25", "4.22", 5);
 
-        assertThat(hits).isNotEmpty();
-        assertThat(hits.get(0).section().guide()).isEqualTo("Camel 3 Migration 
Guide (2.x to 3.0)");
-        assertThat(hits.get(0).section().sectionTitle()).startsWith("Migrating 
Camel applications");
-        assertThat(hits.get(0).section().content()).contains("camel-cxf");
+        // among the hits, not necessarily first: the exact rank depends on 
the wording of the in-range guides
+        assertThat(hits).anySatisfy(hit -> {
+            assertThat(hit.section().guide()).isEqualTo("Camel 3 Migration 
Guide (2.x to 3.0)");
+            assertThat(hit.section().sectionTitle()).startsWith("Migrating 
Camel applications");
+            assertThat(hit.section().content()).contains("camel-cxf");
+        });
     }
 
     @Test
diff --git 
a/dsl/camel-jbang/camel-jbang-mcp/src/test/java/org/apache/camel/dsl/jbang/core/commands/mcp/MigrationToolsTest.java
 
b/dsl/camel-jbang/camel-jbang-mcp/src/test/java/org/apache/camel/dsl/jbang/core/commands/mcp/MigrationToolsTest.java
index 9142dd302933..97acfc6bb992 100644
--- 
a/dsl/camel-jbang/camel-jbang-mcp/src/test/java/org/apache/camel/dsl/jbang/core/commands/mcp/MigrationToolsTest.java
+++ 
b/dsl/camel-jbang/camel-jbang-mcp/src/test/java/org/apache/camel/dsl/jbang/core/commands/mcp/MigrationToolsTest.java
@@ -106,8 +106,11 @@ class MigrationToolsTest {
                 "CXF SOAP web service migration Camel 2 to 4", 5, "2.25", 
"4.22");
 
         assertThat(result.resultCount()).isPositive();
-        
assertThat(result.results().get(0).sectionTitle()).startsWith("Migrating Camel 
applications");
-        
assertThat(result.results().get(0).snippet()).isNotBlank().containsIgnoringCase("cxf");
+        // among the hits, not necessarily first: the exact rank depends on 
the wording of the in-range guides
+        assertThat(result.results()).anySatisfy(hit -> {
+            assertThat(hit.sectionTitle()).startsWith("Migrating Camel 
applications");
+            assertThat(hit.snippet()).isNotBlank().containsIgnoringCase("cxf");
+        });
         
assertThat(result.results()).extracting(MigrationTools.GuideSnippet::version)
                 .noneMatch(v -> v.equals("4.23") || v.equals("4.24"));
         assertThat(result.nextStep()).contains("camel_migration_recipes");

Reply via email to