Skip to content

Tool reference

ray-mcp exposes 19 tools across three permission tiers. This reference is generated directly from the server's tool schemas.

Tool Tier Description
ray_capabilities read Report ray-mcp server version, bound kubeconfig context, default namespace, enabled tool tiers, and the CI-tested KubeRay version range
ray_cluster_create write Create a RayCluster from curated params (rayVersion, image, head/worker resources, worker groups, autoscaling) with an optional rawSpec escape hatch merged over them
ray_cluster_delete destructive Delete a RayCluster (two-step confirmed): call WITHOUT confirm to preview and receive a confirmation fingerprint, then re-call with confirm= to delete
ray_cluster_events read Recent, bounded Kubernetes events for a RayCluster — operator/reconcile events on the cluster object merged with scheduler/kubelet events on its pods (FailedScheduling, ErrImagePull, OOMKilled,
ray_cluster_get read Get one RayCluster's distilled status (phase, ready/desired workers, age, health, head service, dashboard URL)
ray_cluster_list read List RayClusters as compact rows (name, namespace, phase, ready/desired workers, age, 1-line health), capped and paginated via an opaque continue token
ray_cluster_scale write Scale a RayCluster worker group: set minReplicas/maxReplicas (autoscaler bounds) and/or replicas (desired count)
ray_cluster_update write Update an existing RayCluster's image, rayVersion, autoscaling toggle, or labels/annotations via Server-Side Apply (read-modify-apply of the live object, so unrelated fields are preserved)
ray_job_delete write Delete a RayJob
ray_job_get read Get a RayJob's distilled, cross-plane status: the KubeRay CRD lifecycle fused with the LIVE Ray job status dialed from the dashboard once the job is scheduled
ray_job_list read List RayJobs as compact rows (name, namespace, deployment status, Ray job status, age, 1-line health), capped and paginated via an opaque continue token
ray_job_logs read Fetch a bounded tail of a RayJob's driver logs from the Ray dashboard (most recent output, line- and byte-capped — never the full buffer)
ray_job_submit write Submit a RayJob (non-blocking) against EXACTLY ONE cluster target: existingCluster (run on a running RayCluster) XOR clusterSpec (create an ephemeral cluster for the job, torn down on finish by default — pass shutdownAfterJobFinishes=false to keep it)
ray_job_wait read Wait (bounded, ≤30s) for a RayJob to reach a condition: 'running' (default — started executing, or already finished) answers 'did it start or is it stuck Pending?'; 'terminal' waits for succeeded/failed/stopped
ray_service_delete destructive Delete a RayService (two-step confirmed): call WITHOUT confirm to preview and receive a confirmation fingerprint, then re-call with confirm= to delete
ray_service_deploy write Deploy a RayService from curated params (serveConfigV2, rayVersion, image, head/worker resources, worker groups, autoscaling) with an optional rawSpec escape hatch merged over them
ray_service_get read Get one RayService's distilled status (serve status, healthy serve endpoints, rollout phase, age, health)
ray_service_list read List RayServices as compact rows (name, namespace, serve status, healthy serve endpoints, age, 1-line health), capped and paginated via an opaque continue token
ray_service_update write Update an existing RayService's serveConfigV2, image, rayVersion, autoscaling, or labels/annotations via Server-Side Apply (read-modify-apply of the live object)

See the Safety tiers page for how the tiers are gated.