feat(everything): add trigger-agentic-sampling tool#3163
Draft
olaservo wants to merge 12 commits intomodelcontextprotocol:mainfrom
Draft
feat(everything): add trigger-agentic-sampling tool#3163olaservo wants to merge 12 commits intomodelcontextprotocol:mainfrom
olaservo wants to merge 12 commits intomodelcontextprotocol:mainfrom
Conversation
Adds a new tool that demonstrates sampling with tools capability (MCP 2025-11-25). The tool sends prompts to the LLM with tools available, handles tool_use responses in an agentic loop, and executes tools locally until a final response is received. 🦉 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Update features.md and structure.md to document the new trigger-agentic-sampling tool. Also adds missing documentation for trigger-elicitation-request. 🦉 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
cliffhall
requested changes
Jan 5, 2026
Member
cliffhall
left a comment
There was a problem hiding this comment.
Can't test with the Inspector yet (saw your mention of an issue with the SDK on that), but review did turn up a few minor things.
Address PR review feedback: remove console.log statements that would interfere with STDIO JSON-RPC output. Registration now silently skips when client doesn't support sampling.tools (matching other conditional tools). Remaining debug logs changed to console.error. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Match the pattern used by other conditional tools: wrap registerTool
in `if (clientSupports...) { }` instead of early return.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Member
|
Hi @olaservo. If you could resolve the conflicts and include some screenshots, it would be helpful. I'm still not fully up to speed on what this looks like for the Inspector side of things, so I need to do some reseach. |
Resolve conflicts in tools/index.ts and docs/features.md by including both the new trigger-agentic-sampling tool (SEP-1577) and the task-based tools (SEP-1686) from main. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Member
Author
|
Fixed the conflicts, working on some screenshots from my custom client to illustrate the flow (I think I might update the example here too in the process). |
…history Retain complete LLM response (text + tool_use blocks) in message history instead of filtering to only tool_use blocks. This preserves chain-of-thought reasoning context for subsequent turns in multi-step agentic loops. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add MCP-spec compliant annotations to echo and add tools indicating they are read-only, non-destructive, idempotent, and closed-world. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
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.
Description
Adds support for SEP-1577 (Sampling With Tools) to the Everything server by introducing a new
trigger-agentic-samplingtool that demonstrates the agentic sampling loop pattern.This tool:
tool_useresponses and executes tools locallysampling.toolscapabilityServer Details
Motivation and Context
Issue: #3040
SEP-1577 adds tool calling support to the MCP sampling API, enabling servers to provide tools that the LLM can use during sampling requests. This creates an "agentic loop" where:
sampling/createMessagewith atoolsarraystopReason: "toolUse", the server executes the toolsThe Everything server is a reference implementation that demonstrates all MCP features, so it should include this capability.
How Has This Been Tested?
sampling.toolscapability checktrigger-sampling-request,trigger-elicitation-request)(We can wait to merge until I've had a chance to add a screengrab if that's preferred.)
Breaking Changes
No
Types of changes
Checklist
Additional context
References
Implementation Notes
The tool includes simple local implementations of
echoandaddtools for demonstration purposes. In a production scenario, tools could likely be reused via:server.server.callTool()callsI thought about trying to re-use existing tools already defined in the everything server, but then decided to keep it self-contained instead.