# Distributing tools and configuring tool_choice

*Claude Certified Architect - Foundations Study Guide · Tool Design & MCP Integration · Last updated October 22, 2026 · https://www.certifyforce.com/study-guide/claude-certified-architect-foundations/tool-design-and-mcp-integration/distributing-tools-and-configuring-tool-choice*

Why each agent should hold only its role's tools, how to scope them with tools, disallowedTools and inline mcpServers (and why allowedTools only auto-approves), and every tool_choice value: auto, any, a forced tool and none, including forcing a first step and the models that reject forced choice.

- Certification: Claude Certified Architect - Foundations
- Exam section: Tool Design & MCP Integration
- Study guide: https://www.certifyforce.com/study-guide/claude-certified-architect-foundations

**Official exam objective:**

> Distribute tools appropriately across agents and configure tool choice

## What the exam expects

- Explain why too many tools (18 instead of 4-5) or tools outside an agent's specialization degrade selection, and redesign around role-scoped tool sets.
- Give a specialist one narrow cross-role tool for a high-frequency need while routing complex cases through the coordinator, and replace generic tools with constrained ones.
- Restrict a subagent's tools with `tools`, `disallowedTools` or inline `mcpServers`, knowing that `allowedTools` only auto-approves.
- Pick the `tool_choice` value for a requirement: `auto`, `any`, a forced `{"type": "tool", "name": ...}` or `none`.
- Force a first step, then return to `auto` for follow-up turns, and know where forced choice is rejected.

Key terms: **scoped tool access** (each agent gets only the tools its role needs); **cross-role tool** (a narrow tool from another role's domain, such as `verify_fact`); **`tool_choice`** (the request field controlling whether and which tool Claude must call); **forced tool use** (`any` or a named `tool`); **auto-approval** (a permission rule that skips the prompt without adding or removing tools).

## Key facts

| Fact | Detail | Source |
|---|---|---|
| Default `tool_choice` | `auto` when tools are provided; `none` when no tools are provided | [Define tools](https://platform.claude.com/docs/en/agents-and-tools/tool-use/define-tools) |
| `any` vs `tool` | `any` requires some tool; `tool` requires the named tool | [Define tools](https://platform.claude.com/docs/en/agents-and-tools/tool-use/define-tools) |
| Text before a forced call | None: the API prefills the assistant message for `any` and `tool` | [Define tools](https://platform.claude.com/docs/en/agents-and-tools/tool-use/define-tools) |
| Forced choice unsupported | `any`/`tool` fail on some models and with manual extended thinking; `auto` and `none` still work | [Define tools](https://platform.claude.com/docs/en/agents-and-tools/tool-use/define-tools) |
| Schema-valid inputs | `strict: true`, not `tool_choice` | [Strict tool use](https://platform.claude.com/docs/en/agents-and-tools/tool-use/strict-tool-use) |
| One tool per response | `disable_parallel_tool_use: true` inside `tool_choice` | [Parallel tool use](https://platform.claude.com/docs/en/agents-and-tools/tool-use/parallel-tool-use) |
| Subagent with no `tools` field | Inherits every tool available to subagents | [SDK subagents](https://code.claude.com/docs/en/agent-sdk/subagents) |
| Remove a whole MCP server | `disallowedTools: mcp__server` or `mcp__server__*` | [SDK subagents](https://code.claude.com/docs/en/agent-sdk/subagents) |
| `allowed_tools` | Auto-approves; unlisted tools remain available | [Configure permissions](https://code.claude.com/docs/en/agent-sdk/permissions) |
| Recommended tools per agent | 4-5 rather than 18 (exam-guide guidance) | [Exam guide](https://everpath-course-content.s3-accelerate.amazonaws.com/instructor%2F6nizmqk8tpzpfjvt6qmmav7rh%2Fpublic%2F1783542750%2FClaude+Certified+Architect+%E2%80%93+Foundations+Exam+Guide.pdf) |

## Check yourself

- Why does giving every subagent all 16 tools hurt reliability?
- When should you use `tool_choice: any` instead of a named tool?
- Which field keeps a subagent's inherited tools but withholds one MCP server?
- Why might a request with tools and no `tool_choice` return only text?

## Sources

- [Define tools](https://platform.claude.com/docs/en/agents-and-tools/tool-use/define-tools)
- [Subagents in the SDK](https://code.claude.com/docs/en/agent-sdk/subagents)
- [Create custom subagents](https://code.claude.com/docs/en/sub-agents)
- [Configure permissions](https://code.claude.com/docs/en/agent-sdk/permissions)
- [Strict tool use](https://platform.claude.com/docs/en/agents-and-tools/tool-use/strict-tool-use)
- [Parallel tool use](https://platform.claude.com/docs/en/agents-and-tools/tool-use/parallel-tool-use)
- [Introducing advanced tool use for Claude](https://www.anthropic.com/research/advanced-tool-use)
- [Writing effective tools for AI agents](https://www.anthropic.com/research/writing-tools-for-agents)
- [Claude Certified Architect – Foundations Exam Guide v1.0](https://everpath-course-content.s3-accelerate.amazonaws.com/instructor%2F6nizmqk8tpzpfjvt6qmmav7rh%2Fpublic%2F1783542750%2FClaude+Certified+Architect+%E2%80%93+Foundations+Exam+Guide.pdf)

## About the full unit

The "Core concepts", "Exam traps" and "Worked scenario" sections of this unit, its 14 linked practice questions, and unlimited timed mock exams are included with the Claude Certified Architect - Foundations pack (USD $19): https://www.certifyforce.com/practice-exams
