Skip to main content

Cyberstrike is now open source! AI-powered penetration testing for security professionals. Star on GitHub

Dynamic Tool Loading

Built-in tools (bash, read, edit, …) are always available. MCP tools are loaded on demand so that connecting a server with hundreds of tools doesn’t flood the model’s context. Four tools drive this.

MCP tool loading cycle: a server exposes hundreds of tools; tool_search finds one by capability, load_tools brings it into context, the agent calls it, and unload_tools frees the context

The Loading Tools

ToolPurpose
tool_searchFind MCP tools by capability (query, optional limit)
load_toolsLoad specific tools into the active context
unload_toolsRemove loaded tools to free context
list_loaded_toolsShow which tools are currently loaded

The agent uses these automatically: it searches for a capability, loads the matching MCP tool, calls it, and can unload it afterward.

{
"query": "sql injection testing",
"limit": 10
}

Returns matching MCP tools with their descriptions. Built-in tools don’t need searching — they’re always callable.

What’s Lazy vs Always-On

  • Always available — every built-in tool (bash, read, edit, glob, grep, write, task, webfetch, websearch, memory tools, …).
  • Loaded on demand — tools exposed by connected MCP servers (including Bolt). They are discovered with tool_search and pulled in with load_tools.

Disabling a Tool

The tools config is a map of tool name → boolean. Set a tool to false to disable it:

cyberstrike.json
{
"tools": {
"websearch": false
}
}