Fetching from the wire…
Public story · 2026-08-30 · high
MCPConfig.tools now takes Agent, Team, and Workflow objects directly, so a caller sees a tool named chief instead of one dispatcher function.
Why now: Agno published 3.0.2 to GitHub alongside its other changes to sandboxing and email tooling in the same release.
Agno 3.0.2 changes how its agents talk to MCP clients. Before this release, an outside caller went through one dispatcher, something like run_agent(agent_id="chief"), with the agent ID passed as a string argument. Now that string becomes a tool name a client can see and call directly, which changes what shows up in a tool list and what an approval step has to reason about.
MCPConfig.tools now accepts Agent, Team, and Workflow instances directly. Each one shows up in the MCP client as its own named tool, so chief becomes a callable tool rather than a parameter value. Developers can also call component.as_tool(name=..., description=...) to control the name and description a client sees.
Toolkits get the same treatment at the method level. Each registered method on a Toolkit publishes as its own MCP tool, and the toolkit's existing enable_*, include_tools, and exclude_tools settings still control which methods get exposed. Return values now render as proper MCP content blocks, including a resource_link type for results that are just a URL rather than inline data.
The release also adds MCP title and behavior annotations. Anything exposed this way defaults to readOnlyHint=False, destructiveHint=True, and openWorldHint=True, per the Agno 3.0.2 release notes. An MCP client uses those hints to decide whether to ask a human before calling a tool or let an autonomous loop call it unattended. Defaulting everything to destructive is the cautious choice, but it puts the retuning work on whoever wired up the client, one flag at a time, per tool.
Each link below shares sources, entities, or timing with this story.
A lazy-loading quirk in IPython 9.17 let %%bash run even when Agno's CodeMode explicitly turned shell access off.
The mismatch let a faked tool name slip past every human approval, allow-list, and audit log built to stop it.
MCPConfig.tools now accepts Agent, Team and Workflow instances plus Toolkit objects, exposing each as its own named MCP tool. You call chief, not run_agent(agent_id="chief"). Toolkits publish one MCP tool per registered method, narrowed by the toolkit's own enable/include/excl...
IPython 9.17 registers script magics lazily and recreates them on lookup, so Agno's method of removing bash from the cell-magic table stopped disabling it. A kernel explicitly configured to forbid shell access executed %%bash anyway. The fix materializes the script-magic provi...
OpenBot reached 3,364 stars and 412 forks since its 2026-08-17 creation, MIT-licensed and pushed 2026-08-28.
It logs edits and errors to SQLite and retrieves them by search, skipping re-reads after compaction, enforced across 17 agent platforms.
MindPattern daily
One email a day at 7 AM. Sources and a take on every story. Unsubscribe anytime.