This topic was automatically generated from Slack. You can find the original thread here.
I am using mcp.pipedream.com to create a Google Tasks connector for using in Anthropic’s app. How can I configure pipedream’s MCP server to use Full-config mode instead of Sub-agent mode? (Is this something I would configure in settings in mcp.pipedream.com? Something I could put in the args in the claude_desktop_config.json? Or something I could explain in the chat with Claude, telling it how to use this mode?)
The connector is working in Sub-agent mode, but the results are unreliable. google_tasks-list-tasks is returning an incomplete list of tasks, confusing main tasks with subtasks, or the tasks are received out of order. My theory is that this is because in Sub-agent mode the instruction parameter doesn’t provide precise control over the API and there is an extra layer of LLMs talking to each other that is filtering and reformulating the response instead of directly returning the data.
Claude Desktop does’t reload tools, so full-config won’t work there. That’s the main reason we built sub-agent mode, because I don’t believe we’ve come across any MCP client that reloads tools.
I’m curious, why is reloading tools important? I am imagining that it would load a tool for getting my Google Tasks, call the tool, and use the results in my chat. How does the reloading come into play?
It’s most relevant for things like dynamic props, which some tools have (not all though) — it basically lets a tool return a different tool definition based on specific inputs to certain fields. One example is that a lot of the HubSpot tools will return fields that are unique to your account type, etc.
Try adding toolMode=tools-only as a query param on the server URL. I don’t remember if it works on the consumer version or just the developer URLs, but give it a shot.
Thanks! When I added ?toolMode=tools-only it seems to have changed the interaction mode. Instead of using an instruction parameter and getting text back, it now sends a request with parameters and gets structured data back. So it looks like that works on the consumer version.
Yes…mostly. Thanks for your help, ! Without your help I wasn’t able to figure out how to use the MCP server in that mode based on the docs.
Using tools-only I now get a complete list of my tasks along with parent and position fields that can be used to correctly sort them and place them in hierarchy. Claude seems to be able to successfully use this information, which I’ll be testing further in my future chats.
This gets me most of what I want, with a couple nuances to look at later:
The way the tasks are returned from the MCP server based on the Google API seems to have them in an arbitrary order and then the parent and position field can be used to reconstruct their true relationship. This may require Claude to do extra work to understand the true nature of my tasks. If that turns out to be a problem, then at some point I may consider developing an MCP server that returns them already sorted with subtasks nested.