Domain 2 of the Claude Certified Architect exam is Tools & MCP. If you haven’t already, start with Domain 1: Agentic Architecture before diving into this one. There are built-in tools, such as fetch and file access, as well as other custom tools that can be used, such as scripts or agent-framework-native tools. While it’s possible to create a tool that calls an external system without relying on MCP, using MCP to access external systems is generally the preferred method.
Structure
All tools have a consistent structure – name, description, input schema, and optionally, input examples. Input schema defines the JSON structure of the input, such as field types, and which fields are required, as well as other validation rules. Surprisingly, the name is less important than the description. When a model reaches for a tool, it’s the description that it uses to select the appropriate tool. As far as the input schema, field names are also very important. They need to be clearly named so the model can infer their purpose – user_id instead of just id, for example.
There’s a common theme throughout this course that you should avoid ambiguity whenever possible, and field names are no exception. Stay away from abbreviations here. We’re not working with a tight character budget. It’s not infinite, but the maximum length for a tool name is 64 characters including letters, numerals, hyphens, and underscores.
When it comes to field types, there are quite a few to choose from:
- string, number, boolean – basic scalar types
- array, object – structured types
- enum – a constraint for a string or number where only a fixed set of values are allowed, useful for reigning in ambiguity (e.g., low/medium/high instead of a numeric value)
Other constraints are format, min/max, required, and additionalProperties (whether unspecified fields are allowed in an object). Surprisingly, defining a tool schema alone doesn’t guarantee that a model will respect it unless you enable strict tool mode on the tool.
Errors
Normally, we think of errors as something that gets logged for someone to analyze and troubleshoot later, but with tool errors, these ideally can be acted on by the model immediately. When a tool call fails, the model can:
- Retry with additional context
- Escalate to the user
- Perform some other action based on what’s known so far
Tool Scoping
There are multiple reasons why you want to be judicious with the tools available for a given agent. First, each tool consumes part of the context window, which can dilute the actual content the model needs to perform its task. Additionally, if there are multiple tools with a similar purpose, you can get inconsistent tool calls. All of this makes issues harder to diagnose. One approach that alleviates some of this is tool search. Rather than loading all available tools into the context window, you can defer loading tools and only load the tool search, so the model can search for the appropriate tool at any given moment. In any case, it’s important to keep the catalog of available tools as lean as possible, avoiding tool duplicates.
MCP Servers
An MCP server is a standardized API server that can be used interchangeably with any LLM. It exposes available tools and resources in a standard format without requiring service-specific integration code. When the MCP client from the host application – which could be something like Claude Code or even a harness like Hermes – initializes the connection with the MCP server, the server announces its capabilities: tools, resources, or prompt templates. The model can then decide which of these to request or invoke.
Tools have been described already. Resources are just like standard API call results – readable data or queryable content. Prompt templates are named, reusable message templates: the server fills in the template with supplied arguments and returns a fully-formed set of messages, which the host application inserts into the conversation. The model doesn’t distinguish this from any other input – it simply generates a response based on what it’s given. The server never executes anything on the model itself; it only assembles and returns the prompt content.
While MCP servers are normally used for contacting external systems, they can also be used for systems on the same machine through STDIO instead of the typical Streamable HTTP Transport.
Built-In Tools
Claude ships with a number of built-in tools, including web search, code execution, text editing, shell commands, and even local computer access to control the mouse, keyboard, and take screenshots.
Next up: Domain 3, Claude Code.