Stack0 MCP Server

Stack0 speaks the Model Context Protocol, so Claude, ChatGPT, Cursor, and any other MCP client can call Stack0 as native tools: send email, upload files, capture screenshots, extract data, transcode video, run workflows, and reach 350+ integrations.

Endpoint

URLhttps://api.stack0.dev/mcp
TransportStreamable HTTP
Legacy transporthttps://api.stack0.dev/mcp/sse
AuthenticationAuthorization: Bearer <api_key>
Health checkhttps://api.stack0.dev/mcp/health

Create an API key in the dashboard under Settings → API Keys. Tools run against the organization that owns the key. See Authentication.

Connect Claude Code

bash
claude mcp add --transport http stack0 https://api.stack0.dev/mcp \
--header "Authorization: Bearer $STACK0_API_KEY"

Connect Claude Desktop or Cursor

Add the server to your MCP client config file.

claude_desktop_config.json
{
"mcpServers": {
"stack0": {
"type": "http",
"url": "https://api.stack0.dev/mcp",
"headers": {
"Authorization": "Bearer YOUR_STACK0_API_KEY"
}
}
}
}

Clients without HTTP transport

The hosted endpoint is the supported way to connect, and it needs nothing installed. If your client only speaks stdio, put an MCP stdio-to-HTTP bridge in front of it and point the bridge at https://api.stack0.dev/mcp with the same bearer header. Everything else on this page applies unchanged.

Tools

41 tools across seven groups. Every tool publishes a JSON Schema for its input, so a client can build a function-calling definition without any extra mapping.

PrefixGroupTools
mail_*Emailmail_send, mail_send_batch, mail_get, mail_list, mail_create_contact, mail_list_contacts
cdn_*CDN and storagecdn_upload, cdn_get, cdn_list, cdn_delete, cdn_transform, cdn_create_folder, cdn_list_folders, cdn_delete_folder
screenshots_*Screenshotsscreenshots_capture, screenshots_get, screenshots_list, screenshots_delete
extraction_*AI extractionextraction_extract, extraction_get, extraction_list, extraction_delete
video_*Videovideo_transcode, video_get_job, video_list_jobs, video_cancel_job, video_extract_audio, video_get_streaming_url
workflows_*AI workflowsworkflows_create, workflows_run, workflows_get_run, workflows_list, workflows_list_runs, workflows_cancel_run
integrations_*Integrationsintegrations_list_connectors, integrations_list_connections, integrations_crm_create_contact, integrations_crm_update_contact, integrations_crm_list_contacts, integrations_storage_list_files, integrations_storage_download

The authoritative list, with every input schema, is in the server card at /.well-known/mcp.json. It is generated from the running server, so it never drifts.

Discovery manifests

MCP server discovery has several proposals in flight. Each path below serves the document in the shape its own specification defines. All four are available on both www.stack0.dev and api.stack0.dev.

PathSpecificationContents
/.well-known/mcp.jsonSEP-1649 Server CardFull card: transport, capabilities, authentication, and every tool with its JSON Schema.
/.well-known/mcp/server-card.jsonSEP-1649 Server CardThe same document at the path SEP-1649 names.
/.well-known/mcpSEP-1960 manifestEndpoint enumeration, capability flags, auth methods, and the request rate limit.
/.well-known/mcp-serverIETF draft-serra-mcp-discovery-uriMinimal manifest: mcp_version, name, endpoint, transport, auth, capabilities.

Verify the connection

bash
# The server card needs no credentials
curl -s https://api.stack0.dev/.well-known/mcp.json | head -40
# Liveness
curl -s https://api.stack0.dev/mcp/health
# Initialize a session
curl -s https://api.stack0.dev/mcp \
-H "Authorization: Bearer $STACK0_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{
"protocolVersion":"2025-06-18",
"capabilities":{},
"clientInfo":{"name":"curl","version":"1.0"}}}'

Rate limits

MCP requests share the API rate limit and carry the same standard headers, so a client can self-throttle. See Rate limits.