Integrations
Defender scans tool results. In a coding agent that means a hook on every tool call. In your own application it means calling the package, TypeScript or Python, where you handle tool output.
Coding agents
The plugin lives in StackOneHQ/agent-plugins. It takes no API key, no config file, and no account. It runs on Node 22 or newer, which is the plugin's own requirement and says nothing about the language your application is written in.
On the first tool call the hook installs its own ML dependencies into the plugin directory, which takes a one-time pause of a few seconds. After that a persistent local daemon handles scans in low milliseconds. Nothing leaves your machine during a scan.
Claude Code
Availablestackone-defender 3.0.0Installs as a PostToolUse hook. It scans every tool result before Claude acts on it.
- Add the StackOne marketplace.
/plugin marketplace add stackonehq/agent-plugins - Install the plugin.
/plugin install stackone-defender@stackone-agent-plugins
MCP tools
MCP results are covered by the hook above rather than by a separate integration. The matcher includes mcp__* tools and MCP resource reads, so a payload arriving through an MCP server is scanned like any other tool result. That matters because an MCP server is third-party code returning text your agent will read.
Your own agent
Call the package directly wherever you handle tool results, in either language: defendToolResult in TypeScript, defend_tool_result in Python, each with a batch form alongside it. The integration example and the API reference cover both, and the docs page switches language at the top.