Skip to main content
POST
/
api
/
mcp-servers
curl -X POST "https://api.zudu.ai/api/mcp-servers" \
  -H "X-API-KEY: sk_Abc123Def456..." \
  -H "X-API-SECRET: s3cr3t_Xyz789..." \
  -d '{
    "config": {
      "url": "https://example.com/mcp-server",
      "name": "My MCP Server",
      "approval_policy": "auto_approve_all",
      "transport": "SSE",
      "description": "MCP server for customer support tools",
      "request_headers": {
        "Authorization": "Bearer token123"
      },
      "secret_token": {
        "secret_id": "secret_abc123"
      }
  }'
{
  "message": "MCP server created successfully",
  "status": "success",
  "error": null,
  "data": {
    "id": "mcp_abc123def456...",
    "organization_id": "org_1234567890",
    "server_url": "https://example.com/mcp-server",
    "server_name": "My MCP Server",
    "approval_policy": "auto_approve_all",
    "transport": "SSE",
    "description": "MCP server for customer support tools",
    "created_at": 1705320000000,
    "updated_at": 1705320000000
  }
Create a new MCP server with configuration including URL, name, approval policy, transport type, and optional settings.
curl -X POST "https://api.zudu.ai/api/mcp-servers" \
  -H "X-API-KEY: sk_Abc123Def456..." \
  -H "X-API-SECRET: s3cr3t_Xyz789..." \
  -d '{
    "config": {
      "url": "https://example.com/mcp-server",
      "name": "My MCP Server",
      "approval_policy": "auto_approve_all",
      "transport": "SSE",
      "description": "MCP server for customer support tools",
      "request_headers": {
        "Authorization": "Bearer token123"
      },
      "secret_token": {
        "secret_id": "secret_abc123"
      }
  }'
{
  "message": "MCP server created successfully",
  "status": "success",
  "error": null,
  "data": {
    "id": "mcp_abc123def456...",
    "organization_id": "org_1234567890",
    "server_url": "https://example.com/mcp-server",
    "server_name": "My MCP Server",
    "approval_policy": "auto_approve_all",
    "transport": "SSE",
    "description": "MCP server for customer support tools",
    "created_at": 1705320000000,
    "updated_at": 1705320000000
  }

Headers

X-API-KEY
string
required
Your API key (format: sk_...)
X-API-SECRET
string
required
Your API secret (format: s3cr3t_...)

Request Body

config
object
required
MCP server configuration object
config.url
string
required
MCP server URL (must be HTTP/HTTPS)
  • Maximum length: 1000 characters
  • Must start with http:// or https://
Example: "https://example.com/mcp-server"
config.name
string
required
Name for the MCP server
  • Maximum length: 255 characters
  • Must be unique within your organization
Example: "My MCP Server"
config.approval_policy
string
Approval policy for tool callsOptions:
  • auto_approve_all - Automatically approve all tool calls (default)
  • require_approval_all - Require approval for all tool calls
  • require_approval_per_tool - Require approval per tool
Default: auto_approve_all
config.transport
string
Transport type for MCP communicationOptions:
  • SSE - Server-Sent Events (default)
  • STREAMABLE_HTTP - HTTP-based streaming (recommended for Zapier and external services)
Default: SSE
config.description
string
Optional description of the MCP serverMaximum length: 5000 characters
config.request_headers
object
Custom HTTP headers to include in requests to the MCP serverExample:
{
  "Authorization": "Bearer token123",
  "X-Custom-Header": "value"
}
config.secret_token
object
Secret token configuration for authentication
  • secret_id: Secret identifier (max 255 characters)

Response Fields

id
string
Unique identifier for the MCP server (format: mcp_...)
organization_id
string
Organization ID the server belongs to
server_url
string
MCP server URL
server_name
string
Name of the MCP server
approval_policy
string
Current approval policy setting
transport
string
Transport type being used
created_at
number
Unix timestamp (milliseconds) when server was created
updated_at
number
Unix timestamp (milliseconds) of last update

Error Responses

error
string
Bad Request - Validation error
{
  "message": "Validation failed",
  "status": "error",
  "error": "URL must be a valid HTTP/HTTPS URL"
}
error
string
Conflict - MCP server name already exists
{
  "message": "MCP server name already exists",
  "status": "error",
  "error": "MCP server with name 'My MCP Server' already exists in organization"
}
error
string
Unauthorized - Missing or invalid API key/secret

Notes

  • MCP server names must be unique within your organization
  • URLs must be valid HTTP/HTTPS endpoints
  • The server ID is automatically generated in the format mcp_...
  • Multiple servers can use the same URL (uniqueness constraint removed)
  • Default approval policy is auto_approve_all if not specified
  • Default transport type is SSE if not specified