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
StringString representing the object's type
id
StringUnique custom provider identifier
status
StringNullableCurrent status of the custom provider
name
StringNullableDisplay name of the custom provider
description
StringNullableBrief description of the custom provider
metadata
ObjectNullableCustom key-value pairs for storing additional information
provider
ObjectNullablecreated_at
DateTimestamp when created
updated_at
DateTimestamp 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
NumberOptionalMaximum number of items to return (1-100)
after
StringOptionalReturn items after this ID
before
StringOptionalReturn items before this ID
cursor
StringOptionalPagination cursor from a previous response
order
EnumOptionalSort order for results
search
StringOptionalSearch by name or description
status
UnionOptionalFilter by status (active, archived)
type
UnionOptionalFilter by type (container, function, remote)
ids
UnionOptionalFilter by custom provider IDs
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
StringThe unique identifier for the custom_provider
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
Stringdescription
StringOptionalmetadata
ObjectOptionalCustom key-value pairs for storing additional information
from
Objectconfig
ObjectOptionalcurl -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
StringThe unique identifier for the custom_provider
Request Body
name
StringOptionaldescription
StringOptionalmetadata
ObjectOptionalCustom key-value pairs for storing additional information
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": {}}'