Server tools
Connect your assistant to external data & systems.
Connect your assistant to external data & systems.
Tools enable your assistant to connect to external data and systems. You can define a set of tools that the assistant has access to, and the assistant will use them where appropriate based on the conversation.
Many applications require assistants to call external APIs to get real-time information. Tools give your assistant the ability to make external function calls to third party apps so you can get real-time information.
Here are a few examples where tools can be useful:
To interact with Application UIs or trigger client-side events use client tools instead.
ElevenLabs agents can be equipped with tools to interact with external APIs. Unlike traditional requests, the assistant generates query, body, and path parameters dynamically based on the conversation and parameter descriptions you provide.
All tool configurations and parameter descriptions help the assistant determine when and how to use these tools. To orchestrate tool usage effectively, update the assistant’s system prompt to specify the sequence and logic for making these calls. This includes:
Define a high-level Name and Description to describe the tool’s purpose. This helps the LLM understand the tool and know when to call it.
If the API requires path parameters, include variables in the URL path by wrapping them in curly
braces {}, for example: /api/resource/{id} where id is a path parameter.

In this guide, we’ll create a weather assistant that can provide real-time weather information for any location. The assistant will use its geographic knowledge to convert location names into coordinates and fetch accurate weather data.
The weather tool sends GET requests to https://api.open-meteo.com/v1/forecast with latitude and longitude as path parameters supplied by the LLM.
On the Agent section of your agent settings page, choose Add Tool. Select Webhook as the Tool Type, then configure the weather API integration with these values:
Add two path parameters with LLM Prompt value type:
An API key is not required for this tool. If one is required, this should be passed in the headers and stored as a secret.
Configure your assistant to handle weather queries intelligently with this system prompt:
Test your assistant by asking about the weather in different locations. The assistant should handle specific locations (“What’s the weather in Tokyo?”) and ask for clarification after general queries (“How’s the weather looking today?”).
ElevenLabs Agents supports multiple authentication methods to securely connect your tools with external APIs. Authentication methods are configured in your agent settings and then connected to individual tools as needed.

Once configured, you can connect these authentication methods to your tools and manage custom headers in the tool configuration:

Automatically handles the OAuth2 client credentials flow. Configure with your client ID, client secret, and token URL (e.g., https://api.example.com/oauth/token). Optionally specify scopes as comma-separated values and additional JSON parameters. Set up by clicking Add Auth on Workspace Auth Connections on the Agent section of your agent settings page.
Uses JSON Web Token authentication for OAuth 2.0 JWT Bearer flow. Requires your JWT signing secret, token URL, and algorithm (default: HS256). Configure JWT claims including issuer, audience, and subject. Optionally set key ID, expiration (default: 3600 seconds), scopes, and extra parameters. Set up by clicking Add Auth on Workspace Auth Connections on the Agent section of your agent settings page.
Simple username and password authentication for APIs that support HTTP Basic Auth. Set up by clicking Add Auth on Workspace Auth Connections in the Agent section of your agent settings page.
Token-based authentication that adds your bearer token value to the request header. Configure by adding a header to the tool configuration, selecting Secret as the header type, and clicking Create New Secret.
Add custom authentication headers with any name and value for proprietary authentication methods. Configure by adding a header to the tool configuration and specifying its name and value.
If you find the assistant does not make calls to the correct tools, you may need to update your tool names and descriptions so the assistant more clearly understands when it should select each tool. Avoid using abbreviations or acronyms to shorten tool and argument names.
You can also include detailed descriptions for when a tool should be called. For complex tools, you should include descriptions for each of the arguments to help the assistant know what it needs to ask the user to collect that argument.
Use clear and descriptive names for tool parameters. If applicable, specify the expected format for a parameter in the description (e.g., YYYY-mm-dd or dd/mm/yy for a date).
Consider providing additional information about how and when to call tools in your assistant’s system prompt
Providing clear instructions in your system prompt can significantly improve the assistant’s tool calling accuracy. For example, guide the assistant with instructions like the following:
Provide context for complex scenarios. For example:
When using tools, we recommend picking high intelligence models like GPT 5.2, Gemini-2.5-Flash, or Claude Sonnet 4.5 and avoiding Gemini-2.0-Flash.
It’s important to note that the choice of LLM matters to the success of function calls. Some LLMs can struggle with extracting the relevant parameters from the conversation.
You can configure ambient audio to play during tool execution to enhance the user experience. Learn more about Tool Call Sounds.