Live agent MCP tools + Firecrawl search (with Windows test fix) — supersedes #245#246
Merged
Merged
Conversation
bfa0a5d to
7dd05e0
Compare
Thread Model Context Protocol servers into the deepagents brain behind `assembly live`, so a spoken conversation can reach real tools mid-turn — bringing it toward Gemini-Live / ChatGPT-voice parity. - `--mcp-config FILE` (repeatable) loads tools from standard `mcpServers` JSON, the same shape Claude Desktop / Claude Code use. - `--demo-tools` loads a curated, no-auth set (time, fetch, memory, filesystem, weather) for a reliable on-stage demo. Each server launches best-effort and independently, so one that won't start (missing npx/uvx, offline host) drops only its own tools and never sinks the session. The system prompt advertises MCP tools generically by name so the agent reaches for them without promising capabilities it lacks. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01S2tt5oaMXD2RCVoAqGbqyR
Drop the --demo-tools opt-in: `assembly live` now loads the curated MCP toolset (time, fetch, memory, filesystem, weather) by default, alongside its built-in URL fetch and the AssemblyAI docs MCP. --mcp-config still layers your own servers on top (and can override a default by name). Switch the default web search from Tavily to Firecrawl, reusing Firecrawl's official LangChain integration (langchain-firecrawl's FirecrawlSearch). It loads when FIRECRAWL_API_KEY is set; when it isn't, the session prints a one-line notice and runs without web search (every other default tool is no-auth). `assembly code` keeps its Tavily search unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01S2tt5oaMXD2RCVoAqGbqyR
- test_default_servers_curated_set_and_filesystem_root hardcoded a forward-slash path, which fails on Windows where str(Path(...)) uses backslashes; compare against str(root) instead. The production code (a native path for the filesystem MCP server) was already correct. - Update three docstrings/comments in the live agent that still referenced TAVILY_API_KEY / --demo-tools after the switch to Firecrawl and default-loaded tools (flagged by review). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01S2tt5oaMXD2RCVoAqGbqyR
7dd05e0 to
4bd2530
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Same change as #245 (MCP server tools + Firecrawl web search for
assembly live), plus a fix for the Windows CI failure that #245's branch can't take because it's locked in the merge queue.Why a new branch
#245 is in the merge queue, so its branch is locked and won't accept new pushes. Its head commit (
7079cef) failstests (windows, py3.12/py3.13), and the PR isunstable(Windows may not be a required check), so the queue could land the failing test onmain. This branch carries the identical feature commits plus the fix so the corrected version can land.The fix (commit
bfa0a5d)test_default_servers_curated_set_and_filesystem_roothardcoded a forward-slash path (/notes/dir), but on Windowsstr(Path("/notes/dir"))renders with backslashes (\notes\dir). The test now compares againststr(root)so it holds on every platform. The production code was already correct — a native path is what the filesystem MCP server wants on Windows.TAVILY_API_KEY/--demo-toolsafter the switch to Firecrawl and default-loaded tools (flagged in review on Add MCP server support to live agent with Firecrawl web search #245).Everything else is unchanged from #245; the full local gate is green (lint, types, 100% patch coverage, mutation, build). Once this is ready to land, close #245 in favor of this PR (or merge this and let #245 drop out of the queue).
🤖 Generated with Claude Code
https://claude.ai/code/session_01S2tt5oaMXD2RCVoAqGbqyR
Generated by Claude Code