CCAR-F domain drill
CCAR-F practice questions: Tool design and MCP.
35 original questions on Tool design and MCP, which carries 18% of the Claude Certified Architect – Foundations exam per the published guide. Study notes first, then the questions with an explanation for each. When this domain feels solid, take the timed CCAR-F practice exam and check the domain breakdown.
What to know about Tool design and MCP
- A tool definition is a name, a description, and a JSON schema for inputs. The description is what the model reads to decide when to call it; write it for the model, with edge cases and examples.
- A few well scoped tools work better than many overlapping ones. Namespace related tools, return meaningful context rather than raw dumps, and keep responses within a sane token budget.
- The tool_choice parameter (auto, any, a specific tool, none), parallel tool use, and how a tool result with an error flag differs from a successful result.
- MCP primitives: tools, resources, and prompts. Servers expose them; clients (Claude Code, the Agent SDK, Claude.ai) connect to them.
- MCP transports: stdio for local processes, streamable HTTP for remote servers, and where authentication sits for remote ones.
- Idempotency and safety: which tools need confirmation, which are read-only, and how the schema and description communicate that.
Tool design and MCP questions
A tool named q with the description "queries db" is being called at the wrong times with the wrong arguments. Best fix?
Show answer
Answer: Rename it and write a description covering when to use it, what each parameter means, and edge cases. The description is what the model reads to decide when and how to call a tool; write it for the model, with parameter meanings, edge cases, and an example. More tools with the same thin descriptions multiply the confusion, and error messages only help after a wrong call has already been made.
You need the model to call one specific tool on this turn, no matter what. Which setting?
Show answer
Answer: tool_choice set to that tool by name, forcing the call. tool_choice with a specific tool name forces that call. any forces some tool but leaves the choice to the model; auto leaves the decision to the model entirely, regardless of tool order; disable_parallel_tool_use limits how many calls happen, not whether one does.
An MCP server will run on the developer's own machine, launched by the client as a child process. Which transport?
Show answer
Answer: stdio over the child process. stdio is the transport for a local server the client launches as a child process. Streamable HTTP is for remote servers that many clients connect to; running it on localhost works but adds a network layer and a port for no benefit here.
A tool call fails because the record does not exist. What should the tool return so the agent can recover?
Show answer
Answer: A tool result flagged as an error, with a message saying the record was not found and what ids are valid. Error results with actionable messages let the model choose a different path. An empty success hides the failure and invites the model to proceed on a missing record; a raw stack trace is an error the model has to decode rather than act on.
Two tools, search_customers and find_customers, do nearly the same thing and the model picks inconsistently. What should you do?
Show answer
Answer: Merge them into one well-described tool, or make their purposes clearly distinct in name and description. Overlapping tools confuse selection; fewer, clearly scoped tools work better. Forcing tool_choice removes the model's choice on every turn, including turns where no tool is needed; a wrapper tool adds a third overlapping name.
A tool returns a 4 MB JSON dump on every call and the agent's context fills quickly. Best fix?
Show answer
Answer: Return only the fields the task needs, paginate, and let the model request more. Tools should return concise, meaningful context, not raw dumps. Compressing JSON does not reduce tokens meaningfully; having the model summarize still costs the full dump in context first.
Which naming convention helps a model with many tools?
Show answer
Answer: Consistent namespacing by system, such as crm_search and crm_update. Predictable, namespaced names make the tool surface legible to the model. Return-type names say nothing about purpose; version suffixes ask the model to guess which one is current.
An MCP server exposes a 'prompts' primitive. What is it for?
Show answer
Answer: Reusable prompt templates the client can discover and invoke. MCP has tools, resources, and prompts; prompts are reusable templates the client exposes to the user. Servers do not inject text into the client's system prompt; authentication and transport are handled outside the primitives.
A remote MCP server holds customer data. Which is required?
Show answer
Answer: Authentication and authorization on the server, with the client presenting credentials. Remote servers with sensitive data need auth like any other service. Read-only tools still leak customer data to anyone who connects; a key in the tool description is visible to every client and the model.
What should a tool's description include beyond what it does?
Show answer
Answer: When to use it and when not to, parameter meanings, and edge cases. The description is the model's decision guide for the tool. Endpoint details and latency are operational data the model cannot act on; a required call order is better expressed by returning what the next call needs than by a list the model has to track.
A tool has a 'delete' action and a 'read' action behind one parameter. Why is that a design problem?
Show answer
Answer: Read-only and destructive actions need different gating; split them so the destructive one can be permissioned separately. Separating safe and dangerous operations lets you gate the dangerous one. Enums are well supported and the schema is valid; the problem is not the schema but the fact that a permission rule cannot tell a read from a delete.
The model calls a tool with a date in the wrong format, repeatedly. Best fix?
Show answer
Answer: Add a schema format hint and an example value in the description, and return a clear error on bad input. Schema hints, examples, and actionable errors fix malformed calls. Silent normalization hides a defect that will bite when a date is ambiguous; the tool description is exactly where the model looks when it builds the call.
When is parallel tool use appropriate?
Show answer
Answer: When the calls are independent and the results do not depend on one another. Independent calls can run concurrently; dependent ones cannot. Latency is the motivation, not the condition; if one call needs another's output, it has to wait. The server they belong to is irrelevant.
Which is a resource in MCP terms?
Show answer
Answer: Data the client can read, like a file or a record, addressed by URI. Resources are readable data; tools are callable actions; prompts are templates. Transport is how the client connects, not one of the three primitives.
A tool should be idempotent when:
Show answer
Answer: Its effects must be safe to repeat, because agent loops retry. Retries are normal; idempotency makes them harmless. Read-only tools are already idempotent by nature; the property matters for tools with side effects. Transport does not replay calls.
What is the safest default for a new tool that writes to an external system?
Show answer
Answer: Requires confirmation until its accuracy is measured. Start gated; expand autonomy on evidence. Staging-only means no real accuracy data; letting the model set its own threshold makes the model the gate again.
A tool takes 20 optional parameters and the model rarely sets them correctly. Best redesign?
Show answer
Answer: Split into focused tools with few required parameters and sensible defaults. Narrow tools with few parameters are easier to call correctly. Making all 20 required makes every call harder, and validation catches errors without reducing them.
What should a search tool return to be most useful to an agent?
Show answer
Answer: A compact ranked list with identifiers and snippets, plus a way to fetch details. Compact, actionable, and fetchable. Full records flood the context, and a count alone gives the agent nothing to act on.
Which MCP capability lets a server suggest a full workflow prompt to the client?
Show answer
Answer: Prompts, which are reusable templates the client can present for the user to invoke. Prompts are reusable templates exposed by servers. Resources expose data, tools perform actions, and sampling runs in the other direction.
A tool's description says 'Use this for anything related to customers'. Why is that weak?
Show answer
Answer: It is too broad: it invites misuse and overlaps with other tools; describe the job and when not to use it. Specificity guides selection. Parameter types belong in the schema, and length alone does not make a description useful.
When should a tool return an error rather than a best-effort result?
Show answer
Answer: When the input is invalid or the operation cannot complete correctly, with a message saying what would fix it. Honest errors beat silent partials, and an actionable message lets the model correct the call. Returning the closest valid result for bad input hides the problem from the model.
Which is true of tool_result blocks?
Show answer
Answer: They are returned in a user turn, matched to the tool_use block's id. Results come back in the next user turn, matched by id to the tool_use block, which stays in the history. Content can be text, JSON, or images; JSON is not required.
How do you keep an MCP server safe when it exposes both read and write operations?
Show answer
Answer: Separate read and write tools, require authentication, and gate writes with confirmation or scopes. Separate the tools, authenticate callers, and gate writes. A mode flag makes it easier to write by accident, and logging after the fact does not prevent damage.
A model keeps calling a tool that is not relevant to the task. Which fix comes first?
Show answer
Answer: Tighten its description with 'when not to use' guidance and check for overlap with other tools. Descriptions drive selection, so fix the description and any overlap first. A system prompt rule can help but is further from the point of choice than the tool's own description.
Why include units and formats in parameter descriptions?
Show answer
Answer: So the model supplies values the tool can parse, avoiding silent errors. Precision prevents malformed calls, such as seconds passed where milliseconds were expected. Descriptions are model-facing, and the schema still applies.
What is a good reason to expose a resource instead of a tool?
Show answer
Answer: The data is read-only reference material the client can load on demand by URI. Read-only reference data suits resources. Side effects and approval gates are tool concerns.
A tool's parameters are named a, b, and c. Why does that hurt?
Show answer
Answer: The model cannot infer meaning, so it guesses; descriptive names and descriptions fix it. Names carry meaning to the model. A description helps, but the model reads the schema at call time and short names give it nothing.
Which tool response is best for a 'list orders' call that matched 5,000 orders?
Show answer
Answer: The first page with a total count and a cursor for more. Paginate with a cursor and a total. Forcing a narrower query throws away a valid result, and a count alone gives the model nothing to work with.
When should a tool call require confirmation in a Claude Code or Agent SDK setup?
Show answer
Answer: When it writes, deletes, sends, or spends, until its accuracy is proven. Side effects need gates until accuracy is measured. Confirming every call, including reads, makes the gate noise that people stop reading.
What is the practical difference between exposing data as an MCP resource versus returning it from a tool call?
Show answer
Answer: Resources are addressable read-only data the client loads when needed; tools perform actions and return results. Resources are addressable read-only data the client loads on demand; tools perform actions and return their results. Neither is defined by payload type or caching.
A remote MCP server should identify which agent is calling. Why?
Show answer
Answer: Authorization, rate limits, and audit depend on knowing the caller. Identity underpins control. Model selection is the client's concern, and stdio is the transport a remote server does not use.
An agent misuses a tool because its description was written for developers. What changes?
Show answer
Answer: Rewrite it for the model: what it does, when to use it, when not to, parameter meanings, an example. Descriptions are model-facing, so rewrite the description itself. A system prompt section is further from the point of selection than the tool's own text.
How should a tool report partial success, such as 8 of 10 records updated?
Show answer
Answer: Return a structured result listing what succeeded and what failed, with reasons. Partial outcomes need detail. A blanket failure triggers a retry of the eight records that already succeeded.
Which MCP transport suits a server that many users hit concurrently from a web app?
Show answer
Answer: Streamable HTTP, which supports remote, concurrent clients. Remote, concurrent access is Streamable HTTP. stdio is for a local process owned by one client.
Why keep tool schemas strict rather than accepting free-form strings?
Show answer
Answer: Strict schemas let the model produce valid calls and let you validate before execution. Validation before action. The API accepts string parameters; the point is that strict types catch bad calls before they run.
Next
- Timed CCAR-F practice exam: 60 questions in 120 minutes, scored against the 720 pass mark.
- All CCAR-F practice questions with a domain filter.
- The CCAR-F exam page: format, weights, registration, study path.
Other CCAR-F domains
FAQ
How much of the CCAR-F exam is tool design and MCP?+
18% of the marks, per the published CCAR-F exam guide. The full domain list with weights is on the CCAR-F exam page.
Are these real CCAR-F exam questions?+
No. They are 35 original scenario questions written from the blueprint for this domain. Reproducing exam content would violate the candidate agreement.
How should I study tool design and MCP for CCAR-F?+
Read the domain notes on this page, answer the questions with explanations hidden, then take the timed CCAR-F practice exam and check the per-domain breakdown for this domain.



