It looks like llm is not able to discover templated resources at resources/templates/list and prompt resources at prompts/list
Describe the bug
Note: Please check the common issues on https://block.github.io/goose/docs/troubleshooting before filing a report
After added a templated resource or a prompt resource into a fastmcp http server, the llm cannot discover them. I've added a templated resource at uri resource://some_name/{my_param} The llm seems not to find it but if I explicitly ask to read resource at resource://some_name/my_parameter_value it gets the response correctly. I think it works just because the method is the same as the non-templated resources, resource/read.
Different story instead for prompt resource. I added one at prompt://some_name/{my_param} but it looks like the llm is not able to call the method prompt/list nor prompt/get.
The llm says My Tool's Limitation: The platform__list_resources tool that I have access to is evidently not implementing the full MCP standard for resource discovery. It appears to only be querying the resources/list endpoint and not the resources/templates/list endpoint. This is why I was consistently unable to discover resource://greetings_message_template/{username} using that tool.
Same answer for the prompt/list. Is it a bug of I'm doing something wrong?
To Reproduce Steps to reproduce the behavior:
- Ask the llm to discover templated resources or prompt resources
Expected behavior I expect to get templated resources and prompt resources in the same way I can discover non-templated resources and tools
Screenshots
Please provide following information:
- OS & Arch: Mac OS 15.6.1
- Interface: UI
- Version: 1.8.0
- Extensions enabled: custom extension to connect to custom fastmcp http server
- Provider & Model: gemini-2.5-flash
HI @giacomochiarella thanks for raising the issue. Yeah currently goose doesn't support mcp resource/prompts templates yet.
@angelahning is there any plan to add resources/prompts templates? I'm actually surprised they are not implemented as they are very powerful
ooc, would you mind educating me on your use cases? I havent used the mcp resources personally. Happy to support it, but i am going to be AFK for the next week; added a "help wanted" label in case anyone from the community wants to work on it too.
@angelahning I will try to explain a use case, I hope it would give an idea about the power of template resources and, even more, prompts. Template resources/prompts are parametric uris which means if I have a users logged in (e.g. I provide a token to the mcp sever which contains info about the user) I can customise the resource/prompt. This would allow to create resources like: "hello {user}, how are you?" if goose is able to discover a resource like /resources/template/{username}/hello_message. This is a very silly example but I hope it give an idea about the power of such uris. It is even more power if we speak about prompts because prompts are processed automatically by goose, so for example, I need goose to execute something based on some user permissions: in such a case, if I have prompt/template/{user}/my_action I could get permissions and embed in the prompt. Without a template, I need to make goose execute another prompt to get permissions (which most likely means the user needs to ask goose to get the permissions) and then execute the final prompt passing permissions as parameters to a tool, not a prompt. Without templates, the agent would need to do more steps and 2 main issues of that are:
- user needs to be aware about these steps
- the user needs to manually ask the agent to do these steps Just these 2 points would make the agent not usable by users which are not technical users. Last but not least, mcp standard provide such a feature so if I have an mcp server exposing template resources/prompts I cannot use Goose.