← Back to Dashboard
1. Server Initialization2. Defining Tool Schemas3. Tool Execution & Errors
Defining Tool Schemas
Tools Give AI Hands
Tools are functions the AI can call to fetch data or mutate state. They are the most powerful part of MCP.
Registering a Tool with Zod
The TypeScript SDK highly recommends using the zod library for argument validation.
import { z } from "zod";
server.tool(
"calculate_tax",
"Calculate sales tax for a given purchase amount",
{
amount: z.number().describe("The total purchase amount"),
param_state: z.string().describe("Two-letter state code")
},
async ({ amount, param_state }) => {
return { content: [{ type: "text", text: `Tax is high in ${param_state}` }] };
}
);
🎯 Pro Tip: The LLM reads the description of the tool and the descriptions of every parameter. The clearer your Zod descriptions, the better the AI performs!
🧪 Knowledge Check
Press 1-4 to select1 of 3
What are MCP Tools used for?
Compressing text data
Allowing the AI to fetch dynamic data or mutate external state
Styling user interfaces
Encrypting database passwords