diff --git a/crates/goose-mcp/src/computercontroller/mod.rs b/crates/goose-mcp/src/computercontroller/mod.rs index dadf508fa653..8042975b9d90 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 9217ad50f94f..6529281c0917 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#"