Skip to main content

v2.2.0

Released: June 8, 2026

Highlights

  • MCP Server — expose Toolpack's 100+ built-in tools to any MCP client (Claude Desktop, Cursor, custom agents) via HTTP or stdio, with static/JWT/custom auth and search mode
  • Two new exec toolsexec.run_blocking (no-timeout shell execution) and exec.tail_output (read tail of background process output)
  • Kubernetes tools auto-loaded — all 11 k8s.* tools are now registered by default (tool count: 95 → 106)

Breaking changes

None.


toolpack-sdk

sdk.startMcpServer() — Toolpack as an MCP server

const handle = await sdk.startMcpServer({
transport: 'http', // or 'stdio' for Claude Desktop / Cursor
port: 3000,
});
// handle.port, handle.toolCount, handle.stop()

Transport options:

  • 'http' — Streamable HTTP for remote/cloud use
  • 'stdio' — for Claude Desktop and Cursor via claude_desktop_config.json

Tool filtering:

expose: { categories: ['filesystem', 'version-control'] }
expose: { tools: ['fs.read_file', 'git.commit'] }

Authentication (HTTP only):

  • mode: 'static' — pre-shared bearer tokens; multiple tokens supported for zero-downtime rotation
  • mode: 'jwt' — JWKS-based verification (Auth0, Supabase, Clerk)
  • mode: 'custom' — bring your own verifyAccessToken() function

Search mode:

searchMode: true  // tools/list returns only tool.search; clients discover tools on demand

Agent exposure: agents from @toolpack-sdk/agents can be exposed as MCP tools via McpChannel.asAgentDefinition().

New exec tools

ToolDescription
exec.run_blockingExecute a shell command with no timeout — waits until the process exits naturally
exec.tail_outputRead the last N lines of output from a background process started with exec.run_background

Bug fix: Kubernetes tools missing from loadBuiltIn()

k8sToolsProject was never imported in loadBuiltIn(). All 11 Kubernetes tools are now registered by default when tools: true is set.


Install

npm install toolpack-sdk@2.2.0