From 7a42f99cf06b47fd4aec71c12480ac6e54586e3b Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Fri, 9 Oct 2026 09:05:04 -0400 Subject: [PATCH] MCP: the export tool forwards every option it advertises preset, background, resize, subfolder, conflict, tiffCompression and dngCompression were in the export tool's schema (and so passed the new argument check) but were dropped before reaching app.export. Co-Authored-By: Claude Opus 5.5 --- crates/mcp/src/tests.rs | 13 +++++++++++++ crates/mcp/src/tools.rs | 7 +++++++ 2 files changed, 20 insertions(+) diff --git a/crates/mcp/src/tests.rs b/crates/mcp/src/tests.rs index b58f195b9..3393e5040 100644 --- a/crates/mcp/src/tests.rs +++ b/crates/mcp/src/tests.rs @@ -139,6 +139,19 @@ fn export_refuses_unknown_params_and_bad_values() { assert!(e.contains("did you mean `quality`"), "{e}"); } +/// Every option the `export` tool advertises reaches `app.export` (they were accepted, then dropped). +#[test] +fn export_tool_forwards_its_advertised_options() { + let mut b = Headless::demo(); + let base = std::env::temp_dir().join(format!("lc-mcp-export-fwd-{}", std::process::id())); + let _ = std::fs::remove_dir_all(&base); + let r = call_tool(&mut b, "export", &json!({"dir": base.to_string_lossy(), "subfolder": "sub", "longEdge": 64, "format": "png"})); + assert!(!r.is_error, "{r:?}"); + let files: Vec<_> = std::fs::read_dir(base.join("sub")).unwrap().collect(); + assert_eq!(files.len(), 1, "written into the subfolder"); + let _ = std::fs::remove_dir_all(&base); +} + /// The `import` helper moves: renamed into the folder template, the source removed. #[test] fn import_tool_moves_with_a_folder_template() { diff --git a/crates/mcp/src/tools.rs b/crates/mcp/src/tools.rs index 929a0d29d..4a114f18c 100644 --- a/crates/mcp/src/tools.rs +++ b/crates/mcp/src/tools.rs @@ -729,6 +729,13 @@ pub fn call_tool(b: &mut dyn Backend, name: &str, args: &Value) -> ToolResult { "watermark", "colorSpace", "bitDepth", + "preset", + "background", + "resize", + "subfolder", + "conflict", + "tiffCompression", + "dngCompression", ], ), )