--- title: Tool Sets | cadenya description: Organize and manage the tools your agents use. --- Tool sets are workspace-scoped collections of tools. They’re how you give agents capabilities — each tool set connects to an external source that provides tools, and Cadenya syncs them automatically. ## Adapters Every tool set uses an adapter to connect to a tool provider. There are two adapter types. ### MCP adapter The MCP adapter connects to a [Model Context Protocol](https://modelcontextprotocol.io/) server. Cadenya discovers and syncs tools from the server automatically. ``` const toolSet = await client.toolSets.create({ name: "MCP Tools", description: "Tools from my MCP server", adapter: { mcp: { url: "https://your-mcp-server.example.com", headers: { Authorization: "Bearer your-token", }, }, }, }); ``` You can control which tools are synced using include and exclude filters: ``` adapter: { mcp: { url: "https://your-mcp-server.example.com", include_tools: ["search", "fetch"], // Only sync these tools exclude_tools: ["dangerous_tool"], // Or exclude specific tools }, } ``` ### HTTP adapter The HTTP adapter connects to a plain HTTP endpoint. Use this when your tools are exposed as a standard REST API rather than an MCP server. ``` const toolSet = await client.toolSets.create({ name: "HTTP Tools", description: "Tools from my HTTP API", adapter: { http: { base_url: "https://your-api.example.com", headers: { Authorization: "Bearer your-token", }, }, }, }); ``` ## Managing tools Once a tool set is created, you can manage the individual tools within it. ### Tool statuses Each tool has a status: - **Available** — The tool is active and can be used by agents. - **Filtered** — The tool was discovered but excluded by a filter rule. - **Archived** — The tool has been manually archived and won’t be used. ### Listing tools ``` const tools = await client.toolSets.tools.list(toolSet.metadata.id); for (const tool of tools.data) { console.log(`${tool.metadata.name}: ${tool.spec.description}`); } ``` ### Managed tool sets When a tool set has `managed` enabled, only API key actors can modify its tools — human users cannot make changes through the API. This is useful when tools are managed by an automated pipeline. Tool sets are assigned to agent variations, not agents directly. This means different variations of the same agent can use different tool sets. See the [Agents](/guides/agents/index.md) guide for details.