MCP tool messages and results
This page covers what happens around each MCP tool call: what the caller hears while it runs, and how the server’s result reaches the model. To create a tool first, see MCP tools.
Spoken messages during tool calls
While a tool runs, Vapi can speak short messages to the caller. If you don’t configure any, Vapi says a short default phrase, such as “Give me a moment,” before each tool call.
To set your own messages:
messagesapplies to every tool from the server. In the Dashboard, set these under Messages on the MCP tool.toolMessagessets messages for individual tools by the tool’s name on the server, without the prefix. Tools you don’t list usemessages. Per-tool messages are API only.
Each message has one of these types:
An empty messages list removes your configured messages, but the default phrase still plays before the tool call. To replace the default phrase, set a request-start message.
For more information about message types, see Dynamic tool messages.
How results reach the model
Your server’s result reaches the model as follows:
content: the model receives the result’scontentarray as JSON text, for example[{"type":"text","text":"Order 1042 shipped on May 3."}].structuredContent: not passed to the model. Put anything the model needs incontent.isError: when the result hasisError: true, Vapi marks the call as failed and plays yourrequest-failedmessage. The model gets the samecontenttext with no error flag, so write the error as a clear sentence the model can explain to the caller.- Size: Vapi doesn’t shorten results. Large results use model context and can slow or break the conversation, so return only what the model needs.
For example, your server returns this response to a tools/call request:
The model receives only the content array as the tool result:
For the full result format, see Tool result in the MCP specification.
Next steps
- Configure MCP tools: set authentication, headers, and transport.
- Troubleshoot MCP tools: fix common problems.