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");