EMT Compute MCP
The EMT Compute MCP server provides agents with 21 tools to manage GPU cloud resources, including browsing availability, quoting rentals, launching scientific experiments and AI training jobs, and retrieving calculation reports. It supports scoped API keys for authentication and integrates with n8n workflows for automated GPU task orchestration.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://emtcompute.com/mcpWhat its tools do
22 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Read-only (13)
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Passed Official MCP Registry namespace is tied to emtcompute.com ·
- Passed Endpoint is on the registry namespace domain ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Browse GPU availability and scientific methods
- Launch authorized experiments and AI training jobs
- Retrieve calculation reports and event history
- Inspect jobs and quote GPU nodes or clusters
Source and maintenance
Protocol and capabilities
- Server
- emt-compute 1.2.0
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 22 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
22 advertised
emt_catalog
Current GPU offers. Prices in EUR micro-units per GPU/hour; unknown metrics remain null. Paginated to keep responses small.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"default": 10,
"maximum": 30,
"minimum": 1
},
"model": {
"type": "string",
"maxLength": 80
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 100000,
"minimum": 0
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}emt_clusters
Current whole-node cluster offers; fabric declarations do not establish independent EMT qualification.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}emt_templates
Public GPU container templates for ordinary rentals. Prefer emt_environments: public templates can be refused when their CUDA is newer than the node's driver.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}emt_environments
Verified environments (PyTorch, JAX, vLLM, TensorRT-LLM, ComfyUI, Unsloth) with their CUDA version and ports. Checked against the node before renting; they start an SSH server with the order's key.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}emt_experiment_presets
List scientific presets or inspect one preset's parameters, equations, methods and custom-input schema. Does not run a calculation.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"id": {
"type": "string",
"maxLength": 64
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}emt_orders
Owned GPU orders and lifecycle states. Requires read scope.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}emt_experiment_jobs
Owned experiment jobs, including reports and release state. Requires read scope.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}emt_experiment_job
Inspect an owned experiment and its authenticated result, output and calculation-report download links. Files are not sent into the model context.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"job"
],
"properties": {
"job": {
"type": "string",
"format": "uuid"
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}emt_training_jobs
List owned AI training jobs. Requires read scope; does not start training or rent GPUs.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}emt_training_job
Inspect an owned training job, its settings, lifecycle and recorded outcome.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"job"
],
"properties": {
"job": {
"type": "string",
"format": "uuid"
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}emt_training_recipe
Read the reproducible recipe for an owned training job, including model, dataset and training settings.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"job"
],
"properties": {
"job": {
"type": "string",
"format": "uuid"
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}emt_training_events
Read up to 100 training events with metrics, runtime and observed dataset hashes when recorded. For full history start after=0 and latest=false, then repeat with the greatest returned seq until an empty page. latest=true returns the most recent window only. Visible devices are not proof of GPU utilization.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"job"
],
"properties": {
"job": {
"type": "string",
"format": "uuid"
},
"after": {
"type": "integer",
"default": 0,
"maximum": 9007199254740991,
"minimum": 0
},
"latest": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}emt_monitor
Metrics and lifecycle for an owned order. Missing telemetry is unknown.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"order"
],
"properties": {
"order": {
"type": "string",
"format": "uuid"
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}emt_quote
Create a fresh expiring GPU quote without renting or charging.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"node",
"count",
"hours"
],
"properties": {
"node": {
"type": "string",
"format": "uuid"
},
"count": {
"type": "integer",
"maximum": 256,
"minimum": 1
},
"hours": {
"type": "integer",
"maximum": 720,
"minimum": 1
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}emt_cluster_quote
Quote selected whole nodes on one fabric without renting.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"cluster",
"nodes",
"hours"
],
"properties": {
"hours": {
"type": "integer",
"maximum": 720,
"minimum": 1
},
"nodes": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
},
"maxItems": 16,
"minItems": 2
},
"cluster": {
"type": "string",
"maxLength": 300,
"minLength": 1
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}emt_experiment_quote
Quote 1–4 nodes for an experiment; hours × hourly gives the GPU rental ceiling in micro-EUR. Reserve is only an initial hold, not total cost.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"fp64": {
"type": "boolean",
"default": false
},
"node": {
"type": "string",
"maxLength": 200
},
"count": {
"type": "integer",
"default": 1,
"maximum": 8,
"minimum": 1
},
"model": {
"type": "string",
"maxLength": 80
},
"nodes": {
"type": "integer",
"default": 1,
"maximum": 4,
"minimum": 1
},
"minVram": {
"type": "integer",
"default": 8,
"maximum": 1024,
"minimum": 0
},
"maxMinutes": {
"type": "integer",
"default": 60,
"maximum": 1440,
"minimum": 10
},
"environment": {
"enum": [
"emt-lab",
"emt-lab-devel",
"emt-lab-jax"
],
"type": "string",
"default": "emt-lab"
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}emt_rent
Start a PAID GPU rental with exactly one of environment (verified, from emt_environments: preferred) or template. Requires explicit spending authorization, fresh quote, rent scope, credit and accepted terms. Store payload and key before requesting.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"quote",
"name",
"confirm_paid_rental",
"idempotency_key"
],
"properties": {
"ssh": {
"type": "string",
"maxLength": 4096
},
"name": {
"type": "string",
"maxLength": 80,
"minLength": 1
},
"ports": {
"type": "integer",
"default": 10,
"maximum": 200,
"minimum": 0
},
"quote": {
"type": "string",
"format": "uuid"
},
"setup": {
"type": "object",
"properties": {
"ref": {
"type": "string",
"pattern": "^[A-Za-z0-9._/-]{1,100}$"
},
"repo": {
"type": "string",
"maxLength": 300
},
"script": {
"type": "string",
"maxLength": 3000
}
},
"additionalProperties": false
},
"volume": {
"type": "string",
"format": "uuid"
},
"backups": {
"type": "boolean",
"default": false
},
"jupyter": {
"type": "boolean",
"default": false
},
"template": {
"type": "string",
"format": "uuid"
},
"environment": {
"type": "string",
"maxLength": 40
},
"idempotency_key": {
"type": "string",
"pattern": "^[A-Za-z0-9_.:-]+$",
"maxLength": 120,
"minLength": 16
},
"confirm_paid_rental": {
"type": "boolean",
"const": true
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}emt_rent_cluster
Start a PAID whole-node cluster rental. Public SSH key only. Confirm cost and fabric limits with the user first.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"quote",
"name",
"ssh",
"confirm_paid_rental",
"idempotency_key"
],
"properties": {
"ssh": {
"type": "string",
"maxLength": 4096
},
"name": {
"type": "string",
"maxLength": 80,
"minLength": 1
},
"quote": {
"type": "string",
"format": "uuid"
},
"idempotency_key": {
"type": "string",
"pattern": "^[A-Za-z0-9_.:-]+$",
"maxLength": 120,
"minLength": 16
},
"confirm_paid_rental": {
"type": "boolean",
"const": true
},
"acknowledgeSlowNetwork": {
"type": "boolean",
"const": true
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}emt_start_experiment
Start a PAID scientific preset, customer script or command. Parameter sets distribute across quoted nodes; this does not automatically parallelize a single solver. Auto-continuation may rent additional segments up to its budget. Review all costs before confirming.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"quotes",
"name",
"experiment",
"runs",
"confirm_paid_rental",
"idempotency_key"
],
"properties": {
"ssh": {
"type": "string",
"maxLength": 4096
},
"auto": {
"type": "object",
"required": [
"budgetMicro",
"maxSegments"
],
"properties": {
"budgetMicro": {
"type": "integer",
"maximum": 100000000000,
"minimum": 100000
},
"maxSegments": {
"type": "integer",
"maximum": 1000,
"minimum": 2
}
},
"additionalProperties": false
},
"name": {
"type": "string",
"maxLength": 80,
"minLength": 1
},
"runs": {
"type": "array",
"items": {
"type": "object",
"required": [
"params"
],
"properties": {
"params": {
"type": "object",
"propertyNames": {
"maxLength": 64
},
"additionalProperties": {
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 2000
},
{
"type": "boolean"
}
]
}
}
},
"additionalProperties": false
},
"maxItems": 64,
"minItems": 1
},
"seed": {
"type": "integer",
"default": 0,
"maximum": 2147483648,
"minimum": 0
},
"files": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
},
"default": [],
"maxItems": 20
},
"level": {
"enum": [
"student",
"lab",
"frontier"
],
"type": "string",
"default": "student"
},
"config": {
"type": "object",
"propertyNames": {
"maxLength": 64
},
"additionalProperties": {}
},
"quotes": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
},
"maxItems": 4,
"minItems": 1
},
"resume": {
"type": "object",
"required": [
"job"
],
"properties": {
"job": {
"type": "string",
"format": "uuid"
}
},
"additionalProperties": false
},
"experiment": {
"anyOf": [
{
"type": "object",
"required": [
"kind",
"preset"
],
"properties": {
"kind": {
"type": "string",
"const": "preset"
},
"preset": {
"type": "string",
"maxLength": 64
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"entry"
],
"properties": {
"kind": {
"type": "string",
"const": "script"
},
"entry": {
"type": "string",
"pattern": "^[\\w][\\w .()+-]*\\.py$",
"maxLength": 120
},
"title": {
"type": "string",
"maxLength": 120
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"command"
],
"properties": {
"kind": {
"type": "string",
"const": "command"
},
"setup": {
"type": "string",
"default": "",
"maxLength": 20000
},
"title": {
"type": "string",
"maxLength": 120
},
"command": {
"type": "string",
"maxLength": 20000,
"minLength": 1
},
"environment": {
"enum": [
"emt-lab",
"emt-lab-devel",
"emt-lab-jax"
],
"type": "string",
"default": "emt-lab"
}
},
"additionalProperties": false
}
]
},
"idempotency_key": {
"type": "string",
"pattern": "^[A-Za-z0-9_.:-]+$",
"maxLength": 120,
"minLength": 16
},
"confirm_paid_rental": {
"type": "boolean",
"const": true
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}emt_attach_cluster_experiment
Attach work to an already rented dedicated 2–4-node cluster. Does NOT start SSH remotely: run emt_cluster.py locally with the returned job ID and your private key. Whole cluster stops on completion/cancel; billing continues during preparation.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"name",
"experiment",
"runs",
"clusterOrder",
"releaseCluster",
"idempotency_key"
],
"properties": {
"ssh": {
"type": "string",
"maxLength": 4096
},
"name": {
"type": "string",
"maxLength": 80,
"minLength": 1
},
"runs": {
"type": "array",
"items": {
"type": "object",
"required": [
"params"
],
"properties": {
"params": {
"type": "object",
"propertyNames": {
"maxLength": 64
},
"additionalProperties": {
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 2000
},
{
"type": "boolean"
}
]
}
}
},
"additionalProperties": false
},
"maxItems": 64,
"minItems": 1
},
"seed": {
"type": "integer",
"default": 0,
"maximum": 2147483648,
"minimum": 0
},
"files": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
},
"default": [],
"maxItems": 20
},
"level": {
"enum": [
"student",
"lab",
"frontier"
],
"type": "string",
"default": "student"
},
"config": {
"type": "object",
"propertyNames": {
"maxLength": 64
},
"additionalProperties": {}
},
"experiment": {
"anyOf": [
{
"type": "object",
"required": [
"kind",
"preset"
],
"properties": {
"kind": {
"type": "string",
"const": "preset"
},
"preset": {
"type": "string",
"maxLength": 64
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"entry"
],
"properties": {
"kind": {
"type": "string",
"const": "script"
},
"entry": {
"type": "string",
"pattern": "^[\\w][\\w .()+-]*\\.py$",
"maxLength": 120
},
"title": {
"type": "string",
"maxLength": 120
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"command"
],
"properties": {
"kind": {
"type": "string",
"const": "command"
},
"setup": {
"type": "string",
"default": "",
"maxLength": 20000
},
"title": {
"type": "string",
"maxLength": 120
},
"command": {
"type": "string",
"maxLength": 20000,
"minLength": 1
},
"environment": {
"enum": [
"emt-lab",
"emt-lab-devel",
"emt-lab-jax"
],
"type": "string",
"default": "emt-lab"
}
},
"additionalProperties": false
}
]
},
"maxMinutes": {
"type": "integer",
"default": 60,
"maximum": 1440,
"minimum": 10
},
"clusterOrder": {
"type": "string",
"format": "uuid"
},
"releaseCluster": {
"type": "boolean",
"const": true
},
"idempotency_key": {
"type": "string",
"pattern": "^[A-Za-z0-9_.:-]+$",
"maxLength": 120,
"minLength": 16
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": true
}emt_cancel_experiment
Cancel an owned experiment and request release of all its GPU nodes or attached cluster. Unfinished work can be lost. Recheck releasing until false.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"job",
"confirm_stop"
],
"properties": {
"job": {
"type": "string",
"format": "uuid"
},
"confirm_stop": {
"type": "boolean",
"const": true
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": true
}emt_terminate
Terminate every node in an owned rental. Local disks are deleted; retained volumes and backups remain billed. Inspect status until release is confirmed.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"order",
"confirm_local_data_loss"
],
"properties": {
"order": {
"type": "string",
"format": "uuid"
},
"confirm_local_data_loss": {
"type": "boolean",
"const": true
}
},
"additionalProperties": false
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": true
}Prompts
Not advertised
Resources
Not advertised
90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-07: 1 of 1 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 1048 ms
- 95th percentile latency
- 1048 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1048 ms · metadata changed · 22 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http emt-compute-mcp https://emtcompute.com/mcpCodex
codex mcp add emt-compute-mcp --url https://emtcompute.com/mcpCursor
{
"mcpServers": {
"emt-compute-mcp": {
"url": "https://emtcompute.com/mcp"
}
}
}Cline
{
"mcpServers": {
"emt-compute-mcp": {
"type": "streamableHttp",
"url": "https://emtcompute.com/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"emt-compute-mcp": {
"type": "http",
"url": "https://emtcompute.com/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http emt-compute-mcp https://emtcompute.com/mcpClaude Desktop
https://emtcompute.com/mcpWindsurf
{
"mcpServers": {
"emt-compute-mcp": {
"serverUrl": "https://emtcompute.com/mcp"
}
}
}Let your agent find its tools
Find servers like EMT Compute MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other ai and machine learning servers
Do you run EMT Compute MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.