Skip to content

Conversation

@jamadeo
Copy link
Collaborator

@jamadeo jamadeo commented Jan 23, 2026

I also removed the developer extension test from here because we've switched transport types to run that in-process

Copilot AI review requested due to automatic review settings January 23, 2026 17:04
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the MCP replay-based integration test suite to exercise compatibility against a FastMCP server instead of the previous goosed -- mcp developer replay.

Changes:

  • Replaced the goosed -- mcp developer replay test case with a FastMCP-based replay (uv run --with fastmcp==2.14.4 ...).
  • Added a minimal FastMCP Python test server (divide tool) plus new replay and expected results fixtures.
  • Updated Cargo.lock to reflect the current workspace version (1.20.0) for goose-acp.

Reviewed changes

Copilot reviewed 6 out of 7 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
crates/goose/tests/mcp_integration_test.rs Swaps the replayed MCP test case from goosed to FastMCP and updates tool calls accordingly.
crates/goose/tests/fastmcp_test_server.py Adds a small FastMCP server used when recording the replay.
crates/goose/tests/mcp_replays/uvrun--withfastmcp==2.14.4fastmcpruntests_fastmcp_test_server.py Adds the recorded stdio replay log for the FastMCP server.
crates/goose/tests/mcp_replays/uvrun--withfastmcp==2.14.4fastmcpruntests_fastmcp_test_server.py.results.json Adds expected tool-call results for the FastMCP replay.
crates/goose/tests/mcp_replays/cargorun--quiet-pgoose-server--bingoosed--mcpdeveloper Removes the prior goosed developer replay log.
crates/goose/tests/mcp_replays/cargorun--quiet-pgoose-server--bingoosed--mcpdeveloper.results.json Removes the prior expected results for the goosed developer replay.
Cargo.lock Updates lockfile entries to match workspace versioning.

Comment on lines 154 to 159
vec!["uv", "run", "--with", "fastmcp==2.14.4", "fastmcp", "run", "tests/fastmcp_test_server.py"],
vec![
CallToolRequestParam { name: "text_editor".into(), arguments: Some(object!({
"command": "view",
"path": "/tmp/goose_test/goose.txt"
}))},
CallToolRequestParam { name: "text_editor".into(), arguments: Some(object!({
"command": "str_replace",
"path": "/tmp/goose_test/goose.txt",
"old_str": "# goose",
"new_str": "# goose (modified by test)"
}))},
// Test shell command to verify file was modified
CallToolRequestParam { name: "shell".into(), arguments: Some(object!({
"command": "cat /tmp/goose_test/goose.txt"
})) },
// Test text_editor tool to restore original content
CallToolRequestParam { name: "text_editor".into(), arguments: Some(object!({
"command": "str_replace",
"path": "/tmp/goose_test/goose.txt",
"old_str": "# goose (modified by test)",
"new_str": "# goose"
}))},
CallToolRequestParam { name: "list_windows".into(), arguments: Some(object!({})) },
CallToolRequestParam { name: "divide".into(), arguments: Some(object!({
"dividend": 10,
"divisor": 2
})) }
Copy link

Copilot AI Jan 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The FastMCP test uses a relative script path ("tests/fastmcp_test_server.py"), but extensions are launched with the test process current_dir (often the workspace root or ./crates in CI), so recording replays will fail to find the script; use an absolute path derived from env!("CARGO_MANIFEST_DIR") (e.g., via concat!) so it works regardless of where cargo test is run from.

Copilot uses AI. Check for mistakes.
@@ -0,0 +1,29 @@
STDIN: {"jsonrpc":"2.0","id":0,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{"sampling":{},"elicitation":{}},"clientInfo":{"name":"goose","version":"0.0.0"}}}
Copy link

Copilot AI Jan 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

leading zeros in decimal integer literals are not permitted; use an 0o prefix for octal integers (in Python 3).

Copilot uses AI. Check for mistakes.
Copilot AI review requested due to automatic review settings January 23, 2026 20:56
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 15 out of 15 changed files in this pull request and generated no new comments.

@jamadeo jamadeo merged commit 1bf952e into main Jan 23, 2026
26 checks passed
@jamadeo jamadeo deleted the jackamadeo/fastmcp-snapshot-test branch January 23, 2026 21:11
zanesq added a commit that referenced this pull request Jan 26, 2026
* origin/main:
  fix: dispatch ADD_ACTIVE_SESSION event before navigating from "View All" (#6679)
  Speed up Databricks provider init by removing fetch of supported models (#6616)
  fix: correct typos in documentation and Justfile (#6686)
  docs: frameDomains and baseUriDomains for mcp apps (#6684)
  docs: add Remotion video creation tutorial (#6675)
  docs: export recipe and copy yaml (#6680)
  Test against fastmcp (#6666)
  docs: mid-session changes (#6672)
  Fix MCP elicitation deadlock and improve UX (#6650)
  chore: upgrade to rmcp 0.14.0 (#6674)
  [docs] add MCP-UI to MCP Apps blog (#6664)
  ACP get working dir from args.cwd (#6653)
  Optimise load config in UI (#6662)

# Conflicts:
#	ui/desktop/src/components/Layout/AppLayout.tsx
katzdave added a commit that referenced this pull request Jan 26, 2026
…o dkatz/canonical-context

* 'dkatz/canonical-provider' of github.com:block/goose: (27 commits)
  docs: add Remotion video creation tutorial (#6675)
  docs: export recipe and copy yaml (#6680)
  Test against fastmcp (#6666)
  docs: mid-session changes (#6672)
  Fix MCP elicitation deadlock and improve UX (#6650)
  chore: upgrade to rmcp 0.14.0 (#6674)
  [docs] add MCP-UI to MCP Apps blog (#6664)
  ACP get working dir from args.cwd (#6653)
  Optimise load config in UI (#6662)
  Fix GCP Vertex AI global endpoint support for Gemini 3 models (#6187)
  fix: macOS keychain infinite prompt loop    (#6620)
  chore: reduce duplicate or unused cargo deps (#6630)
  feat: codex subscription support (#6600)
  smoke test allow pass for flaky providers (#6638)
  feat: Add built-in skill for goose documentation reference (#6534)
  Native images (#6619)
  docs: ml-based prompt injection detection (#6627)
  Strip the audience for compacting (#6646)
  chore(release): release version 1.21.0 (minor) (#6634)
  add collapsable chat nav (#6649)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants