Work on your Roboflow projects together with AI. Connect Claude Code (or any MCP-compatible agent) to your workspace. It can create projects, upload data, train models, build Workflows, and guide you through the visual steps in the Roboflow UI. You handle what you're best at (seeing, labeling, judging results), your agent handles the rest.
Demo
Adding MCP
The Roboflow MCP server uses OAuth for authentication - no API key needed. You'll be prompted to sign in to Roboflow on first use.
Claude Connector (Recommended)
Add Roboflow as a connector in your Claude account. Once connected, it works everywhere - Claude.ai, Claude Desktop, and Claude Code.
Add Roboflow to Claude - click the link, confirm, and you're done. You'll be prompted to sign in to Roboflow with OAuth on first use.
Claude Code CLI
claude mcp add -s user roboflow \
--transport http https://mcp.roboflow.com/mcpCursor
Install the Roboflow plugin from the Cursor marketplace, or run /add-plugin roboflow in Cursor. Either installs the MCP server along with Roboflow's skills. Sign in to Roboflow with OAuth on first use.
To configure the server manually instead, add this to Cursor's MCP config (~/.cursor/mcp.json):
{
"mcpServers": {
"roboflow": {
"type": "http",
"url": "https://mcp.roboflow.com/mcp"
}
}
}Codex
Add this to ~/.codex/config.toml:
[mcp_servers.roboflow]
url = "https://mcp.roboflow.com/mcp"Connecting MCP Gateways (Pre-Registered Credentials)
Most MCP clients (Cursor, Claude Desktop, VS Code, Claude Code) register automatically using Dynamic Client Registration. Some platforms require a pre-registered client_id and client_secret instead - for example, Azure AI Foundry agents, Microsoft Copilot Studio, and TrueFoundry AI Gateway.
To connect one of these platforms:
- Go to Workspace Settings > Developer in the Roboflow dashboard
- Click "Create OAuth App" and fill in a name, redirect URI (matching your gateway's callback URL), and allowed scopes
- Set "Token endpoint authentication" to match your gateway:
client_secret_basic(HTTP Basic header, used by Azure and TrueFoundry) orclient_secret_post(secret in the form body) - Copy the Client ID and Client Secret (shown once)
- In your gateway's connector form, enter:
| Field | Value |
|---|---|
| MCP Server URL | https://mcp.roboflow.com/mcp |
| Authorization URL | https://app.roboflow.com/oauth/authorize |
| Token URL | https://app.roboflow.com/oauth/token |
| Discovery (OAuth AS metadata) | https://app.roboflow.com/.well-known/oauth-authorization-server |
| Scopes | Space-separated list (ex: workspace:read project:read model:infer offline_access) |
Include offline_access in your scope list if the gateway supports refresh tokens.
For the full scope catalog, see Available Scopes.
Tools
The server exposes 141 tools. Most MCP clients namespace them, so projects_list appears as mcp__roboflow__projects_list. Each tool declares the OAuth scopes it needs, and your client only gets the scopes you approve at sign-in.
Agent
Hand a task to the Roboflow agent and collect what it produced.
| Tool | Description |
|---|---|
agent_chat | Chat with the Roboflow AI agent for Q&A, Workflow building, and solution planning. |
agent_chat_result | Collect the result of an agent_chat run that was still working. |
agent_conversations_list | List agent conversations in the workspace. |
agent_conversation_get | Get one conversation with its message history. |
agent_workflow_publish | Publish the latest agent-edited draft of a Workflow. |
Projects
Create and inspect projects in your workspace.
| Tool | Description |
|---|---|
projects_list | List projects in the workspace. |
projects_get | Get project detail including versions, classes, splits, and trained models. |
projects_create | Create a new computer vision project. |
projects_delete | Delete a project, moving it to the workspace Trash. |
projects_fork | Enqueue an async fork of a public Universe project into your workspace. |
projects_health | Get the dataset health check for a project. |
datasets_rebalance_splits | Enqueue an async rebalance of a project's train, valid, and test splits. |
Images
Upload images and find them again later.
| Tool | Description |
|---|---|
image_upload | Upload local image files to a project via a zip. |
image_upload_status | Check the status of an image zip upload task. |
images_search | Search for images inside a project. |
images_workspace_search | Search images across the entire workspace using RoboQL. |
images_update_metadata | Update metadata and tags on a single image. |
images_batch_update_metadata | Batch-update metadata and tags on multiple images. |
Annotation
Save labels and run automatic labeling.
| Tool | Description |
|---|---|
annotations_save | Save an annotation for an existing image. |
autolabel_start | Start a hosted auto label job over a batch of images. |
autolabel_job_get | Get per-subjob status and progress for an auto label job. |
Batches
Group uploaded images before they enter labeling.
| Tool | Description |
|---|---|
annotation_batches_list | List upload batches in a project. |
annotation_batches_get | Get details about one upload batch. |
annotation_batches_create | Move selected images from one batch into a new batch. |
annotation_batches_merge | Move all images from source batches into a target batch. |
annotation_batches_delete | Delete a batch and move its images to unassigned. |
annotation_batches_admin_list | List annotation board batches with cursor pagination. |
annotation_batches_admin_get | Get details about one annotation board batch. |
annotation_batches_admin_images_list | List image IDs in a batch with cursor pagination. |
Annotation Jobs
Assign labeling work, run review, and accept results into the Dataset.
| Tool | Description |
|---|---|
annotation_jobs_list | List annotation jobs in a project. |
annotation_jobs_get | Get details about one annotation job. |
annotation_jobs_create | Create a job and move images from a batch into it. |
annotation_jobs_update | Update a job's labeler, reviewer, or instructions. |
annotation_jobs_images_list | List image IDs assigned to a job. |
annotation_jobs_images_add | Move images into an existing job. |
annotation_jobs_images_reassign | Create a job from selected images and clear their prior assignment. |
annotation_jobs_submit_for_review | Advance a labeling job into review. |
annotation_jobs_return_for_edits | Move a review job back to labeling, optionally with a new labeler. |
annotation_jobs_review_image | Set the review status for one image in a job. |
annotation_jobs_review_images | Set a status for every job image matching a current status. |
annotation_jobs_accept_into_dataset | Finalize job images into the Dataset and assign splits. |
annotation_jobs_move_to_unassigned | Remove a job and move its images to an unassigned batch. |
annotation_jobs_delete_annotations | Delete the annotation data for every image assigned to a job. |
Versions
Freeze a dataset version and export it.
| Tool | Description |
|---|---|
versions_generate | Create a version with optional preprocessing and augmentation. |
versions_get | Get version info including splits and its trainings. |
versions_export | Check or trigger a dataset export for a version. |
versions_delete | Delete a version, moving it to the workspace Trash. |
Models and Training
Train models, watch progress, and run inference.
| Tool | Description |
|---|---|
trainings_describe_recipe | Describe the tuning options for a model type and return a ready-to-submit recipe. |
trainings_create | Start a training run on a dataset version. |
trainings_list | List the training runs on a dataset version. |
trainings_get | Get a training's status, produced models, and metrics. |
trainings_stop | Request an early stop on an in-flight training run. |
trainings_cancel | Cancel an in-flight training run. |
trainings_delete | Delete a training run, moving it to the workspace Trash. |
models_list | List trained models in a project. |
models_get | Get details for a trained model. |
models_infer | Run hosted inference on an image using a trained model. |
models_upload_custom_weights | Get the recipe for uploading locally trained weights to Roboflow. |
models_star_nas | Star or unstar a model found by neural architecture search. |
Model Evaluations
Read mAP, confusion matrices, and per-class results.
| Tool | Description |
|---|---|
model_evals_list | List model evaluations in the workspace. |
model_evals_get | Get the top-level summary for one evaluation. |
model_evals_get_map_results | Get per-split mAP results. |
model_evals_get_confidence_sweep | Get the precision, recall, and F1 confidence sweep. |
model_evals_get_performance_by_class | Get per-class performance metrics for one split. |
model_evals_get_confusion_matrix | Get the confusion matrix. |
model_evals_get_image_predictions | Get per-image prediction stats, paginated. |
model_evals_get_vector_analysis | Get clustering of image embeddings for the evaluation. |
model_evals_get_recommendations | Get generated recommendations for the evaluation, if available. |
Workflows
Build, validate, and run inference pipelines.
| Tool | Description |
|---|---|
workflows_list | List saved Workflows in the workspace. |
workflows_get | Get details for a saved Workflow. |
workflows_create | Create and save a new Workflow. |
workflows_update | Update a saved Workflow's name and definition. |
workflows_delete | Delete a saved Workflow, moving it to the workspace Trash. |
workflows_run | Execute a saved Workflow on one or more images. |
workflow_specs_validate | Validate a Workflow JSON definition without running it. |
workflow_specs_run | Execute a Workflow from an inline JSON definition. |
workflow_blocks_list | List all available Workflow blocks with a short summary of each. |
workflow_blocks_get_schema | Get the full schema of one Workflow block. |
Project Deployment
Manage a project's stable live endpoint and Active Learning.
| Tool | Description |
|---|---|
project_deployment_get | Get the live endpoint state for a project. |
project_deployment_launch | Create or prepare a Project Deployment. |
project_deployment_set_model | Change the default model behind a deployment without changing its endpoint. |
project_deployment_run | Run inference through the project's live endpoint. |
project_deployment_enable_active_learning | Enable Active Learning for a deployment. |
project_deployment_disable_active_learning | Pause Active Learning collection. |
project_deployment_configure_active_learning | Configure how a deployment collects Active Learning data. |
project_deployment_list_review_queues | List review queues fed by production inference. |
Vision Events
Query production events and manage use cases.
| Tool | Description |
|---|---|
vision_events_query | Query production vision events with filters and pagination. |
vision_events_use_cases_list | List the vision event use cases in the workspace. |
vision_events_custom_metadata_schema_get | Get the custom metadata schema discovered for a use case. |
vision_events_use_case_create | Create a new use case. |
vision_events_use_case_rename | Rename an existing use case. |
vision_events_use_case_archive | Archive a use case. |
vision_events_use_case_unarchive | Restore a previously archived use case. |
Devices and Streams
Monitor and configure edge devices managed by Deployment Manager.
| Tool | Description |
|---|---|
devices_list | List devices registered in the workspace. |
devices_get | Get a single device by id. |
devices_create | Provision a new device. |
devices_get_snapshot | Get the full current state of a device in one call. |
devices_get_config | Get the device's current runtime configuration. |
devices_update_config | Update the device's runtime configuration. |
devices_get_default_config | Get the workspace's default device configuration. |
devices_get_config_history | List prior configuration revisions, newest first. |
devices_streams_list | List streams configured on the device. |
devices_streams_get | Get a single stream by id. |
devices_get_logs | Fetch device logs. |
devices_get_telemetry | Get aggregated hardware metrics and device health. |
devices_get_deployments | Get the device's deployment history with per-deployment activity. |
devices_get_events | List device and stream lifecycle events. |
devices_get_exception_occurrences | List raw occurrences of one exception fingerprint, newest first. |
Cloud Storage
Mirror an S3 or GCS bucket into a project.
| Tool | Description |
|---|---|
connect_cloud_storage | Set up a bucket mirror end to end, from credential to first run. |
credentials_list | List cloud storage credentials in the workspace. |
credentials_create | Create a cloud storage credential. |
credentials_delete | Delete a credential. |
datasources_list | List bucket mirror configurations in the workspace. |
datasource_get | Get full detail for a single datasource. |
datasource_create | Create a datasource that mirrors a bucket path into a project. |
datasource_update | Update a datasource. Only the fields you pass change. |
datasource_delete | Delete a datasource. Already mirrored images stay in the project. |
datasource_validate | Check that Roboflow can reach the datasource's bucket. |
datasource_trigger | Start a mirror run. |
datasource_job_get | Get the status and statistics of one mirror run. |
Universe
Search public datasets and models on Roboflow Universe.
| Tool | Description |
|---|---|
universe_search | Search Roboflow Universe for datasets or models. |
universe_dataset_images_search | Search images inside a public Universe dataset given its URL. |
Media
Look at an image or video before deciding what to build.
| Tool | Description |
|---|---|
media_upload | Prepare a local image or video for analysis. |
media_upload_finalize | Validate a staged upload and publish it. |
media_analyze | Analyze an image or short video with a vision model to understand its contents. |
media_trim | Cut a clip from an Asset Library video and get an analyzable public URL. |
API Keys
Create and retire keys for your workspace.
| Tool | Description |
|---|---|
api_keys_list | List all API keys for the workspace. |
api_keys_get | Get metadata for a single key. |
api_keys_get_publishable | Get the workspace's publishable key. |
api_keys_create | Create a new API key. |
api_keys_update | Update a key's name, scopes, or metadata. |
api_keys_protect | Mark a key as protected so it cannot be revoked or disabled. |
api_keys_disable | Disable or re-enable a key without revoking it. |
api_keys_revoke | Permanently revoke a key. |
Trash
Restore something that was deleted.
| Tool | Description |
|---|---|
trash_list | List soft-deleted items currently in the workspace Trash. |
trash_restore_project | Restore a deleted project. |
trash_restore_version | Restore a deleted dataset version. |
trash_restore_workflow | Restore a deleted Workflow. |
trash_restore_training | Restore a deleted training run. |
Other
Poll long-running work and send feedback.
| Tool | Description |
|---|---|
async_tasks_get | Poll an async task by id, such as a project fork or a split rebalance. |
meta_feedback_send | Report a bug, missing feature, or documentation issue to the Roboflow team. |