MCP Server

Use every EmpirioLabs model and platform feature from Claude, ChatGPT, Cursor, and any MCP client

The EmpirioLabs MCP server lets any Model Context Protocol client run the whole platform as tools: chat with every text model, generate images, video, audio, speech, 3D and transcripts, run web search and research, manage jobs, batches, GPU Cloud, and hosted agents, and read your usage and balance. It is a remote server, so there is nothing to install.

Server URL

https://mcp.empiriolabs.ai/mcp (Streamable HTTP). Profiles such as /mcp/inference expose a subset of tools.

Sign in or use a key

Claude and ChatGPT sign you in with OAuth. Coding tools and scripts can send an EmpirioLabs API key as a bearer token instead.

Always current

New models appear automatically through list_models, new API endpoints become tools automatically, and every tool runs the same request path, prices, and limits as the REST API.

Your credits, your controls

Each OAuth connection gets its own API key that you can pause or delete from the dashboard at any time.

Connect

Claude (web, desktop, mobile)

  1. Open Settings, then Connectors, and choose Add custom connector.
  2. Enter https://mcp.empiriolabs.ai/mcp as the URL. Leave the OAuth client fields empty.
  3. Click Connect, sign in to EmpirioLabs, review the toolsets, and choose Allow access.

Claude Code uses the same server:

claude mcp add --transport http empiriolabs https://mcp.empiriolabs.ai/mcp

Run /mcp inside Claude Code to complete the sign-in the first time.

ChatGPT

  1. Open Settings, then Connectors (or Apps), and enable Developer mode under Advanced.
  2. Choose Create and enter https://mcp.empiriolabs.ai/mcp as the MCP server URL with OAuth authentication.
  3. Finish the sign-in and approve the toolsets. The server also implements the search and fetch tools ChatGPT uses for connectors, so it works in chat and in deep research.

Cursor, VS Code, Windsurf, and other editors

Remote servers are configured with a URL. Sign in through OAuth when the editor prompts, or add an API key header:

{
"mcpServers": {
"empiriolabs": {
"url": "https://mcp.empiriolabs.ai/mcp",
"headers": {
"Authorization": "Bearer sk-empiriolabs-your_key_here"
}
}
}
}

VS Code reads the same shape from .vscode/mcp.json with a servers key and "type": "http". Codex CLI: codex mcp add empiriolabs --url https://mcp.empiriolabs.ai/mcp. Gemini CLI and Windsurf accept the JSON block above in their MCP settings.

Any HTTP client

The server speaks JSON-RPC over POST https://mcp.empiriolabs.ai/mcp and answers with JSON. Send Authorization: Bearer <API key or OAuth access token> and Accept: application/json, text/event-stream on every request.

curl "https://mcp.empiriolabs.ai/mcp" \
-H "Authorization: Bearer $EMPIRIOLABS_API_KEY" \
-H "Accept: application/json, text/event-stream" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_models","arguments":{"modality":"image","limit":5}}}'

How access works

  • OAuth sign-in. Clients discover the authorization server from https://mcp.empiriolabs.ai/.well-known/oauth-protected-resource and register themselves automatically (dynamic client registration or a client ID metadata document). You approve the request on the EmpirioLabs dashboard. Approving creates a dedicated API key named after the application, and the client receives short-lived access tokens plus a refresh token for that key.
  • API key. Send any active EmpirioLabs API key as the bearer token to get every tool without a sign-in step. This suits editors, scripts, and servers you control.
  • Revoking. Pause or delete the connection’s key from API keys in the dashboard; the connection stops immediately and the client asks you to sign in again. Clients can also call the revocation endpoint listed in the authorization-server metadata.
  • Scopes. Each toolset below is also an OAuth scope, so a client can request only what it needs and the consent screen shows exactly what was granted.

Profiles

Every toolset is available at https://mcp.empiriolabs.ai/mcp. Add a profile or a + separated list of toolsets to the path to expose a smaller, focused tool list, for example when a client works best with fewer tools or when you want a connection that cannot generate media.

Jobs and long-running generation

Image, video, audio, transcription, 3D, Compose, and agent tools return finished output URLs when the work completes within the wait window (default 40 seconds, at most 50). Otherwise they return a job_id and the client should call get_job, which can also wait, instead of starting the generation again. Output URLs are signed and expire, so download anything you want to keep. Chat, search, and research tools answer inline.

Example prompts

  • “List the cheapest video models on EmpirioLabs, then generate a 5 second clip of waves at sunset with the best value one.”
  • “Use EmpirioLabs to transcribe this recording, then summarize the action items with qwen3-7-max.”
  • “Check my EmpirioLabs balance and show what I spent on image generation this week.”
  • “Deploy an H100 on EmpirioLabs GPU Cloud with the vLLM template and tell me when it is ready.”
  • “Run a web research task about the latest MCP specification changes and cite sources.”

Prices, limits, and errors

Tools run the same request path as the REST API, so the final prices on Models and Pricing, your account limits from Limits and API Keys, and the error messages from Errors and Status Codes all apply unchanged. A tool result with isError carries the same actionable message the API returns, for example when a model does not support the requested endpoint or when the account needs credits.

Privacy

Prompts and outputs pass through the request path without being stored for inspection; usage rows record only metadata such as model, tokens, cost, and status. See the Privacy Policy and Support.

Tool reference

Every tool is derived from the public OpenAPI document, so a newly documented endpoint becomes a tool automatically, and the reference below is regenerated from the server’s live manifest (https://mcp.empiriolabs.ai/manifest.json) on every docs build. search, fetch, and get_platform_status are built into the server; every other tool maps to one API operation.

Toolsets and scopes

Toolset (OAuth scope)What it allowsTools
modelsBrowse the model catalog, prices, capabilities, and parameters5
textRun chat, embeddings, reranking, and AI text detection (uses credits)4
searchRun web search, grounded answers, and research (uses credits)3
mediaGenerate and edit images, video, audio, speech, transcription, and 3D (uses credits)13
jobsCheck, wait for, and cancel generation jobs3
agentsRun and manage agent tasks (uses credits)4
accountRead usage history and the current balance1
batchUpload batch files and manage batch jobs (uses credits)6
gpuDeploy and manage GPU instances, clusters, and volumes (billable)16
hosted_agentsCreate and manage hosted agents (billable)23

Profiles

URLToolsets
https://mcp.empiriolabs.ai/mcpall toolsets
https://mcp.empiriolabs.ai/mcp/inferencemodels, text, search, jobs, account
https://mcp.empiriolabs.ai/mcp/mediamodels, media, jobs, account
https://mcp.empiriolabs.ai/mcp/cloudmodels, account, gpu, hosted_agents
https://mcp.empiriolabs.ai/mcp/no-mediamodels, text, search, jobs, agents, account, batch, gpu, hosted_agents

Combine toolsets or profiles with +, for example https://mcp.empiriolabs.ai/mcp/models+text+jobs.

models tools

ToolDescriptionAccess
list_modelsList EmpirioLabs models with provider, modality, endpoints and final prices. Filter by free-text query, modality (text, image, video, audio, multimodal, 3D), category, provider, or endpoint path. Call this before choosing a model id.read-only
get_modelGet one model’s full schema: description, endpoints, context window, final prices, notes, and every supported parameter with defaults and ranges.read-only
searchSearch the EmpirioLabs model catalog and documentation. Returns result ids for fetch: model:<slug> for a model, doc:<page> for a documentation page.read-only
fetchFetch the full text of a search result by id (model:<slug> or doc:<page>).read-only
get_platform_statusCheck whether the EmpirioLabs API and its models are currently up, with per-model availability.read-only

text tools

ToolDescriptionAccess
chatRun a chat completion on any EmpirioLabs chat model and return the assistant reply, reasoning (when the model exposes it), tool calls and token usage. Uses credits.write
embeddingsCreate embedding vectors for one or more texts with an embedding model. Uses credits.write
rerankScore and reorder documents by relevance to a query with a reranking model. Uses credits.write
detect_ai_textClassify whether text was written by an AI model (GPTZero). Uses credits.write

search tools

ToolDescriptionAccess
web_searchRun a live web search through a search model (for example exa-search, tavily-search, linkup-search). Returns results with titles, URLs and snippets. Uses credits.write
web_researchRun a multi-step research task with citations (for example tavily-research, exa-research, linkup-deep-search). Takes up to a few minutes. Uses credits.write
web_answerGet a one-shot answer with citations from a grounded answer model (for example exa-answer). Uses credits.write

media tools

ToolDescriptionAccess
generate_imageGenerate images from a prompt (or a generation template) with an image model. Returns signed output URLs, or a job_id to poll with get_job when generation takes longer than the wait. Uses credits.write
generate_videoGenerate a video from a prompt, an image, or a creative-effect template with a video model. Video takes minutes: the tool returns a job_id and you must poll get_job until the signed output URL is ready. Uses credits.write
list_generation_templatesList curated image and video generation templates (creative effects) with their slug, modality, recommended model and inputs.read-only
get_generation_templateGet one generation template by slug, including its prompt guidance, recommended model and default parameters.read-only
list_compose_recipesList the Compose recipes that chain script, visuals, voice and music into a finished video, with their modes and inputs.read-only
compose_videoCreate a finished video from a Compose recipe (brief, script, storyboard or edits). Returns a job_id to poll with get_job. Uses credits.write
generate_3dGenerate a 3D model from an image with a 3D generation model (for example trellis-2-4b). Returns a job_id to poll with get_job. Uses credits.write
text_to_speechSynthesize speech from text with a TTS model and voice. Returns a signed audio URL (or inline audio). Uses credits.write
list_voicesList the voices available for text-to-speech, filterable by model, language, gender or search text.read-only
generate_audioGenerate music or sound effects from a prompt with an audio generation model (for example ace-step-1-5-xl). Returns a signed URL or a job_id for get_job. Uses credits.write
transcribe_audioTranscribe an audio or video file at an https URL with a speech-to-text model. Returns the transcript or a job_id for get_job. Uses credits.write
analyze_imageAsk a question about an image with a vision-capable model and get a text answer. Uses credits.write
edit_imageEdit an existing image with an instruction using an image-edit model. Returns signed output URLs or a job_id for get_job. Uses credits.write

jobs tools

ToolDescriptionAccess
list_jobsList the account’s recent asynchronous jobs, newest first.read-only
get_jobGet the status and result of an asynchronous generation job. Optionally wait up to wait_seconds for it to finish. Never restart a job that is still processing.read-only
cancel_jobCancel a queued or processing job. Completed jobs are returned unchanged.destructive

agents tools

ToolDescriptionAccess
run_agent_taskStart a long-running agent task (for example with the manus model) or send a follow-up message to an existing task. Returns a job_id for get_job and the task_id for get_agent_task. Uses credits.write
get_agent_taskGet the status and output of an agent task.read-only
get_agent_task_messagesList the messages exchanged during an agent task.read-only
stop_agent_taskStop a running agent task.destructive

account tools

ToolDescriptionAccess
get_account_usageRead the account’s current credit balance and recent usage history (model, endpoint, tokens, cost, status).read-only

batch tools

ToolDescriptionAccess
upload_batch_fileUpload a JSONL file of requests for the Batch API (one {custom_id, method, url, body} object per line). Returns the file id to pass to create_batch.write
get_batch_file_contentDownload the content of a batch input, output, or error file as JSONL text.read-only
create_batchStart a discounted batch run from an uploaded JSONL file. Each line bills at the batch price when it executes. Uses credits.write
list_batchesList the account’s batch runs.read-only
get_batchGet a batch run’s status, counts and output file ids.read-only
cancel_batchCancel a batch run; lines that already executed stay billed.destructive

gpu tools

ToolDescriptionAccess
list_gpu_typesList the GPU types available to rent with hourly prices, VRAM, and availability.read-only
get_gpu_typeGet one GPU type by slug.read-only
order_gpu_clusterOrder a multi-node GPU cluster from a fabric. Creates billable infrastructure charged by the hour.write
list_gpu_clustersList multi-node GPU cluster fabrics available for distributed training, with node counts and prices.read-only
list_gpu_volumesList the account’s persistent GPU volumes.read-only
create_gpu_volumeCreate a persistent volume that can be attached to GPU instances. Billable storage.write
get_gpu_volumeGet one GPU volume.read-only
delete_gpu_volumeDelete a GPU volume and everything stored on it.destructive
list_gpu_instancesList the account’s GPU instances with status, GPU type, hourly price and connection details.read-only
deploy_gpu_instanceRent a GPU and start a workload on it (a template, a Hugging Face model, or a container image). Creates a billable instance charged by the hour until you destroy it.write
get_gpu_instanceGet one GPU instance’s status, endpoints and cost so far.read-only
destroy_gpu_instanceDestroy a GPU instance and stop its hourly charges. Data on the instance disk is lost unless it is on an attached volume.destructive
add_gpu_ssh_keyAuthorize an SSH public key on a running GPU instance and return the SSH connection details.write
gpu_instance_actionStop (pauses hourly compute charges), start, or refresh a GPU instance.destructive
gpu_workload_sendSend a POST, PUT, PATCH, or DELETE request with a JSON body to the workload running on your GPU instance through the authenticated connect endpoint (https://docs.empiriolabs.ai/gpu-cloud). For example call an LLM server you deployed.write
gpu_workload_getSend a GET request to the workload running on your GPU instance through the authenticated connect endpoint (https://docs.empiriolabs.ai/gpu-cloud). Useful for health checks and reading results.read-only

hosted_agents tools

ToolDescriptionAccess
get_hosted_agents_healthCheck whether the hosted-agents service is available.read-only
get_hosted_agent_plansGet the hosted-agent plans, runtime presets and defaults available to the account.read-only
list_hosted_agentsList the account’s hosted agents with status, runtime type, plan and model.read-only
create_hosted_agentCreate a private hosted agent (OpenClaw or Hermes runtime) on a plan. Creates a billable resource.write
get_hosted_agentGet one hosted agent’s status, configuration and connection details.read-only
delete_hosted_agentDestroy a hosted agent, its storage and its channels, and stop its charges.destructive
rename_hosted_agentChange a hosted agent’s display name.write
hosted_agent_actionStart, stop, restart, or refresh a hosted agent’s runtime.destructive
message_hosted_agentSend chat messages to a running hosted agent and return its reply. The agent may use its connected tools. Uses credits.write
list_hosted_agent_integrationsList the messaging channels and integrations connected to a hosted agent.read-only
save_hosted_agent_integrationConnect or update a messaging channel or integration (for example telegram, discord, slack) on a hosted agent.write
disconnect_hosted_agent_integrationDisconnect a messaging channel or integration from a hosted agent.destructive
set_hosted_agent_channel_behaviorSet how a hosted agent behaves on one messaging channel (for example reply rules).write
set_hosted_agent_modelSwitch the model or provider a hosted agent uses.write
set_hosted_agent_accessSet the access mode and allow list for who can message a hosted agent on its channels.write
list_hosted_agent_skillsList the skills installed on a hosted agent.read-only
add_hosted_agent_skillInstall a catalog skill (by slug) or a custom skill on a hosted agent.write
remove_hosted_agent_skillUninstall a skill from a hosted agent.destructive
list_hosted_agent_mcp_connectorsList the remote MCP connectors attached to a hosted agent.read-only
add_hosted_agent_mcp_connectorAttach a remote MCP server to a hosted agent so the agent can use its tools.write
remove_hosted_agent_mcp_connectorDetach a remote MCP connector from a hosted agent.destructive
get_hosted_agent_statsGet activity counts for a hosted agent.read-only
list_hosted_agent_poe_modelsList the models available through the Poe account connected to a hosted agent.read-only