Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Ultralytics Platform MCP

NPM · ULTRALYTICS-MCP

MCP server for Ultralytics Platform projects, datasets, training, prediction, exports, and models.

Available components

+6 this week 87 Trust /100

Last scanned (17 hours ago)

Scores higher than 90% of npm servers

Category AI and Machine Learning

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security98
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 31 of 94 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency100
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to amanharshx/ultralytics-mcp). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 7 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability73
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 7002 tokens (~159/item across 44 items; 44 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management47
  • Stability observed for 14 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 3 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 44 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 15 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 40 to 43. That category is still filling its 30-day observation window: 12 days of observed history at the previous scan, 13 at this one. The score rises as the window fills, whether or not the server changes.

  • 13 Oct 26 +5
    • Stability: unverified → 0.37 ▲ functional
  • 3 Oct 26 +15
    • Malware scan: unverified → pass ▲ security
  • 2 Oct 26 66

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 16 Oct 2026 · Analysed npm/ultralytics-mcp@0.1.14

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo amanharshx/ultralytics-mcp
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/amanharshx/ultralytics-mcp/.github/workflows/release.yml@refs/heads/main
Rekor log index 3046196822
Predicate type SLSA build provenance https://slsa.dev/provenance/v1
Subject digest sha512:7c5bf9c104fd052aa416b96386ef8ee7aeb450ed977a0185142cc2803fad88d2a82d2c2952530927627f765eb77b660763686fd76d2b2af3466e1f47d

Background: How many MCP packages publish verified provenance →

Dependencies 94 packages
Packages resolved 94
Stale 31
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 44 exposed · ~7,002 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
auto_annotate_start ~519

Start an auto-annotation run on a dataset by slug, owner/slug, or a ul://owner/datasets/slug URI, labelling it with a model given by owner/project/model, ul://owner/project/model, or slug with a project (state-changing, billable, may cost credits). Requires confirm_cost=true: there is no cost preview, no published rate, and a 402 signals insufficient credits; gauge magnitude with datasets_get (the unlabeled image count by default, the total count when include_annotated is true). Sends only modelId plus any of confidence, iou, class_mapping, and include_annotated the caller sets explicitly, omitting the rest so the server's own defaults (confidence 0.25, iou 0.7, include_annotated false, illustrative only) apply undisturbed. There is no imgsz parameter. class_mapping bridges a model/dataset class-taxonomy mismatch (for example a 1-class model against an 80-class dataset, which otherwise fails outright); it passes through with no length check. Labels are additive, never overwritten, so no overwrite confirmation is needed. Every start snapshots a dataset version before labelling, listed via datasets_get and undoable exactly with dataset_version_restore. Billing settles at run time, not at dismissal, so auto_annotate_stop does not refund a charge already incurred. Use auto_annotate_status to poll and auto_annotate_stop to cancel.

NameTypeReqDescription
class_mappingarray–Model class index -> dataset class index mapping, positioned by model class index. Required to bridge a class-taxonomy mismatch between the model and the dataset; passed through with no length check.
confidencenumber–Confidence threshold for generated labels. Omit to use the server default (currently 0.25).
confirm_costboolean–Must be true to allow a credit-costing auto-annotation run.
datasetstringyesDataset ref by slug, owner/slug, or a ul://owner/datasets/slug URI.
include_annotatedboolean–Re-label images that already carry annotations. Omit to use the server default (currently false).
iounumber–IoU threshold for generated labels. Omit to use the server default (currently 0.7).
modelstringyesModel ref by owner/project/model, ul:// URI, or slug (requires project).
projectstring–Project ref required when model is given by slug.

No output schema declared.

No examples provided.

auto_annotate_status ~116

Get an auto-annotation run's status for a dataset by slug, owner/slug, or a ul://owner/datasets/slug URI. Surfaces activeJob and lastRun unmodified: both null means the dataset has never run one; activeJob carries progress for a run in flight; lastRun carries failed/stopped booleans plus results, or an error when the run failed.

NameTypeReqDescription
datasetstringyesDataset ref by slug, owner/slug, or a ul://owner/datasets/slug URI.

No output schema declared.

No examples provided.

auto_annotate_stop ~180

Stop or dismiss a dataset's auto-annotation run by slug, owner/slug, or a ul://owner/datasets/slug URI. Reads status first and refuses without calling the endpoint when no run is active, since there is nothing to stop. When a run is active it sends the request and surfaces the server's own action verbatim rather than inferring it: cancelled for an active run stopped mid-flight, dismissed for a terminal run's summary being cleared, or none if nothing acted on. Ships ungated, consistent with training_cancel and export_cancel: an off-switch is never gated. An undismissed terminal run does not block the next start, so this never strands anything; dismissal moves no money.

NameTypeReqDescription
datasetstringyesDataset ref by slug, owner/slug, or a ul://owner/datasets/slug URI.

No output schema declared.

No examples provided.

dataset_class_stats ~176

Get per-class annotation counts for a dataset by slug, owner/slug, or a ul://owner/datasets/slug URI. By default omits the bulky histogram and heatmap groups (image size, file size, format, points-per-annotation, bbox distributions, and location/dimension heatmaps), naming them in the summary; pass include_histograms: true to get the full payload unmodified.

NameTypeReqDescription
datasetstringyesDataset ref by slug, owner/slug, or a ul://owner/datasets/slug URI.
include_histogramsboolean–Include the histogram and heatmap groups omitted by default (image size, file size, format, points-per-annotation, bbox distributions, and location/dimension heatmaps). Off by default because the pay…

No output schema declared.

No examples provided.

dataset_export ~82

Get a time-limited export download link for a dataset by slug, owner/slug, or a ul://owner/datasets/slug URI, for the latest export or one frozen version.

NameTypeReqDescription
datasetstringyesDataset ref by slug, owner/slug, or a ul://owner/datasets/slug URI.
versionnumber–Saved version number.

No output schema declared.

No examples provided.

dataset_images_list ~176

List images in a dataset by slug, owner/slug, or a ul://owner/datasets/slug URI with optional filtering.

NameTypeReqDescription
classIdsarray–Class IDs to filter by. An empty array is treated as no filter (all images match), not as a filter that excludes everything.
datasetstringyesDataset ref by slug, owner/slug, or a ul://owner/datasets/slug URI.
hasLabelboolean–Filter by annotation state.
includeImageUrlsboolean–Include signed full-size image URLs.
limitnumber–Maximum images to return.
offsetnumber–Images to skip.
searchstring–Image name or metadata search.
splitstring–Dataset split to filter by, for example train, val, or test.

No output schema declared.

No examples provided.

dataset_ingest ~159

Start a remote URL ingest job for a dataset by slug, owner/slug, or a ul://owner/datasets/slug URI. Defaults conflictPolicy to skip (the platform default is undocumented). Reports the queued job id with the dataset's current ingest status; use datasets_get to follow up.

NameTypeReqDescription
conflictPolicystring–Conflict policy, e.g. "skip" (default), "keep_both", or "replace". Server-validated.
datasetstringyesDataset ref by slug, owner/slug, or a ul://owner/datasets/slug URI.
sourceUrlstringyesRemote dataset archive or NDJSON URL.
targetSplitstring–Target split for new images (overrides archive structure).

No output schema declared.

No examples provided.

dataset_upload_file ~162

Upload a local dataset archive through the signed-upload flow for a dataset by slug, owner/slug, or a ul://owner/datasets/slug URI. Defaults conflictPolicy to skip (the platform default is undocumented). Reports the queued job id with the dataset's current ingest status; use datasets_get to follow up.

NameTypeReqDescription
conflictPolicystring–Conflict policy, e.g. "skip" (default), "keep_both", or "replace". Server-validated.
datasetstringyesDataset ref by slug, owner/slug, or a ul://owner/datasets/slug URI.
file_pathstringyesLocal path to dataset archive file.
targetSplitstring–Target split for new images (overrides archive structure).

No output schema declared.

No examples provided.

dataset_upload_folder ~182

Upload a local image folder as a zip through the signed-upload flow for a dataset by slug, owner/slug, or a ul://owner/datasets/slug URI. Defaults conflictPolicy to skip (the platform default is undocumented). Reports the queued job id with the dataset's current ingest status; use datasets_get to follow up.

NameTypeReqDescription
conflictPolicystring–Conflict policy, e.g. "skip" (default), "keep_both", or "replace". Server-validated.
datasetstringyesDataset ref by slug, owner/slug, or a ul://owner/datasets/slug URI.
folder_pathstringyesLocal path to image folder.
targetSplitstring–Target split for new images. Rejected if the folder itself has train/val/test subdirectories; use one or the other, not both.

No output schema declared.

No examples provided.

dataset_upload_video ~204

Upload a local video as extracted frames through the signed-upload flow for a dataset by slug, owner/slug, or a ul://owner/datasets/slug URI. Defaults conflictPolicy to skip (the platform default is undocumented). Reports the queued job id with the dataset's current ingest status; use datasets_get to follow up.

NameTypeReqDescription
conflictPolicystring–Conflict policy, e.g. "skip" (default), "keep_both", or "replace". Server-validated.
datasetstringyesDataset ref by slug, owner/slug, or a ul://owner/datasets/slug URI.
fpsnumber–Maximum frame extraction rate in frames per second; may be reduced to keep the total within max_frames.
max_framesinteger–Maximum number of frames to extract.
targetSplitstring–Target split for new images (overrides archive structure).
video_pathstringyesLocal path to source video file.

No output schema declared.

No examples provided.

dataset_version_create ~91

Create a frozen dataset version snapshot by slug, owner/slug, or a ul://owner/datasets/slug URI. If the dataset is unchanged since the previous snapshot the existing version is returned instead of a new one.

NameTypeReqDescription
datasetstringyesDataset ref by slug, owner/slug, or a ul://owner/datasets/slug URI.
descriptionstring–Optional note describing this snapshot.

No output schema declared.

No examples provided.

dataset_version_restore ~242

Restore a dataset to a previously saved version by slug, owner/slug, or a ul://owner/datasets/slug URI, and an integer version number. Versions are listed via datasets_get (the versions array, already returned unprojected). This REPLACES the dataset's current images, labels, and splits with that snapshot outright: anything done since that version, including un-versioned manual annotation work, is discarded. Ships ungated anyway, since it is the undo tool — an auto-annotate run snapshots a version before labelling, so restoring that version undoes the run exactly, and a mistaken restore is itself recoverable by restoring a later version. Restore also reassigns image IDs: a pre-restore image ID still resolves afterward but returns an empty label array rather than a 404, so callers must re-list images (for example with dataset_images_list) after a restore instead of reusing held IDs.

NameTypeReqDescription
datasetstringyesDataset ref by slug, owner/slug, or a ul://owner/datasets/slug URI.
versionintegeryesVersion number to restore, as listed in datasets_get's versions array.

No output schema declared.

No examples provided.

datasets_create ~141

Create a dataset in your Ultralytics workspace. Defaults to private visibility (the platform defaults to public when visibility is omitted).

NameTypeReqDescription
classNamesarray–Initial class names for the dataset.
datasetstringyesURL slug for the new dataset (distinct from the display name given by name).
descriptionstring–Dataset description.
namestringyesDisplay name.
ownerstring–Workspace owner; defaults to the account owner.
taskstringyesDataset task. Server-validated; for example detect, segment, or classify.
visibilitystring–Visibility "private" (default) or "public".

No output schema declared.

No examples provided.

datasets_delete ~88

Delete a dataset by slug, owner/slug, or a ul://owner/datasets/slug URI. Deleting a dataset moves its images and annotations to trash with it; models trained on it are not deleted. Trashed items remain restorable for a bounded window.

NameTypeReqDescription
datasetstringyesDataset ref by slug, owner/slug, or a ul://owner/datasets/slug URI.

No output schema declared.

No examples provided.

datasets_get ~57

Get details for one dataset by slug, owner/slug, or a ul://owner/datasets/slug URI.

NameTypeReqDescription
datasetstringyesDataset ref by slug, owner/slug, or a ul://owner/datasets/slug URI.

No output schema declared.

No examples provided.

datasets_list ~52

List datasets in your Ultralytics workspace.

NameTypeReqDescription
ownerstring–Workspace owner; defaults to the account owner. Takes precedence over username when both are given.
usernamestring–Compatibility alias for owner.

No output schema declared.

No examples provided.

deployment_get ~60

Get details for one deployment by owner/deployment or a bare slug (owner defaults to the account owner). serviceUrl and deployedAt are null until the deployment reaches status ready.

NameTypeReqDescription
deploymentstringyesDeployment ref by owner/deployment or a bare slug.

No output schema declared.

No examples provided.

deployment_health ~72

Probe one deployment's health by owner/deployment or a bare slug (owner defaults to the account owner). status is the upstream HTTP status the health probe observed at the deployment's own service URL, not the status of this tool call.

NameTypeReqDescription
deploymentstringyesDeployment ref by owner/deployment or a bare slug.

No output schema declared.

No examples provided.

deployment_logs ~181

Read log entries for one deployment by owner/deployment or a bare slug (owner defaults to the account owner). severity is passed through to the server unvalidated (illustrative values: DEBUG, INFO, NOTICE, WARNING, ERROR, CRITICAL, ALERT, EMERGENCY); an invalid value returns the server's own rejection message. limit defaults to 50, max 200. nextPageToken pages through older entries.

NameTypeReqDescription
deploymentstringyesDeployment ref by owner/deployment or a bare slug.
limitinteger–Max entries to return (default 50, max 200).
pageTokenstring–Pagination token from a previous call's nextPageToken.
severitystring–Comma-separated log severity levels, passed through unvalidated (e.g. INFO or WARNING,ERROR). Exact match, not a minimum threshold.

No output schema declared.

No examples provided.

deployment_metrics ~222

Read metrics for one deployment by owner/deployment or a bare slug (owner defaults to the account owner). The response is one of two shapes selected by sparkline: the default shape carries timeRange (a {start, end} object)/summary/timeSeries, sparkline=true carries requests24h (an array of per-hour points, not a total)/totalRequests/errorRate/avgLatencyMs. The two are never merged; which shape came back is returned as-is. range (e.g. 1h, 24h, 7d; default 24h) is passed through to the server unvalidated.

NameTypeReqDescription
deploymentstringyesDeployment ref by owner/deployment or a bare slug.
rangestring–Time range, passed through unvalidated (e.g. 1h, 24h, 7d; default 24h).
sparklineboolean–When true, selects the compact sparkline shape (requests24h, totalRequests, errorRate, avgLatencyMs) instead of the detailed shape.

No output schema declared.

No examples provided.

deployment_predict ~211

Run inference through a deployment's own serving endpoint on a local image or video file, by owner/deployment or a bare slug (owner defaults to the account owner). Returns images/metadata verbatim, including undocumented metadata fields. No per-request cost is documented for this endpoint; costs follow the deployment's own resource configuration. A cold start on a scaled-to-zero deployment may respond slowly or with a 503 — check deployment_health rather than retrying blindly.

NameTypeReqDescription
confnumber–Confidence threshold (0.01-1, server default applies if omitted).
deploymentstringyesDeployment ref by owner/deployment or a bare slug.
imagePathstringyesLocal path to an image or video file, uploaded as-is. The server decides which formats it accepts.
imgsznumber–Inference image size (32-1280, server default applies if omitted).
iounumber–IoU threshold (0-0.95, server default applies if omitted).

No output schema declared.

No examples provided.

deployment_stop ~138

Stop a deployment by owner/deployment or a bare slug (owner defaults to the account owner). Sends only {action: stop}; the endpoint's start/resize/replace actions are unreachable from this tool. Stopping preserves the deployment's URL and configuration and still counts toward deployment quota; it is a money-off switch and ships ungated, consistent with training_cancel and export_cancel. Stopping an already-stopped deployment is rejected by the server (400) rather than treated as a success. Reversing this (start) is not available in this tool set.

NameTypeReqDescription
deploymentstringyesDeployment ref by owner/deployment or a bare slug.

No output schema declared.

No examples provided.

deployments_list ~33

List model deployments in your Ultralytics workspace.

NameTypeReqDescription
ownerstring–Workspace owner; defaults to the account owner.

No output schema declared.

No examples provided.

explore_datasets ~78

Search public datasets on Ultralytics Explore.

NameTypeReqDescription
offsetinteger–Results to skip.
qstringyesSearch term.
sortstring–Sort order for results. Server-validated; for example stars or newest.
taskarray–Dataset task filters. Server-validated; for example detect or segment.

No output schema declared.

No examples provided.

explore_projects ~57

Search public projects on Ultralytics Explore.

NameTypeReqDescription
offsetinteger–Results to skip.
qstringyesSearch term.
sortstring–Sort order for results. Server-validated; for example stars or newest.

No output schema declared.

No examples provided.

export_cancel ~162

Cancel an active export job for a model by owner/project/model, ul://owner/project/model, or slug with a project, plus the export id. Checks the export's status first and sends the cancellation only while it is still active, refusing on any terminal status; the same API verb deletes a finished export's artifact irreversibly instead of cancelling it. The status check cannot be atomic: an export that finishes between the check and the request will have its artifact deleted rather than cancelled, and that deletion cannot be undone.

NameTypeReqDescription
export_idstringyesExport job id.
modelstringyesModel ref by owner/project/model, ul:// URI, or slug (requires project).
projectstring–Project ref required when model is given by slug.

No output schema declared.

No examples provided.

export_create ~240

Create a model export job by owner/project/model, ul://owner/project/model, or slug with a project (state-changing, may cost credits). The format is validated immediately by the server; task and architecture compatibility is only known when the job runs, so a queued export can still fail. Use export_status and exports_list for the real outcome. Requires confirm_cost=true.

NameTypeReqDescription
confirm_costboolean–Must be true to allow a credit-costing export job.
dynamicboolean–Dynamic input shapes.
formatstringyesRequested export format (validated by the server).
gpu_typestring–GPU type required for TensorRT engine exports.
imgsznumber–Image size for export.
modelstringyesModel ref by owner/project/model, ul:// URI, or slug (requires project).
projectstring–Project ref required when model is given by slug.
quantizenumber|string–Export precision. Server-validated; for example 16 or "fp16" for FP16, 8 or "int8" for INT8. Omit to let the exporter choose.

No output schema declared.

No examples provided.

export_status ~89

Get one export job's status for a model by owner/project/model, ul://owner/project/model, or slug with a project, plus the export id.

NameTypeReqDescription
export_idstringyesExport job id.
modelstringyesModel ref by owner/project/model, ul:// URI, or slug (requires project).
projectstring–Project ref required when model is given by slug.

No output schema declared.

No examples provided.

exports_list ~70

List export jobs for a model by owner/project/model, ul://owner/project/model, or slug with a project.

NameTypeReqDescription
modelstringyesModel ref by owner/project/model, ul:// URI, or slug (requires project).
projectstring–Project ref required when model is given by slug.

No output schema declared.

No examples provided.

gpu_availability ~20

Get current cloud-GPU stock status by GPU type.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

model_download ~153

Download a trained model's weight file to an explicit local path by owner/project/model, ul://owner/project/model, or slug with a project.

NameTypeReqDescription
filenamestring–Select which of the model's remote weight files to download by name; does not set the local output filename (use output_path for that). Omit to prefer best.pt, then the first available file.
modelstringyesModel ref by owner/project/model, ul:// URI, or slug (requires project).
output_pathstringyesLocal destination path for downloaded model weights.
overwriteboolean–Overwrite an existing file at output_path.
projectstring–Project ref required when model is given by slug.

No output schema declared.

No examples provided.

model_metrics ~381

Report a model's best training epoch and its reported metrics, labelled so neither can be mistaken for the other (works for private and public projects). bestEpoch, bestFitness, and bestEpochMetrics are stated only when exactly one trainResults record has the reported bestEpoch and that record's fitness exactly equals the reported bestFitness; otherwise all three are null and bestEpochNote keeps the platform's raw values and says why (older Ultralytics versions reported the last epoch as bestEpoch). reportedMetrics is the model's top-level metrics field verbatim; the API does not say which evaluation produced it (on finished Platform-trained runs observed live it matches the post-training evaluation of the best checkpoint, not the last training epoch), so it makes no epoch claim. resultRecordCount counts trainResults records, not epochs. include_train_args adds the full trainArgs object (111 keys observed live), omitted by default. include_history adds the last N records in API order and always states the window it covers, with record counts, the min/max reported epoch, and duplicate and missing epoch numbers in that range.

NameTypeReqDescription
history_last_ninteger–Limit the history to the last N records in API order (default 20). Truncates a long run to its tail; the response always reports the window it covers (record counts and the min/max reported epoch), s…
include_historyboolean–Include the trainResults history (per-record epoch and metrics); omitted by default.
include_train_argsboolean–Include the full trainArgs object; off by default because the platform returns roughly a hundred keys.
modelstringyesModel ref by owner/project/model, ul:// URI, or slug (requires project).
projectstring–Project ref required when model is given by slug.

No output schema declared.

No examples provided.

model_plots ~246

Report a model's evaluation plots (per-class pr_curve, f1_curve, precision_curve, recall_curve, confusion_matrix), which model_metrics and training_monitor do not surface. By default lists each plot's type and the shape of its fields (array lengths only, never the values) since one pr_curve alone can carry thousands of numbers on a multi-class model; pass type to get that one plot's data back exactly as the platform returned it, unmodified. Field shapes vary by type: pr_curve/f1_curve/precision_curve/recall_curve carry x/y (and pr_curve additionally ap); confusion_matrix carries a matrix field instead, not x/y/ap. Plot presence does not track training history: a model can have plots with no trainResults, or (rarely) plots: [] on an otherwise completed model.

NameTypeReqDescription
modelstringyesModel ref by owner/project/model, ul:// URI, or slug (requires project).
projectstring–Project ref required when model is given by slug.
typestring–Return this one plot's full data unmodified (e.g. pr_curve, confusion_matrix). Omit to list what's available.

No output schema declared.

No examples provided.

model_predict ~264

Run inference with a trained model on an image URL or base64 image (`source`), or on a local image or video file (`file_path`). Give exactly one.

NameTypeReqDescription
confnumber–Confidence threshold (0.01-1, server default applies if omitted).
file_pathstring–Local path to an image or video file, uploaded as-is. The server decides which formats and sizes it accepts.
imgsznumber–Inference image size (32-1280, server default applies if omitted).
iounumber–IoU threshold used for NMS (0-0.95, server default applies if omitted).
modelstringyesModel ref by owner/project/model, ul:// URI, or slug (requires project).
projectstring–Project ref required when model is given by slug.
sourcestring–Image URL, base64-encoded image (standard or URL-safe; optional padding; ASCII whitespace ignored), or base64 data: URI (data:<mime>;base64,<payload>). Base64 is uploaded as an image file, bypassing…

No output schema declared.

No examples provided.

models_delete ~92

Soft-delete a model by owner/project/model, ul://owner/project/model, or slug with a project. Deleted models go to trash and remain restorable; weights, training history, and exports are removed only on permanent deletion.

NameTypeReqDescription
modelstringyesModel ref by owner/project/model, ul:// URI, or slug (requires project).
projectstring–Project ref required when model is given by slug.

No output schema declared.

No examples provided.

models_get ~95

Get details for one model by owner/project/model, ul://owner/project/model, or slug with a project. Model quality (best epoch and fitness) is not included; use model_metrics, which validates the platform's best-epoch fields.

NameTypeReqDescription
modelstringyesModel ref by owner/project/model, ul:// URI, or slug (requires project).
projectstring–Project ref required when model is given by slug.

No output schema declared.

No examples provided.

models_list ~97

List models in a project by slug, owner/slug, or project ul:// URI. Model quality is not included; use model_metrics, which validates the platform's best-epoch fields.

NameTypeReqDescription
limitnumber–Maximum models to return. Omit for the server default (currently 20); the API currently accepts up to 100.
projectstringyesProject ref by slug, owner/slug, or ul:// URI.

No output schema declared.

No examples provided.

projects_create ~105

Create a project in your Ultralytics workspace. Defaults to private visibility (the platform defaults to public when visibility is omitted).

NameTypeReqDescription
descriptionstring–Project description.
namestringyesDisplay name.
ownerstring–Workspace owner; defaults to the account owner.
projectstringyesURL slug for the new project (distinct from the display name given by name).
visibilitystring–Visibility "private" (default) or "public".

No output schema declared.

No examples provided.

projects_delete ~59

Soft-delete a project by slug, owner/slug, or project ul:// URI. Deleted projects land in trash and remain restorable for a bounded window.

NameTypeReqDescription
projectstringyesProject ref by slug, owner/slug, or ul:// URI.

No output schema declared.

No examples provided.

projects_get ~46

Get details for one project by slug, owner/slug, or project ul:// URI.

NameTypeReqDescription
projectstringyesProject ref by slug, owner/slug, or ul:// URI.

No output schema declared.

No examples provided.

projects_list ~86

List computer-vision projects in your Ultralytics workspace.

NameTypeReqDescription
limitnumber–Maximum projects to return. Omit for the server default (currently 20); the API currently accepts up to 500.
ownerstring–Workspace owner; defaults to the account owner. Takes precedence over username when both are given.
usernamestring–Compatibility alias for owner.

No output schema declared.

No examples provided.

training_cancel ~105

Cancel a running training job by owner/project/model, ul://owner/project/model, or slug with a project. Cancelling releases the compute instance; elapsed GPU time is still charged and the most recently uploaded checkpoint is preserved rather than discarded. This stops the job and does not delete the model.

NameTypeReqDescription
modelstringyesModel ref by owner/project/model, ul:// URI, or slug (requires project).
projectstring–Project ref required when model is given by slug.

No output schema declared.

No examples provided.

training_monitor ~358

Report a model's training status and progress (works for private and public projects). reportedCurrentEpoch, reportedProgressPercentage, and etaMs are the training job's own counters, passed through verbatim; after a run ends reportedCurrentEpoch can count a post-training evaluation as an epoch, so it may be one higher than the epochs actually trained, with reportedProgressPercentage inflated to match, and etaMs can stay nonzero. With no training job, progress is reported unavailable rather than inferred. resultRecordCount counts trainResults records, which are not epochs: a history can include a post-training evaluation record, duplicate or missing epoch numbers, and records out of epoch order. lastReportedMetrics is the last record in API order with its reported epoch, not necessarily the latest epoch. Model quality (best epoch, the model's reported metrics) belongs to model_metrics. timing.elapsedMs is wall-clock since model creation, evaluated at request time: it tracks elapsed run time while training is active, but for a finished model it reflects the model's age, not training duration. Billed training time is computeCost.durationMs.

NameTypeReqDescription
history_last_ninteger–Limit the history to the last N records in API order (default 20). Truncates a long run to its tail; the response always reports the window it covers (record counts and the min/max reported epoch), s…
include_historyboolean–Include the trainResults history (per-record epoch and metrics); omitted by default.
modelstringyesModel ref by owner/project/model, ul:// URI, or slug (requires project).
projectstring–Project ref required when model is given by slug.

No output schema declared.

No examples provided.

training_start ~655

Start a cloud training job from an existing model or official YOLO base checkpoint (state-changing, may cost credits). Trains on exactly one dataset and requires epochs. The dataset is validated immediately, so an unusable dataset is rejected before any compute starts. In checkpoint mode a project model is created first, then the checkpoint's task is checked against the dataset's task server-side when training starts, by which point the model already exists — a mismatch there still leaves that model behind, unrequested, and the error names it so it can be reviewed and deleted (models_delete) if unwanted. Starting is billable immediately: the platform has no cost preview before that, so the projected cost and remaining balance are only reported after the job starts. Training an existing model that already has a recorded run (any status past pending/untrained) replaces that model's status, epoch count, and training result history the instant the new job starts, and that history cannot be recovered afterward; the previously uploaded weights survive. That path requires confirm_history_loss=true in addition to confirm_cost=true. Checkpoint mode never destroys an existing model's history since it always creates a new one, so it never needs confirm_history_loss — its own risk is the possible leftover model described above. An untrained or never-trained model needs no extra confirmation either. Use training_cancel to stop a job that is already running. Requires confirm_cost=true.

NameTypeReqDescription
batchnumber–Images per batch: -1 targets about 60% GPU memory, a value between 0 and 1 sets a memory fraction, and a positive integer fixes the image count.
confirm_costboolean–Must be true to allow a credit-costing training run. Starting is billable immediately; the platform has no cost preview before that, so the estimated cost and remaining balance are only reported afte…
confirm_history_lossboolean–Must be true to restart training on an existing model that already has a recorded run. Doing so replaces that model's status, epoch count, and training result history irrecoverably; the previously up…
datasetstringyesDataset ref by slug, owner/slug, or a ul://owner/datasets/slug URI.
epochsintegeryesMaximum full passes over the training set.
gpu_typestringyesCloud GPU type to allocate for training.
imgsznumber–Target input size: square batches normally, or the long-side size with rect=true.
modelstringyesExisting model ref, or official YOLO base checkpoint such as yolo11n.pt or yolo11n-seg.pt. Checkpoint mode auto-creates a project model.
namestring–Run name for callbacks.
projectstringyesProject ref that owns the training job and resolved model.
train_argsobject–Additional YOLO training arguments passed through to the platform. epochs, imgsz, batch, and name here are silently overridden by the matching top-level input when both are set; data and model are re…

No output schema declared.

No examples provided.

Install

How do I install the Ultralytics Platform MCP server?

Ultralytics Platform MCP runs locally as an npm package, launched with npx -y ultralytics-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · ultralytics-mcp

# add to Claude Code
claude mcp add amanharshx-ultralytics-mcp -- npx -y ultralytics-mcp
Common questions

What is the Ultralytics Platform MCP server?

Ultralytics Platform MCP is listed in the public MCP registry as io.github.amanharshx/ultralytics-mcp. MCP server for Ultralytics Platform projects, datasets, training, prediction, exports, and models. This page covers its npm package (ultralytics-mcp).

Is the Ultralytics Platform MCP server safe to use?

Ultralytics Platform MCP scores 87 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 16 October 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Ultralytics Platform MCP server expose?

Ultralytics Platform MCP exposes 44 tools: projects_list, projects_get, explore_projects, datasets_list, datasets_get, and 39 more. Their descriptions and schemas cost roughly 7,002 tokens of context every time the server is loaded.

Is the Ultralytics Platform MCP server still maintained?

Ultralytics Platform MCP is still listed as active in the MCP registry. We last reached this channel on 16 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Ultralytics Platform MCP server under?

Ultralytics Platform MCP declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.