You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
tool.execute.after hook receives raw MCP result instead of assembled output #21149
The tool.execute.after hook fires for MCP tools before the output text is assembled from the raw CallToolResult.content[] array. Plugins hooking this event receive the raw MCP SDK result (which has a content array of {type, text} objects) instead of the {title, output, metadata} shape declared in the Hooks type definition.
This means any plugin that tries to read or transform output.output gets undefined, and even if the plugin mutates the raw result, the text assembly rebuilds the output from result.content independently. The hook is effectively a no-op for MCP tool output transformation.
The Hooks type in packages/plugin/src/index.ts declares the output parameter as:
Not a duplicate. #21145 and #21146 were filed under the wrong account and have both been closed. This issue (#21149) is the correct one, with the fix in PR #21150.
Activity
github-actions commentedon Apr 6, 2026
This issue might be a duplicate of existing issues. Please check:
tool.execute.afterreceiving raw MCP result instead of assembled output.YumaKakuya commentedon Apr 6, 2026
Not a duplicate. #21145 and #21146 were filed under the wrong account and have both been closed. This issue (#21149) is the correct one, with the fix in PR #21150.
github-actions commentedon Jul 6, 2026
To stay organized issues are automatically closed after 60 days of no activity. If the issue is still relevant please open a new one.
fix(F-001): handle MCP tool results missing .output field