curl --request POST \
--url https://api.blaxel.ai/v0/functions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"metadata": {
"name": "my-resource",
"displayName": "My Resource",
"externalId": "my-session-123",
"labels": {}
},
"spec": {
"enabled": true,
"integrationConnections": [
"<string>"
],
"policies": [
"<string>"
],
"public": false,
"region": "us-pdx-1",
"revision": {
"active": "rev-abc123",
"canary": "<string>",
"canaryPercent": 10,
"stickySessionTtl": 0,
"traffic": 100
},
"runtime": {
"envs": [
{
"name": "MY_ENV_VAR",
"secret": true,
"value": "my-value"
}
],
"generation": "mk3",
"image": "<string>",
"maxScale": 10,
"memory": 2048,
"minScale": 0,
"ports": [
{
"target": 8080,
"name": "http",
"protocol": "HTTP"
}
],
"transport": "http-stream"
},
"triggers": [
{
"configuration": {
"authenticationType": "blaxel",
"callbackUrl": "https://myapp.com/webhook",
"path": "/invoke",
"retry": 3,
"schedule": "0 * * * *",
"tasks": [
{}
],
"timeout": 300
},
"enabled": true,
"id": "trigger-1",
"type": "http"
}
]
}
}
'import requests
url = "https://api.blaxel.ai/v0/functions"
payload = {
"metadata": {
"name": "my-resource",
"displayName": "My Resource",
"externalId": "my-session-123",
"labels": {}
},
"spec": {
"enabled": True,
"integrationConnections": ["<string>"],
"policies": ["<string>"],
"public": False,
"region": "us-pdx-1",
"revision": {
"active": "rev-abc123",
"canary": "<string>",
"canaryPercent": 10,
"stickySessionTtl": 0,
"traffic": 100
},
"runtime": {
"envs": [
{
"name": "MY_ENV_VAR",
"secret": True,
"value": "my-value"
}
],
"generation": "mk3",
"image": "<string>",
"maxScale": 10,
"memory": 2048,
"minScale": 0,
"ports": [
{
"target": 8080,
"name": "http",
"protocol": "HTTP"
}
],
"transport": "http-stream"
},
"triggers": [
{
"configuration": {
"authenticationType": "blaxel",
"callbackUrl": "https://myapp.com/webhook",
"path": "/invoke",
"retry": 3,
"schedule": "0 * * * *",
"tasks": [{}],
"timeout": 300
},
"enabled": True,
"id": "trigger-1",
"type": "http"
}
]
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
metadata: {
name: 'my-resource',
displayName: 'My Resource',
externalId: 'my-session-123',
labels: {}
},
spec: {
enabled: true,
integrationConnections: ['<string>'],
policies: ['<string>'],
public: false,
region: 'us-pdx-1',
revision: {
active: 'rev-abc123',
canary: '<string>',
canaryPercent: 10,
stickySessionTtl: 0,
traffic: 100
},
runtime: {
envs: [{name: 'MY_ENV_VAR', secret: true, value: 'my-value'}],
generation: 'mk3',
image: '<string>',
maxScale: 10,
memory: 2048,
minScale: 0,
ports: [{target: 8080, name: 'http', protocol: 'HTTP'}],
transport: 'http-stream'
},
triggers: [
{
configuration: {
authenticationType: 'blaxel',
callbackUrl: 'https://myapp.com/webhook',
path: '/invoke',
retry: 3,
schedule: '0 * * * *',
tasks: [{}],
timeout: 300
},
enabled: true,
id: 'trigger-1',
type: 'http'
}
]
}
})
};
fetch('https://api.blaxel.ai/v0/functions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.blaxel.ai/v0/functions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'metadata' => [
'name' => 'my-resource',
'displayName' => 'My Resource',
'externalId' => 'my-session-123',
'labels' => [
]
],
'spec' => [
'enabled' => true,
'integrationConnections' => [
'<string>'
],
'policies' => [
'<string>'
],
'public' => false,
'region' => 'us-pdx-1',
'revision' => [
'active' => 'rev-abc123',
'canary' => '<string>',
'canaryPercent' => 10,
'stickySessionTtl' => 0,
'traffic' => 100
],
'runtime' => [
'envs' => [
[
'name' => 'MY_ENV_VAR',
'secret' => true,
'value' => 'my-value'
]
],
'generation' => 'mk3',
'image' => '<string>',
'maxScale' => 10,
'memory' => 2048,
'minScale' => 0,
'ports' => [
[
'target' => 8080,
'name' => 'http',
'protocol' => 'HTTP'
]
],
'transport' => 'http-stream'
],
'triggers' => [
[
'configuration' => [
'authenticationType' => 'blaxel',
'callbackUrl' => 'https://myapp.com/webhook',
'path' => '/invoke',
'retry' => 3,
'schedule' => '0 * * * *',
'tasks' => [
[
]
],
'timeout' => 300
],
'enabled' => true,
'id' => 'trigger-1',
'type' => 'http'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.blaxel.ai/v0/functions"
payload := strings.NewReader("{\n \"metadata\": {\n \"name\": \"my-resource\",\n \"displayName\": \"My Resource\",\n \"externalId\": \"my-session-123\",\n \"labels\": {}\n },\n \"spec\": {\n \"enabled\": true,\n \"integrationConnections\": [\n \"<string>\"\n ],\n \"policies\": [\n \"<string>\"\n ],\n \"public\": false,\n \"region\": \"us-pdx-1\",\n \"revision\": {\n \"active\": \"rev-abc123\",\n \"canary\": \"<string>\",\n \"canaryPercent\": 10,\n \"stickySessionTtl\": 0,\n \"traffic\": 100\n },\n \"runtime\": {\n \"envs\": [\n {\n \"name\": \"MY_ENV_VAR\",\n \"secret\": true,\n \"value\": \"my-value\"\n }\n ],\n \"generation\": \"mk3\",\n \"image\": \"<string>\",\n \"maxScale\": 10,\n \"memory\": 2048,\n \"minScale\": 0,\n \"ports\": [\n {\n \"target\": 8080,\n \"name\": \"http\",\n \"protocol\": \"HTTP\"\n }\n ],\n \"transport\": \"http-stream\"\n },\n \"triggers\": [\n {\n \"configuration\": {\n \"authenticationType\": \"blaxel\",\n \"callbackUrl\": \"https://myapp.com/webhook\",\n \"path\": \"/invoke\",\n \"retry\": 3,\n \"schedule\": \"0 * * * *\",\n \"tasks\": [\n {}\n ],\n \"timeout\": 300\n },\n \"enabled\": true,\n \"id\": \"trigger-1\",\n \"type\": \"http\"\n }\n ]\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.blaxel.ai/v0/functions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"metadata\": {\n \"name\": \"my-resource\",\n \"displayName\": \"My Resource\",\n \"externalId\": \"my-session-123\",\n \"labels\": {}\n },\n \"spec\": {\n \"enabled\": true,\n \"integrationConnections\": [\n \"<string>\"\n ],\n \"policies\": [\n \"<string>\"\n ],\n \"public\": false,\n \"region\": \"us-pdx-1\",\n \"revision\": {\n \"active\": \"rev-abc123\",\n \"canary\": \"<string>\",\n \"canaryPercent\": 10,\n \"stickySessionTtl\": 0,\n \"traffic\": 100\n },\n \"runtime\": {\n \"envs\": [\n {\n \"name\": \"MY_ENV_VAR\",\n \"secret\": true,\n \"value\": \"my-value\"\n }\n ],\n \"generation\": \"mk3\",\n \"image\": \"<string>\",\n \"maxScale\": 10,\n \"memory\": 2048,\n \"minScale\": 0,\n \"ports\": [\n {\n \"target\": 8080,\n \"name\": \"http\",\n \"protocol\": \"HTTP\"\n }\n ],\n \"transport\": \"http-stream\"\n },\n \"triggers\": [\n {\n \"configuration\": {\n \"authenticationType\": \"blaxel\",\n \"callbackUrl\": \"https://myapp.com/webhook\",\n \"path\": \"/invoke\",\n \"retry\": 3,\n \"schedule\": \"0 * * * *\",\n \"tasks\": [\n {}\n ],\n \"timeout\": 300\n },\n \"enabled\": true,\n \"id\": \"trigger-1\",\n \"type\": \"http\"\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.blaxel.ai/v0/functions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"metadata\": {\n \"name\": \"my-resource\",\n \"displayName\": \"My Resource\",\n \"externalId\": \"my-session-123\",\n \"labels\": {}\n },\n \"spec\": {\n \"enabled\": true,\n \"integrationConnections\": [\n \"<string>\"\n ],\n \"policies\": [\n \"<string>\"\n ],\n \"public\": false,\n \"region\": \"us-pdx-1\",\n \"revision\": {\n \"active\": \"rev-abc123\",\n \"canary\": \"<string>\",\n \"canaryPercent\": 10,\n \"stickySessionTtl\": 0,\n \"traffic\": 100\n },\n \"runtime\": {\n \"envs\": [\n {\n \"name\": \"MY_ENV_VAR\",\n \"secret\": true,\n \"value\": \"my-value\"\n }\n ],\n \"generation\": \"mk3\",\n \"image\": \"<string>\",\n \"maxScale\": 10,\n \"memory\": 2048,\n \"minScale\": 0,\n \"ports\": [\n {\n \"target\": 8080,\n \"name\": \"http\",\n \"protocol\": \"HTTP\"\n }\n ],\n \"transport\": \"http-stream\"\n },\n \"triggers\": [\n {\n \"configuration\": {\n \"authenticationType\": \"blaxel\",\n \"callbackUrl\": \"https://myapp.com/webhook\",\n \"path\": \"/invoke\",\n \"retry\": 3,\n \"schedule\": \"0 * * * *\",\n \"tasks\": [\n {}\n ],\n \"timeout\": 300\n },\n \"enabled\": true,\n \"id\": \"trigger-1\",\n \"type\": \"http\"\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"metadata": {
"name": "my-resource",
"createdAt": "<string>",
"updatedAt": "<string>",
"createdBy": "<string>",
"updatedBy": "<string>",
"displayName": "My Resource",
"externalId": "my-session-123",
"labels": {},
"plan": "<string>",
"url": "<string>",
"workspace": "<string>"
},
"spec": {
"enabled": true,
"integrationConnections": [
"<string>"
],
"policies": [
"<string>"
],
"public": false,
"region": "us-pdx-1",
"revision": {
"active": "rev-abc123",
"canary": "<string>",
"canaryPercent": 10,
"stickySessionTtl": 0,
"traffic": 100
},
"runtime": {
"envs": [
{
"name": "MY_ENV_VAR",
"secret": true,
"value": "my-value"
}
],
"generation": "mk3",
"image": "<string>",
"maxScale": 10,
"memory": 2048,
"minScale": 0,
"ports": [
{
"target": 8080,
"name": "http",
"protocol": "HTTP"
}
],
"transport": "http-stream"
},
"triggers": [
{
"configuration": {
"authenticationType": "blaxel",
"callbackSecret": "<string>",
"callbackUrl": "https://myapp.com/webhook",
"path": "/invoke",
"retry": 3,
"schedule": "0 * * * *",
"tasks": [
{}
],
"timeout": 300
},
"enabled": true,
"id": "trigger-1",
"type": "http"
}
]
},
"events": [
{
"canaryRevision": "<string>",
"message": "Deployment successful",
"revision": "rev-abc123",
"status": "DEPLOYED",
"time": "2025-01-15T10:30:00Z",
"type": "deployment"
}
]
}{
"error": "Resource already exists",
"code": 409,
"message": "Invalid request body"
}{
"error": "Resource already exists",
"code": 409,
"message": "Invalid request body"
}{
"error": "Resource already exists",
"code": 409,
"message": "Invalid request body"
}{
"error": "Resource already exists",
"code": 409,
"message": "Invalid request body"
}{
"error": "Resource already exists",
"code": 409,
"message": "Invalid request body"
}Create MCP server
Creates a new MCP server function deployment. The function will expose tools via the Model Context Protocol that can be used by AI agents. Supports streamable HTTP transport.
curl --request POST \
--url https://api.blaxel.ai/v0/functions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"metadata": {
"name": "my-resource",
"displayName": "My Resource",
"externalId": "my-session-123",
"labels": {}
},
"spec": {
"enabled": true,
"integrationConnections": [
"<string>"
],
"policies": [
"<string>"
],
"public": false,
"region": "us-pdx-1",
"revision": {
"active": "rev-abc123",
"canary": "<string>",
"canaryPercent": 10,
"stickySessionTtl": 0,
"traffic": 100
},
"runtime": {
"envs": [
{
"name": "MY_ENV_VAR",
"secret": true,
"value": "my-value"
}
],
"generation": "mk3",
"image": "<string>",
"maxScale": 10,
"memory": 2048,
"minScale": 0,
"ports": [
{
"target": 8080,
"name": "http",
"protocol": "HTTP"
}
],
"transport": "http-stream"
},
"triggers": [
{
"configuration": {
"authenticationType": "blaxel",
"callbackUrl": "https://myapp.com/webhook",
"path": "/invoke",
"retry": 3,
"schedule": "0 * * * *",
"tasks": [
{}
],
"timeout": 300
},
"enabled": true,
"id": "trigger-1",
"type": "http"
}
]
}
}
'import requests
url = "https://api.blaxel.ai/v0/functions"
payload = {
"metadata": {
"name": "my-resource",
"displayName": "My Resource",
"externalId": "my-session-123",
"labels": {}
},
"spec": {
"enabled": True,
"integrationConnections": ["<string>"],
"policies": ["<string>"],
"public": False,
"region": "us-pdx-1",
"revision": {
"active": "rev-abc123",
"canary": "<string>",
"canaryPercent": 10,
"stickySessionTtl": 0,
"traffic": 100
},
"runtime": {
"envs": [
{
"name": "MY_ENV_VAR",
"secret": True,
"value": "my-value"
}
],
"generation": "mk3",
"image": "<string>",
"maxScale": 10,
"memory": 2048,
"minScale": 0,
"ports": [
{
"target": 8080,
"name": "http",
"protocol": "HTTP"
}
],
"transport": "http-stream"
},
"triggers": [
{
"configuration": {
"authenticationType": "blaxel",
"callbackUrl": "https://myapp.com/webhook",
"path": "/invoke",
"retry": 3,
"schedule": "0 * * * *",
"tasks": [{}],
"timeout": 300
},
"enabled": True,
"id": "trigger-1",
"type": "http"
}
]
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
metadata: {
name: 'my-resource',
displayName: 'My Resource',
externalId: 'my-session-123',
labels: {}
},
spec: {
enabled: true,
integrationConnections: ['<string>'],
policies: ['<string>'],
public: false,
region: 'us-pdx-1',
revision: {
active: 'rev-abc123',
canary: '<string>',
canaryPercent: 10,
stickySessionTtl: 0,
traffic: 100
},
runtime: {
envs: [{name: 'MY_ENV_VAR', secret: true, value: 'my-value'}],
generation: 'mk3',
image: '<string>',
maxScale: 10,
memory: 2048,
minScale: 0,
ports: [{target: 8080, name: 'http', protocol: 'HTTP'}],
transport: 'http-stream'
},
triggers: [
{
configuration: {
authenticationType: 'blaxel',
callbackUrl: 'https://myapp.com/webhook',
path: '/invoke',
retry: 3,
schedule: '0 * * * *',
tasks: [{}],
timeout: 300
},
enabled: true,
id: 'trigger-1',
type: 'http'
}
]
}
})
};
fetch('https://api.blaxel.ai/v0/functions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.blaxel.ai/v0/functions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'metadata' => [
'name' => 'my-resource',
'displayName' => 'My Resource',
'externalId' => 'my-session-123',
'labels' => [
]
],
'spec' => [
'enabled' => true,
'integrationConnections' => [
'<string>'
],
'policies' => [
'<string>'
],
'public' => false,
'region' => 'us-pdx-1',
'revision' => [
'active' => 'rev-abc123',
'canary' => '<string>',
'canaryPercent' => 10,
'stickySessionTtl' => 0,
'traffic' => 100
],
'runtime' => [
'envs' => [
[
'name' => 'MY_ENV_VAR',
'secret' => true,
'value' => 'my-value'
]
],
'generation' => 'mk3',
'image' => '<string>',
'maxScale' => 10,
'memory' => 2048,
'minScale' => 0,
'ports' => [
[
'target' => 8080,
'name' => 'http',
'protocol' => 'HTTP'
]
],
'transport' => 'http-stream'
],
'triggers' => [
[
'configuration' => [
'authenticationType' => 'blaxel',
'callbackUrl' => 'https://myapp.com/webhook',
'path' => '/invoke',
'retry' => 3,
'schedule' => '0 * * * *',
'tasks' => [
[
]
],
'timeout' => 300
],
'enabled' => true,
'id' => 'trigger-1',
'type' => 'http'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.blaxel.ai/v0/functions"
payload := strings.NewReader("{\n \"metadata\": {\n \"name\": \"my-resource\",\n \"displayName\": \"My Resource\",\n \"externalId\": \"my-session-123\",\n \"labels\": {}\n },\n \"spec\": {\n \"enabled\": true,\n \"integrationConnections\": [\n \"<string>\"\n ],\n \"policies\": [\n \"<string>\"\n ],\n \"public\": false,\n \"region\": \"us-pdx-1\",\n \"revision\": {\n \"active\": \"rev-abc123\",\n \"canary\": \"<string>\",\n \"canaryPercent\": 10,\n \"stickySessionTtl\": 0,\n \"traffic\": 100\n },\n \"runtime\": {\n \"envs\": [\n {\n \"name\": \"MY_ENV_VAR\",\n \"secret\": true,\n \"value\": \"my-value\"\n }\n ],\n \"generation\": \"mk3\",\n \"image\": \"<string>\",\n \"maxScale\": 10,\n \"memory\": 2048,\n \"minScale\": 0,\n \"ports\": [\n {\n \"target\": 8080,\n \"name\": \"http\",\n \"protocol\": \"HTTP\"\n }\n ],\n \"transport\": \"http-stream\"\n },\n \"triggers\": [\n {\n \"configuration\": {\n \"authenticationType\": \"blaxel\",\n \"callbackUrl\": \"https://myapp.com/webhook\",\n \"path\": \"/invoke\",\n \"retry\": 3,\n \"schedule\": \"0 * * * *\",\n \"tasks\": [\n {}\n ],\n \"timeout\": 300\n },\n \"enabled\": true,\n \"id\": \"trigger-1\",\n \"type\": \"http\"\n }\n ]\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.blaxel.ai/v0/functions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"metadata\": {\n \"name\": \"my-resource\",\n \"displayName\": \"My Resource\",\n \"externalId\": \"my-session-123\",\n \"labels\": {}\n },\n \"spec\": {\n \"enabled\": true,\n \"integrationConnections\": [\n \"<string>\"\n ],\n \"policies\": [\n \"<string>\"\n ],\n \"public\": false,\n \"region\": \"us-pdx-1\",\n \"revision\": {\n \"active\": \"rev-abc123\",\n \"canary\": \"<string>\",\n \"canaryPercent\": 10,\n \"stickySessionTtl\": 0,\n \"traffic\": 100\n },\n \"runtime\": {\n \"envs\": [\n {\n \"name\": \"MY_ENV_VAR\",\n \"secret\": true,\n \"value\": \"my-value\"\n }\n ],\n \"generation\": \"mk3\",\n \"image\": \"<string>\",\n \"maxScale\": 10,\n \"memory\": 2048,\n \"minScale\": 0,\n \"ports\": [\n {\n \"target\": 8080,\n \"name\": \"http\",\n \"protocol\": \"HTTP\"\n }\n ],\n \"transport\": \"http-stream\"\n },\n \"triggers\": [\n {\n \"configuration\": {\n \"authenticationType\": \"blaxel\",\n \"callbackUrl\": \"https://myapp.com/webhook\",\n \"path\": \"/invoke\",\n \"retry\": 3,\n \"schedule\": \"0 * * * *\",\n \"tasks\": [\n {}\n ],\n \"timeout\": 300\n },\n \"enabled\": true,\n \"id\": \"trigger-1\",\n \"type\": \"http\"\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.blaxel.ai/v0/functions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"metadata\": {\n \"name\": \"my-resource\",\n \"displayName\": \"My Resource\",\n \"externalId\": \"my-session-123\",\n \"labels\": {}\n },\n \"spec\": {\n \"enabled\": true,\n \"integrationConnections\": [\n \"<string>\"\n ],\n \"policies\": [\n \"<string>\"\n ],\n \"public\": false,\n \"region\": \"us-pdx-1\",\n \"revision\": {\n \"active\": \"rev-abc123\",\n \"canary\": \"<string>\",\n \"canaryPercent\": 10,\n \"stickySessionTtl\": 0,\n \"traffic\": 100\n },\n \"runtime\": {\n \"envs\": [\n {\n \"name\": \"MY_ENV_VAR\",\n \"secret\": true,\n \"value\": \"my-value\"\n }\n ],\n \"generation\": \"mk3\",\n \"image\": \"<string>\",\n \"maxScale\": 10,\n \"memory\": 2048,\n \"minScale\": 0,\n \"ports\": [\n {\n \"target\": 8080,\n \"name\": \"http\",\n \"protocol\": \"HTTP\"\n }\n ],\n \"transport\": \"http-stream\"\n },\n \"triggers\": [\n {\n \"configuration\": {\n \"authenticationType\": \"blaxel\",\n \"callbackUrl\": \"https://myapp.com/webhook\",\n \"path\": \"/invoke\",\n \"retry\": 3,\n \"schedule\": \"0 * * * *\",\n \"tasks\": [\n {}\n ],\n \"timeout\": 300\n },\n \"enabled\": true,\n \"id\": \"trigger-1\",\n \"type\": \"http\"\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"metadata": {
"name": "my-resource",
"createdAt": "<string>",
"updatedAt": "<string>",
"createdBy": "<string>",
"updatedBy": "<string>",
"displayName": "My Resource",
"externalId": "my-session-123",
"labels": {},
"plan": "<string>",
"url": "<string>",
"workspace": "<string>"
},
"spec": {
"enabled": true,
"integrationConnections": [
"<string>"
],
"policies": [
"<string>"
],
"public": false,
"region": "us-pdx-1",
"revision": {
"active": "rev-abc123",
"canary": "<string>",
"canaryPercent": 10,
"stickySessionTtl": 0,
"traffic": 100
},
"runtime": {
"envs": [
{
"name": "MY_ENV_VAR",
"secret": true,
"value": "my-value"
}
],
"generation": "mk3",
"image": "<string>",
"maxScale": 10,
"memory": 2048,
"minScale": 0,
"ports": [
{
"target": 8080,
"name": "http",
"protocol": "HTTP"
}
],
"transport": "http-stream"
},
"triggers": [
{
"configuration": {
"authenticationType": "blaxel",
"callbackSecret": "<string>",
"callbackUrl": "https://myapp.com/webhook",
"path": "/invoke",
"retry": 3,
"schedule": "0 * * * *",
"tasks": [
{}
],
"timeout": 300
},
"enabled": true,
"id": "trigger-1",
"type": "http"
}
]
},
"events": [
{
"canaryRevision": "<string>",
"message": "Deployment successful",
"revision": "rev-abc123",
"status": "DEPLOYED",
"time": "2025-01-15T10:30:00Z",
"type": "deployment"
}
]
}{
"error": "Resource already exists",
"code": 409,
"message": "Invalid request body"
}{
"error": "Resource already exists",
"code": 409,
"message": "Invalid request body"
}{
"error": "Resource already exists",
"code": 409,
"message": "Invalid request body"
}{
"error": "Resource already exists",
"code": 409,
"message": "Invalid request body"
}{
"error": "Resource already exists",
"code": 409,
"message": "Invalid request body"
}Authorizations
OAuth2 authentication with JWT tokens
Body
MCP server deployment that exposes tools for AI agents via the Model Context Protocol (MCP). Deployed as a serverless auto-scaling endpoint using streamable HTTP transport.
Common metadata fields shared by all Blaxel resources including name, labels, timestamps, and ownership information
Show child attributes
Show child attributes
Configuration for an MCP server function including runtime settings, transport protocol, and connected integrations
Show child attributes
Show child attributes
Response
successful operation
MCP server deployment that exposes tools for AI agents via the Model Context Protocol (MCP). Deployed as a serverless auto-scaling endpoint using streamable HTTP transport.
Common metadata fields shared by all Blaxel resources including name, labels, timestamps, and ownership information
Show child attributes
Show child attributes
Configuration for an MCP server function including runtime settings, transport protocol, and connected integrations
Show child attributes
Show child attributes
Events happening on a resource deployed on Blaxel
Show child attributes
Show child attributes
Deployment status of a resource deployed on Blaxel
DELETING, TERMINATED, FAILED, DEACTIVATED, DEACTIVATING, UPLOADING, BUILDING, DEPLOYING, DEPLOYED, BUILT Was this page helpful?
