Create Mcp Server
curl --request POST \
--url https://api.threetone.in/v1/convai/mcp-servers \
--header 'Content-Type: application/json' \
--data '
{
"config": {
"url": "<string>",
"name": "<string>",
"approval_policy": "require_approval_all",
"tool_approval_hashes": [
{
"tool_name": "<string>",
"tool_hash": "<string>",
"approval_policy": "requires_approval"
}
],
"transport": "SSE",
"secret_token": {
"secret_id": "<string>"
},
"request_headers": {},
"request_meta": {},
"auth_connection": {
"auth_connection_id": "<string>"
},
"description": "",
"pre_tool_speech": "auto",
"interruption_mode": "allow",
"tool_call_sound_behavior": "auto",
"execution_mode": "immediate",
"response_timeout_secs": 30,
"tool_config_overrides": [
{
"tool_name": "<string>",
"interruption_mode": "allow",
"response_timeout_secs": 152,
"assignments": [
{
"dynamic_variable": "user_name",
"preserve_native_type": false,
"sanitize": false,
"source": "response",
"value_path": "user.name"
}
],
"input_overrides": {},
"response_mocks": [
{
"mock_result": "<string>",
"parameter_conditions": [
{
"eval": {
"type": "llm",
"description": "<string>"
},
"path": "<string>"
}
],
"is_error": false
}
]
}
],
"disable_compression": false
}
}
'import requests
url = "https://api.threetone.in/v1/convai/mcp-servers"
payload = { "config": {
"url": "<string>",
"name": "<string>",
"approval_policy": "require_approval_all",
"tool_approval_hashes": [
{
"tool_name": "<string>",
"tool_hash": "<string>",
"approval_policy": "requires_approval"
}
],
"transport": "SSE",
"secret_token": { "secret_id": "<string>" },
"request_headers": {},
"request_meta": {},
"auth_connection": { "auth_connection_id": "<string>" },
"description": "",
"pre_tool_speech": "auto",
"interruption_mode": "allow",
"tool_call_sound_behavior": "auto",
"execution_mode": "immediate",
"response_timeout_secs": 30,
"tool_config_overrides": [
{
"tool_name": "<string>",
"interruption_mode": "allow",
"response_timeout_secs": 152,
"assignments": [
{
"dynamic_variable": "user_name",
"preserve_native_type": False,
"sanitize": False,
"source": "response",
"value_path": "user.name"
}
],
"input_overrides": {},
"response_mocks": [
{
"mock_result": "<string>",
"parameter_conditions": [
{
"eval": {
"type": "llm",
"description": "<string>"
},
"path": "<string>"
}
],
"is_error": False
}
]
}
],
"disable_compression": False
} }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
config: {
url: '<string>',
name: '<string>',
approval_policy: 'require_approval_all',
tool_approval_hashes: [
{
tool_name: '<string>',
tool_hash: '<string>',
approval_policy: 'requires_approval'
}
],
transport: 'SSE',
secret_token: {secret_id: '<string>'},
request_headers: {},
request_meta: {},
auth_connection: {auth_connection_id: '<string>'},
description: '',
pre_tool_speech: 'auto',
interruption_mode: 'allow',
tool_call_sound_behavior: 'auto',
execution_mode: 'immediate',
response_timeout_secs: 30,
tool_config_overrides: [
{
tool_name: '<string>',
interruption_mode: 'allow',
response_timeout_secs: 152,
assignments: [
{
dynamic_variable: 'user_name',
preserve_native_type: false,
sanitize: false,
source: 'response',
value_path: 'user.name'
}
],
input_overrides: {},
response_mocks: [
{
mock_result: '<string>',
parameter_conditions: [{eval: {type: 'llm', description: '<string>'}, path: '<string>'}],
is_error: false
}
]
}
],
disable_compression: false
}
})
};
fetch('https://api.threetone.in/v1/convai/mcp-servers', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "<string>",
"config": {
"url": "<string>",
"name": "<string>",
"approval_policy": "require_approval_all",
"tool_approval_hashes": [
{
"tool_name": "<string>",
"tool_hash": "<string>",
"approval_policy": "requires_approval"
}
],
"transport": "SSE",
"secret_token": {
"secret_id": "<string>"
},
"request_headers": {},
"request_meta": {},
"auth_connection": {
"auth_connection_id": "<string>"
},
"description": "",
"pre_tool_speech": "auto",
"interruption_mode": "allow",
"tool_call_sound": "typing",
"tool_call_sound_behavior": "auto",
"execution_mode": "immediate",
"response_timeout_secs": 30,
"tool_config_overrides": [
{
"tool_name": "<string>",
"pre_tool_speech": "auto",
"interruption_mode": "allow",
"tool_call_sound": "typing",
"tool_call_sound_behavior": "auto",
"execution_mode": "immediate",
"response_timeout_secs": 152,
"assignments": [
{
"dynamic_variable": "user_name",
"preserve_native_type": false,
"sanitize": false,
"source": "response",
"value_path": "user.name"
}
],
"input_overrides": {},
"response_mocks": [
{
"mock_result": "<string>",
"parameter_conditions": [
{
"eval": {
"type": "llm",
"description": "<string>"
},
"path": "<string>"
}
],
"is_error": false
}
]
}
],
"disable_compression": false
},
"metadata": {
"created_at": 123,
"owner_user_id": "<string>"
},
"access_info": {
"access_source": "creator",
"creator_email": "john.doe@example.com",
"creator_name": "John Doe",
"is_creator": true,
"role": "admin"
},
"dependent_agents": [
{
"id": "<string>",
"name": "<string>",
"created_at_unix_secs": 123,
"access_level": "admin",
"referenced_resource_ids": [
"<string>"
],
"type": "available"
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Agents Platform
Create Mcp Server
Create a new MCP server configuration in the workspace.
POST
/
v1
/
convai
/
mcp-servers
Create Mcp Server
curl --request POST \
--url https://api.threetone.in/v1/convai/mcp-servers \
--header 'Content-Type: application/json' \
--data '
{
"config": {
"url": "<string>",
"name": "<string>",
"approval_policy": "require_approval_all",
"tool_approval_hashes": [
{
"tool_name": "<string>",
"tool_hash": "<string>",
"approval_policy": "requires_approval"
}
],
"transport": "SSE",
"secret_token": {
"secret_id": "<string>"
},
"request_headers": {},
"request_meta": {},
"auth_connection": {
"auth_connection_id": "<string>"
},
"description": "",
"pre_tool_speech": "auto",
"interruption_mode": "allow",
"tool_call_sound_behavior": "auto",
"execution_mode": "immediate",
"response_timeout_secs": 30,
"tool_config_overrides": [
{
"tool_name": "<string>",
"interruption_mode": "allow",
"response_timeout_secs": 152,
"assignments": [
{
"dynamic_variable": "user_name",
"preserve_native_type": false,
"sanitize": false,
"source": "response",
"value_path": "user.name"
}
],
"input_overrides": {},
"response_mocks": [
{
"mock_result": "<string>",
"parameter_conditions": [
{
"eval": {
"type": "llm",
"description": "<string>"
},
"path": "<string>"
}
],
"is_error": false
}
]
}
],
"disable_compression": false
}
}
'import requests
url = "https://api.threetone.in/v1/convai/mcp-servers"
payload = { "config": {
"url": "<string>",
"name": "<string>",
"approval_policy": "require_approval_all",
"tool_approval_hashes": [
{
"tool_name": "<string>",
"tool_hash": "<string>",
"approval_policy": "requires_approval"
}
],
"transport": "SSE",
"secret_token": { "secret_id": "<string>" },
"request_headers": {},
"request_meta": {},
"auth_connection": { "auth_connection_id": "<string>" },
"description": "",
"pre_tool_speech": "auto",
"interruption_mode": "allow",
"tool_call_sound_behavior": "auto",
"execution_mode": "immediate",
"response_timeout_secs": 30,
"tool_config_overrides": [
{
"tool_name": "<string>",
"interruption_mode": "allow",
"response_timeout_secs": 152,
"assignments": [
{
"dynamic_variable": "user_name",
"preserve_native_type": False,
"sanitize": False,
"source": "response",
"value_path": "user.name"
}
],
"input_overrides": {},
"response_mocks": [
{
"mock_result": "<string>",
"parameter_conditions": [
{
"eval": {
"type": "llm",
"description": "<string>"
},
"path": "<string>"
}
],
"is_error": False
}
]
}
],
"disable_compression": False
} }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
config: {
url: '<string>',
name: '<string>',
approval_policy: 'require_approval_all',
tool_approval_hashes: [
{
tool_name: '<string>',
tool_hash: '<string>',
approval_policy: 'requires_approval'
}
],
transport: 'SSE',
secret_token: {secret_id: '<string>'},
request_headers: {},
request_meta: {},
auth_connection: {auth_connection_id: '<string>'},
description: '',
pre_tool_speech: 'auto',
interruption_mode: 'allow',
tool_call_sound_behavior: 'auto',
execution_mode: 'immediate',
response_timeout_secs: 30,
tool_config_overrides: [
{
tool_name: '<string>',
interruption_mode: 'allow',
response_timeout_secs: 152,
assignments: [
{
dynamic_variable: 'user_name',
preserve_native_type: false,
sanitize: false,
source: 'response',
value_path: 'user.name'
}
],
input_overrides: {},
response_mocks: [
{
mock_result: '<string>',
parameter_conditions: [{eval: {type: 'llm', description: '<string>'}, path: '<string>'}],
is_error: false
}
]
}
],
disable_compression: false
}
})
};
fetch('https://api.threetone.in/v1/convai/mcp-servers', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "<string>",
"config": {
"url": "<string>",
"name": "<string>",
"approval_policy": "require_approval_all",
"tool_approval_hashes": [
{
"tool_name": "<string>",
"tool_hash": "<string>",
"approval_policy": "requires_approval"
}
],
"transport": "SSE",
"secret_token": {
"secret_id": "<string>"
},
"request_headers": {},
"request_meta": {},
"auth_connection": {
"auth_connection_id": "<string>"
},
"description": "",
"pre_tool_speech": "auto",
"interruption_mode": "allow",
"tool_call_sound": "typing",
"tool_call_sound_behavior": "auto",
"execution_mode": "immediate",
"response_timeout_secs": 30,
"tool_config_overrides": [
{
"tool_name": "<string>",
"pre_tool_speech": "auto",
"interruption_mode": "allow",
"tool_call_sound": "typing",
"tool_call_sound_behavior": "auto",
"execution_mode": "immediate",
"response_timeout_secs": 152,
"assignments": [
{
"dynamic_variable": "user_name",
"preserve_native_type": false,
"sanitize": false,
"source": "response",
"value_path": "user.name"
}
],
"input_overrides": {},
"response_mocks": [
{
"mock_result": "<string>",
"parameter_conditions": [
{
"eval": {
"type": "llm",
"description": "<string>"
},
"path": "<string>"
}
],
"is_error": false
}
]
}
],
"disable_compression": false
},
"metadata": {
"created_at": 123,
"owner_user_id": "<string>"
},
"access_info": {
"access_source": "creator",
"creator_email": "john.doe@example.com",
"creator_name": "John Doe",
"is_creator": true,
"role": "admin"
},
"dependent_agents": [
{
"id": "<string>",
"name": "<string>",
"created_at_unix_secs": 123,
"access_level": "admin",
"referenced_resource_ids": [
"<string>"
],
"type": "available"
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Headers
Your API key for programmatic access. Send it in the x-api-key header; you can create and manage keys from the Developers page.
Body
application/json
Configuration for an MCP Server.
Configuration details for the MCP Server.
Show child attributes
Show child attributes
Response
Successful Response
Response model representing an MCP Server configuration.
Show child attributes
Show child attributes
The metadata of the MCP Server
Show child attributes
Show child attributes
The access information of the MCP Server
Show child attributes
Show child attributes
Example:
{ "access_source": "creator", "creator_email": "john.doe@example.com", "creator_name": "John Doe", "is_creator": true, "role": "admin" }
dependent_agents
(DependentAvailableAgentIdentifier · object | DependentUnknownAgentIdentifier · object)[]
List of agents that depend on this MCP Server.
- DependentAvailableAgentIdentifier
- DependentUnknownAgentIdentifier
Show child attributes
Show child attributes