Skip to content

feat: add progress notifications for all tools via MCP progressToken#136

Open
saiprasaad2002 wants to merge 2 commits into
tavily-ai:mainfrom
saiprasaad2002:progress-message
Open

feat: add progress notifications for all tools via MCP progressToken#136
saiprasaad2002 wants to merge 2 commits into
tavily-ai:mainfrom
saiprasaad2002:progress-message

Conversation

@saiprasaad2002

@saiprasaad2002 saiprasaad2002 commented Mar 23, 2026

Copy link
Copy Markdown

Summary

Adds real-time progress notifications for all tools using the MCP
notifications/progress protocol, allowing clients to display live
status updates during tool execution.

Changes

  • Added reportProgress() helper that sends notifications/progress
    notifications when a progressToken is present in request.params._meta
  • Wired progress messages into all five tools: tavily_search,
    tavily_extract, tavily_crawl, tavily_map, and tavily_research
  • Gracefully no-ops when no progressToken is provided, so clients that
    don't send one are unaffected

Motivation

Clients like Claude Desktop and other MCP-compatible hosts support
progress callbacks but had no visibility into tool execution status.
This is especially impactful for tavily_research, which can run for
up to 15 minutes. Users now see live poll updates instead of a silent
wait.

Equivalent to

Python FastMCP's context.report_progress() — same concept, now
available for the JS server.


Note

Low Risk
Low risk: adds optional MCP notifications/progress emissions gated on _meta.progressToken, without changing Tavily API request/response handling. Main risk is minor client-side noise or incompatibility if hosts mishandle progress notifications.

Overview
Adds a reportProgress(progressToken, message) helper that sends MCP notifications/progress and no-ops when no token is provided.

Updates CallToolRequestSchema handling to read request.params._meta?.progressToken and emit pre-execution status messages for tavily_search, tavily_extract, tavily_crawl, and tavily_research.

Written by Cursor Bugbot for commit d35a735. This will update automatically on new commits. Configure here.

@saiprasaad2002 saiprasaad2002 requested a review from a team March 23, 2026 12:03

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 2 potential issues.

Fix All in Cursor

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Comment thread src/index.ts
};

case "tavily_research":
await this.reportProgress(progressToken, "Enabling Deep Research through Internet for detailed information");

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Missing progress notification for tavily_map tool

Medium Severity

The tavily_map case is the only tool without a reportProgress call. All four other tools (tavily_search, tavily_extract, tavily_crawl, tavily_research) have progress reporting wired in, and the PR description explicitly states progress was added to "all five tools." This means tavily_map users won't receive any progress notification despite a progressToken being available.

Fix in Cursor Fix in Web

Comment thread src/index.ts Outdated
break;

case "tavily_crawl":
await this.reportProgress(progressToken, `Crawling the url: ${args.url} for relevant informatioin`);

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Typo in user-facing crawl progress message

Low Severity

The progress notification message for tavily_crawl contains the typo "informatioin" instead of "information". This string is displayed to end users in MCP clients like Claude Desktop as a live status update during tool execution.

Fix in Cursor Fix in Web

@cursor

cursor Bot commented Mar 23, 2026

Copy link
Copy Markdown

You have used all of your free Bugbot PR reviews.

To receive reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

@saiprasaad2002

Copy link
Copy Markdown
Author

#135 Linking this PR with the issue raised

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.

1 participant