-
Notifications
You must be signed in to change notification settings - Fork 2.6k
update to RMCP 0.6.2 #4523
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
update to RMCP 0.6.2 #4523
Conversation
6b29202 to
6a9a698
Compare
6a9a698 to
50a8c25
Compare
jamadeo
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for doing this!
cc @alexhancock
| RawContent::Image(image) => { | ||
| MessageContent::Image(image.optional_annotate(content.annotations)) | ||
| } | ||
| RawContent::ResourceLink(_link) => MessageContent::text("[Resource link]"), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we definitely need to do more here, but it's not clear to me exactly what that should be. Maybe just a JSON dump with the name, URI and description? then if the model decides to read it, we let it call read_resource?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good question. This implementation was literally just a cargo clippy satisfying minimal change. We might want to merge and decide later
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So, I added resource_link support to the RCMP, but am unsure if I did it right. Or maybe the problem is what you are asking about @jamadeo?
I made this dummy tool
server.tool(
"resource-link-demo",
"A demo of a resource link that displays a fake demo text file.",
{},
async (): Promise<CallToolResult> => {
return {
content: [
{
type: "resource_link",
uri: "file:///project/src/fake-demo.txt",
name: "fake-demo.txt",
description:
"Fake demo text file to test for resource link data.",
mimeType: "text/plain",
annotations: {
audience: ["assistant"],
priority: 0.9,
},
},
],
};
}
);When I ran Goose from this PR branch, it looks like my tool is called but nothing is returned in the tool call output:

I would expect all data that conforms to the resource link spec to show in the output, like the MCP inspector is showing here:
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@aharvard what I mean is, now that the support is there in rmcp (thank you!) it's up to Goose to do the right thing. In this PR it turns all resource links into some text "[Resource link]" which is surely not what we want.
It wasn't totally clear to me what Goose should do with it though. I think we want to show the link to the model, allowing the model to then call read_resource with the URL if it wants to? Should it also render something in the UI?
If the answer is that we're not sure yet, I'd say lets start by dumping the json, that way the model at least sees the whole result @Kvadratni
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah this is an example of an interesting "what should the host do?" question when working with MCP.
I think something which provides the full json (including URI of the resource) with "audience": ["assistant"] in the message should be good?
Optionally we could render a little bubble inside the tool result similar to what inspector does showing the URI, but less critical than making sure the model sees it.
In any case, I think we should merge the package upgrade to get that in, then do this in a separate focused change. Two smaller changes not coupled to eachother is better.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@alexhancock & @jamadeo, I'm chatting with @kentcdodds about his POV for resource_link — he's got a really awesome MCP workshop that leverages the technique. Maybe we could start a new issue to discuss the topic?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Absolutely!
@kentcdodds if you have thoughts on how a host can make the best experience for resource links (or other data types we don't represent yet) we're all ears to incorporate emerging patterns.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry, I haven't used Goose with resources at all yet, but is there somewhere in Goose that shows a list of the available resources that a user can add to Context? That's what I think should happen: when a resource_link shows up, that resource should appear in the list of resources that the user can add to Context, so basically when a tool responds with a resource_link, give the user the option of whether they want to include that in Context.
|
.bundle |
macOS ARM64 Desktop App (Apple Silicon)📱 Download macOS Desktop App (arm64, unsigned) Instructions: |
* main: docs: social channels (#4552) feat: simplify navigation, make reload work (#4498) docs: new recipe warning (#4545) Add AGENTS.md for AI coding assistant support (#4539) docs: non-interactive compact now (#4543) fixed css classes and added some accessibility fixes (#4492) feat(acp): Read files (#4531) Add YouTube Short to Auto Visualiser Tutorial (#4536) Fix/settings page (#4520) update to RMCP 0.6.2 (#4523)
* 'main' of github.com:block/goose: docs: add ampersand to link (#4560) Add video link to README for user guidance (#4553) docs: social channels (#4552) feat: simplify navigation, make reload work (#4498) docs: new recipe warning (#4545) Add AGENTS.md for AI coding assistant support (#4539) docs: non-interactive compact now (#4543) fixed css classes and added some accessibility fixes (#4492) feat(acp): Read files (#4531) Add YouTube Short to Auto Visualiser Tutorial (#4536) Fix/settings page (#4520) update to RMCP 0.6.2 (#4523) docs: nested goosehints (#4528) feat: Agent Client Protocol implementation of goose (#4511) feat: make tests for rmcp based developer server consistent with former implementation (#4519) worlds simplest logging to see where things are blocked (#3888) docs: update quickstart and install topics (#4378) feat: Add configurable Bedrock retry parameters (#4316) remove localstorage getconfig fallbacks (#4432) chore(deps-dev): bump electron from 37.2.6 to 37.4.0 in /ui/desktop (#4516)
* main: (43 commits) feat: add auto-compact threshold configuration UI (block#4178) Add container detection to developer extension (block#4559) docs: add ampersand to link (block#4560) Add video link to README for user guidance (block#4553) docs: social channels (block#4552) feat: simplify navigation, make reload work (block#4498) docs: new recipe warning (block#4545) Add AGENTS.md for AI coding assistant support (block#4539) docs: non-interactive compact now (block#4543) fixed css classes and added some accessibility fixes (block#4492) feat(acp): Read files (block#4531) Add YouTube Short to Auto Visualiser Tutorial (block#4536) Fix/settings page (block#4520) update to RMCP 0.6.2 (block#4523) docs: nested goosehints (block#4528) feat: Agent Client Protocol implementation of goose (block#4511) feat: make tests for rmcp based developer server consistent with former implementation (block#4519) worlds simplest logging to see where things are blocked (block#3888) docs: update quickstart and install topics (block#4378) feat: Add configurable Bedrock retry parameters (block#4316) ...
Signed-off-by: Matt Donovan <mattddonovan@protonmail.com>
Signed-off-by: HikaruEgashira <hikaru-egashira@c-fo.com>


Pull Request Description
Updates RMCP to latest version