Careeroza
Tools, Resources and Prompts
Three Things a Server Can Offer
| Primitive | Who decides to use it | Example |
|---|---|---|
| Tools | the model (like function calling) | get_order_status(order_id), create_ticket(...) |
| Resources | the app or user attaches them as context | policy://returns, a file, a database row |
| Prompts | the user picks them (often as slash commands) | "/support-reply" template with a customer message argument |
What a Tool Listing Looks Like
{
"tools": [
{
"name": "get_order_status",
"description": "Get the delivery status of a ShopEase order. Use when the customer asks where an order is.",
"inputSchema": {
"type": "object",
"properties": { "order_id": { "type": "string", "description": "Order ID like SE1042" } },
"required": ["order_id"]
}
}
]
}The host converts each MCP tool into a normal tool definition for the model (inputSchema becomes input_schema).
Tip
Tip: Write tool descriptions for the model: say when to call the tool, not only what it does. Good descriptions matter more than clever code.