Custom Providers

Custom providers allow you to deploy your own MCP servers. Create providers from container images, remote URLs, or serverless functions.

Custom Providers object

Attributes

object

String

String representing the object's type

id

String

Unique custom provider identifier

status

StringNullable

Current status of the custom provider

name

StringNullable

Display name of the custom provider

description

StringNullable

Brief description of the custom provider

metadata

ObjectNullable

Custom key-value pairs for storing additional information

provider

ObjectNullable

created_at

Date

Timestamp when created

updated_at

Date

Timestamp when last updated

{
"object": "custom_provider",
"id": "cpr_1aBcDeFgHjKlMnPq",
"status": "active",
"name": "My Custom Provider",
"description": "A custom provider for my application",
"metadata": {
"environment": "production"
},
"provider": {
"object": "provider",
"id": "pro_5gHjKlMnPqRsTuVw",
"name": "GitHub",
"description": "Connect to GitHub repositories, issues, and pull requests",
"slug": "github",
"publisher": {
"object": "provider.publisher",
"id": "pub_9hJkLmNpQrStUvWx",
"name": "Acme Corp",
"description": "A leading provider of developer tools",
"slug": "acme-corp",
"image_url": "https://cdn.metorial.com/images/acme.png",
"created_at": "2025-09-15T10:30:00.000Z",
"updated_at": "2026-01-10T14:45:00.000Z"
},
"current_version": {
"object": "provider.version",
"id": "prv_4dEfGhJkLmNpQrSt",
"version": "1.0.0",
"status": "released",
"created_at": "2025-09-15T10:30:00.000Z",
"updated_at": "2026-01-10T14:45:00.000Z"
},
"created_at": "2025-09-15T10:30:00.000Z",
"updated_at": "2026-01-10T14:45:00.000Z"
},
"created_at": "2025-09-15T10:30:00.000Z",
"updated_at": "2026-01-10T14:45:00.000Z"
}

List custom providers

Returns a paginated list of custom providers.

Query Parameters

limit

NumberOptional

Maximum number of items to return (1-100)

after

StringOptional

Return items after this ID

before

StringOptional

Return items before this ID

cursor

StringOptional

Pagination cursor from a previous response

order

EnumOptional

Sort order for results

search

StringOptional

Search by name or description

status

UnionOptional

Filter by status (active, archived)

type

UnionOptional

Filter by type (container, function, remote)

ids

UnionOptional

Filter by custom provider IDs

GEThttp://api.metorial.com/custom-providers
curl -X GET "https://api.metorial.com/custom-providers" \
-H "Authorization: Bearer metorial_sk_..."

Get custom provider

Retrieves a specific custom provider by ID.

URL Parameters

custom_provider_id

String

The unique identifier for the custom_provider

GEThttp://api.metorial.com/custom-providers/:custom_provider_id
curl -X GET "https://api.metorial.com/custom-providers/cus_Rm4Mnheq2bfEPhBhP7SY" \
-H "Authorization: Bearer metorial_sk_..."

Create custom provider

Creates a new custom provider.

Request Body

name

String

description

StringOptional

metadata

ObjectOptional

Custom key-value pairs for storing additional information

from

Object

config

ObjectOptional
POSThttp://api.metorial.com/custom-providers
curl -X POST "https://api.metorial.com/custom-providers" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer metorial_sk_..." \
-d '{
"name": "example_name",
"description": "example_description",
"metadata": {},
"from": {
"type": "example_type",
"image_ref": "example_image_ref",
"username": "example_username",
"password": "example_password"
},
"config": {
"schema": {},
"transformer": "example_transformer"
}
}'

Update custom provider

Updates a specific custom provider.

URL Parameters

custom_provider_id

String

The unique identifier for the custom_provider

Request Body

name

StringOptional

description

StringOptional

metadata

ObjectOptional

Custom key-value pairs for storing additional information

PATCHhttp://api.metorial.com/custom-providers/:custom_provider_id
curl -X PATCH "https://api.metorial.com/custom-providers/cus_Rm4Mnheq2bfEPhBhP7SY" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer metorial_sk_..." \
-d '{
"name": "example_name",
"description": "example_description",
"metadata": {}
}'