> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.vapi.ai/tools/static-variables-and-aliases/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.vapi.ai/_mcp/server. # Static variables and aliases > Inject server-controlled values into Vapi tool calls without the LLM, using static variables and aliases to chain data across calls deterministically. Vapi tools support two features that let you move data between tool calls deterministically, without relying on the LLM to interpret or forward values: * **Static variables (parameters)** inject fixed or template-resolved values into every tool call, regardless of what the LLM generates. * **Variable extraction (aliases)** pull specific fields out of a tool's JSON response and store them for use in subsequent tool calls. Combined, these features enable **deterministic tool chaining** -- Tool A fetches data and extracts variables, Tool B receives those variables automatically. The LLM orchestrates *when* tools run, but the data flow between them is fully controlled by you. The four pages in this section cover each mechanism in turn, then the failure modes that come up most often. ## In this section #### [How tool variables work](/tools/static-variables-and-aliases/how-variables-work) Understand the two parameters fields and the trust tiers that classify where a value came from. #### [Set static parameters](/tools/static-variables-and-aliases/static-parameters) Inject server-controlled values into every tool call without exposing them to the model. #### [Extract and chain values](/tools/static-variables-and-aliases/extract-and-chain) Pull fields out of a tool response with aliases and pass them to the next tool. #### [Troubleshoot tool variables](/tools/static-variables-and-aliases/troubleshooting) Diagnose the five common ways static parameters and aliases fail. ## Next steps Now that you understand static variables and aliases: * **[Passing data between assistants](/squads/passing-data-between-assistants):** Choose the right primitive for forwarding context across handoffs in a squad. * **[Function tools](/tools/custom-tools):** Learn how to create and configure Function tools. * **[Tool rejection plan](/tools/tool-rejection-plan):** Add conditions to prevent unintended tool calls. * **[API reference](/api-reference/tools/create):** See the complete tool creation API reference. > Inject server-controlled values into tool calls without LLM involvement, and chain values across tool calls deterministically ## Docs - [How tool variables work](https://docs.vapi.ai/tools/static-variables-and-aliases/how-variables-work.md): Compare a tool's function.parameters schema against its top-level parameters array, and classify every variable source with Vapi's three-tier trust model. - [Set static parameters](https://docs.vapi.ai/tools/static-variables-and-aliases/static-parameters.md): Add static parameters to API Request and Function tools, use them as a security boundary against prompt injection, and set Static Body Fields in the dashboard. - [Extract and chain values](https://docs.vapi.ai/tools/static-variables-and-aliases/extract-and-chain.md): Define a variableExtractionPlan with aliases, chain tools so one tool's output feeds the next deterministically, and forward trusted values across handoffs. - [Troubleshoot tool variables](https://docs.vapi.ai/tools/static-variables-and-aliases/troubleshooting.md): Fix static parameter and alias failures caused by trusted fields declared in function.parameters, values in body schema defaults, or system prompt passing.