diff --git a/crates/goose-mcp/src/computercontroller/mod.rs b/crates/goose-mcp/src/computercontroller/mod.rs index dadf508fa..8042975b9 100644 --- a/crates/goose-mcp/src/computercontroller/mod.rs +++ b/crates/goose-mcp/src/computercontroller/mod.rs @@ -492,13 +492,19 @@ impl ComputerControllerServer { let save_as = params.save_as; // Fetch the content - let response = self.http_client.get(url).send().await.map_err(|e| { - ErrorData::new( - ErrorCode::INTERNAL_ERROR, - format!("Failed to fetch URL: {}", e), - None, - ) - })?; + let response = self + .http_client + .get(url) + .header("Accept", "text/markdown, */*") + .send() + .await + .map_err(|e| { + ErrorData::new( + ErrorCode::INTERNAL_ERROR, + format!("Failed to fetch URL: {}", e), + None, + ) + })?; let status = response.status(); if !status.is_success() { diff --git a/crates/goose-mcp/src/developer/rmcp_developer.rs b/crates/goose-mcp/src/developer/rmcp_developer.rs index 9217ad50f..6529281c0 100644 --- a/crates/goose-mcp/src/developer/rmcp_developer.rs +++ b/crates/goose-mcp/src/developer/rmcp_developer.rs @@ -325,6 +325,8 @@ impl ServerHandler for DeveloperServer { **Important**: Each shell command runs in its own process. Things like directory changes or sourcing files do not persist between tool calls. So you may need to repeat them each time by stringing together commands. + + If fetching web content, consider adding Accept: text/markdown header "#}; let windows_specific = indoc! {r#"