Voiceflow bearer token
Create MCP server
curl --request POST \
--url https://realtime-api.voiceflow.com/v1/stable/mcp-server \
--header 'Authorization: Bearer <token>'
--header 'Content-Type: application/json' \
--data '{
"name": "<string>",
"description": null,
"url": [
"<string>"
],
"headers": [],
"specification": "2025-06-18"
}'const response = await fetch('https://realtime-api.voiceflow.com/v1/stable/mcp-server?projectID=<projectID>&environmentAlias=<environmentAlias>', {
method: 'POST',
headers: {
Authorization: 'Bearer <token>',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"name": "<string>",
"description": null,
"url": [
"<string>"
],
"headers": [],
"specification": "2025-06-18"
}),
});
const data = await response.json();import requests
response = requests.post(
'https://realtime-api.voiceflow.com/v1/stable/mcp-server?projectID=<projectID>&environmentAlias=<environmentAlias>',
headers={'Authorization': 'Bearer <token>'},
json={
"name": "<string>",
"description": None,
"url": [
"<string>"
],
"headers": [],
"specification": "2025-06-18"
},
)
data = response.json()vf mcp-server create --project-id <projectID> --environment-alias <environmentAlias> \
< body.json{
"mcpServer": {
"id": "<string>",
"url": [
"<string>"
],
"name": "<string>",
"image": "<string>",
"headers": [
{
"key": "<string>",
"value": "[redacted]"
}
],
"createdAt": "2026-09-10T00:00:00.000Z",
"updatedAt": "2026-09-10T00:00:00.000Z",
"description": "<string>",
"specification": "2025-03-26"
}
}Create MCP server
Adds a MCP server to the environment, a registered Model Context Protocol server whose tools an agent can call. The response carries the ID that later calls address it by.
POST
/v1/stable/mcp-server
Create MCP server
curl --request POST \
--url https://realtime-api.voiceflow.com/v1/stable/mcp-server \
--header 'Authorization: Bearer <token>'
--header 'Content-Type: application/json' \
--data '{
"name": "<string>",
"description": null,
"url": [
"<string>"
],
"headers": [],
"specification": "2025-06-18"
}'const response = await fetch('https://realtime-api.voiceflow.com/v1/stable/mcp-server?projectID=<projectID>&environmentAlias=<environmentAlias>', {
method: 'POST',
headers: {
Authorization: 'Bearer <token>',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"name": "<string>",
"description": null,
"url": [
"<string>"
],
"headers": [],
"specification": "2025-06-18"
}),
});
const data = await response.json();import requests
response = requests.post(
'https://realtime-api.voiceflow.com/v1/stable/mcp-server?projectID=<projectID>&environmentAlias=<environmentAlias>',
headers={'Authorization': 'Bearer <token>'},
json={
"name": "<string>",
"description": None,
"url": [
"<string>"
],
"headers": [],
"specification": "2025-06-18"
},
)
data = response.json()vf mcp-server create --project-id <projectID> --environment-alias <environmentAlias> \
< body.json{
"mcpServer": {
"id": "<string>",
"url": [
"<string>"
],
"name": "<string>",
"image": "<string>",
"headers": [
{
"key": "<string>",
"value": "[redacted]"
}
],
"createdAt": "2026-09-10T00:00:00.000Z",
"updatedAt": "2026-09-10T00:00:00.000Z",
"description": "<string>",
"specification": "2025-03-26"
}
}Authorizations
Query Parameters
Body
Show child attributes
Option 1
string
Option 2 · MarkupSpan
Show child attributes
Option 3 · MarkupToolReference
Show child attributes
Markup — see its attributes above
Response
201 - application/jsonCreates the connection to the MCP server and returns it with its generated ID, URL, and specification version. The tools the server exposes are read through the MCP tool endpoints.
Show child attributes
Was this page helpful?
Thanks for your feedback.