Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion fern/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1108,7 +1108,7 @@ redirects:
- source: /tools/code-tool
destination: /tools/api-request
- source: /tools/make
destination: /tools/mcp
destination: /tools/integrations/make
- source: /security-and-privacy/retrieve-call-artifacts
destination: /assistants/retrieve-call-artifacts
- source: /developer-documentation
Expand Down
26 changes: 13 additions & 13 deletions fern/tools/custom-tools.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -206,19 +206,19 @@ When your server receives a tool call request from Vapi, it will be in the follo
}
}
},
"description": "Retrieves the current weather for a specified location"
},
"server": {
"url": "https://api.openweathermap.org/data/2.5/weather"
},
"messages": [],
"toolCall": {
"id": "toolu_01DTPAzUm5Gk3zxrpJ969oMF",
"type": "function",
"function": {
"name": "get_weather",
"parameters": {
"location": "San Francisco"
"description": "Retrieves the current weather for a specified location",
"server": {
"url": "https://api.openweathermap.org/data/2.5/weather"
},
"messages": [],
"toolCall": {
"id": "toolu_01DTPAzUm5Gk3zxrpJ969oMF",
"type": "function",
"function": {
"name": "get_weather",
"parameters": {
"location": "San Francisco"
}
}
}
}
Expand Down
6 changes: 3 additions & 3 deletions fern/tools/integrations/make.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Connect a Vapi assistant to Make to invoke scenarios that coordinate actions and
| --- | --- | --- |
| An ordinary webhook that accepts and returns JSON | **[API Request tool](/tools/api-request)** | Vapi sends the configured HTTP request directly and gives the JSON response to the assistant. This is the recommended default. |
| A curated tool surface that Make owns and Vapi discovers at runtime | **[MCP tool](/tools/mcp)** | Make exposes eligible scenarios as MCP tools and Vapi imports the tools exposed by that server. |
| Vapi's `tool-calls` envelope or call, assistant, and artifact context | **[Function tool](/tools/custom-tools)** | Vapi sends its webhook payload to the scenario, which must return the expected Function-tool response. |
| Vapi's `tool-calls` envelope or call, assistant, and artifact context | **[Function tool](/tools/custom-tools)** | Vapi sends its webhook payload to the scenario, which must return the expected Function tool response. |
| Asynchronous execution or server-driven [Live Call Control](/calls/call-features) | **[Function tool](/tools/custom-tools)** | Function tools support asynchronous execution, and their webhook payload includes the call context needed for live control. |

## API Request
Expand All @@ -24,15 +24,15 @@ This pattern has the smallest integration contract and is the best starting poin

## MCP

Use MCP when Make should define the tool surface. Make exposes active, on-demand scenarios as tools. Vapi imports every tool exposed by the configured MCP server; Vapi does not apply a separate per-tool filter.
Use an MCP tool when Make should define the tool surface. Make exposes active, on-demand scenarios as tools. Vapi imports every tool exposed by the configured MCP server; Vapi does not apply a separate per-tool filter.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Use an MCP tool when Make should define the tool surface. Make exposes active, on-demand scenarios as tools. Vapi imports every tool exposed by the configured MCP server; Vapi does not apply a separate per-tool filter.
Use Make MCP when Make should define the tool surface. Make exposes active, on-demand scenarios as tools. Vapi imports every tool exposed by the configured MCP server; Vapi does not apply a separate per-tool filter.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

added some clarity bc this block is talking about the make mcp not vapi mcp


Configure the Make MCP token with least-privilege scopes. Use Make's [scenarios as tools access control](https://developers.make.com/mcp-server/connect-using-mcp-token/scenarios-as-tools-access-control) to expose only the scenarios the assistant needs. See [Make MCP Server](https://developers.make.com/mcp-server) for Make's current connection documentation.

## Function

Use a Function tool when the Make scenario must receive Vapi's `tool-calls` message, including call, assistant, or artifact context. This is also the appropriate pattern for asynchronous execution or live-call actions.

The scenario must parse Vapi's webhook payload and return the [Function tool response](/tools/custom-tools#server-response-format-providing-results-and-context) for synchronous calls. This extra protocol work is unnecessary for an ordinary JSON webhook, so prefer API Request in that case.
The scenario must parse Vapi's webhook payload and return the [Function tool response](/tools/custom-tools#server-response-format-providing-results-and-context) for synchronous calls. This extra protocol work is unnecessary for an ordinary JSON webhook, so prefer an API Request tool in that case.

## Runnable examples

Expand Down
8 changes: 4 additions & 4 deletions fern/tools/static-variables-and-aliases/static-parameters.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ For Function tools, static parameters merge into the function call arguments sen
}
},
"server": {
"url": "https://my-server.com/webhook"
"url": "https://my-server.example.com/webhook"
},
"parameters": [
{ "key": "api_version", "value": "v2" },
Expand All @@ -99,7 +99,7 @@ For Function tools, static parameters merge into the function call arguments sen
}
```

When the LLM calls `lookup_user` with `{ "phone": "+15551234567" }`, your webhook receives `{ "phone": "+15551234567", "api_version": "v2", "caller_number": "+15559876543" }` -- the static parameters are merged in.
When the LLM calls `lookup_user` with `{ "phone": "+14155550100" }`, your webhook receives `{ "phone": "+14155550100", "api_version": "v2", "caller_number": "+14155550101" }` -- the static parameters are merged in.

<Note>
Static parameters override LLM-generated arguments with the same key. If the LLM generates `"source": "chat"` and your static parameters include `"source": "vapi-call"`, the webhook receives `"source": "vapi-call"`.
Expand Down Expand Up @@ -151,8 +151,8 @@ Your tool server receives:
{
"name": "Steffen",
"email": "steffen@example.com",
"caller_number": "+15551234567",
"called_number": "+18005551212",
"caller_number": "+14155550101",
"called_number": "+14155550102",
"call_id": "..."
}
```
Expand Down
Loading