Skip to main content
Glama

mcp-server-roboflow

An MCP server that exposes the Roboflow API to MCP-compatible clients like Claude Code, Claude Desktop, and Cursor.

Use it to manage datasets, upload and tag images, push annotations, and inspect projects without leaving your editor.

Not affiliated with Roboflow Inc. This is a community project.

Status

Early development. The public API and tool names will change until v1.0.0. See CHANGELOG.md for what shipped in each release.

Related MCP server: claude-bridge-mcp

Install

Requires Python 3.10 or newer and a Roboflow private API key.

Claude Code

claude mcp add roboflow \
  --scope user \
  --env ROBOFLOW_API_KEY=your_key_here \
  -- uvx mcp-server-roboflow

Restart Claude Code. Tools appear as mcp__roboflow__*.

From source

git clone https://github.com/MayankD409/Roboflow-MCP-Server.git
cd Roboflow-MCP-Server
uv sync
uv run mcp-server-roboflow

Configuration

Environment variables (copy .env.example to .env for local dev):

Variable

Required

Description

ROBOFLOW_API_KEY

yes

Your Roboflow private API key

ROBOFLOW_WORKSPACE

no

Default workspace slug, so tools can omit it

ROBOFLOW_API_URL

no

Override the API base (default https://api.roboflow.com)

ROBOFLOW_APP_URL

no

Override the app host used by session-cookie tools (default https://app.roboflow.com)

ROBOFLOW_SESSION_COOKIE

no

Browser-session Cookie header for roboflow_add_reviewed_to_dataset; Roboflow has no public API for that action (see docs/TOOLS.md)

ROBOFLOW_MCP_LOG_LEVEL

no

DEBUG, INFO, WARNING, ERROR (default INFO)

Tools

See docs/TOOLS.md for the full list. v0.1 focuses on dataset management: list workspaces and projects, upload images, add and filter by tags, upload annotations.

Contributing

We follow Git Flow and test-driven development. New tools land through PRs to develop; releases cut from develop into main with a semver tag.

Read CONTRIBUTING.md before opening a PR. Bugs and feature ideas go in issues.

License

Apache License 2.0. See LICENSE and NOTICE.

Available Tools

11 tools
roboflow_add_image_tagsC

Add one or more tags to an image. Additive; not destructive.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsYes
dry_runNo
projectYes
image_idYes
workspaceNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. Description only says additive and not destructive, but omits details like authentication needs, rate limits, behavior on duplicate tags, or side effects. Minimal disclosure for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, efficient wording, but lacks structured information. Could be improved by front-loading parameter guidance or usage constraints.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 5 parameters, no schema descriptions, and no output schema details, the description is too sparse. Does not cover return value, error handling, or common use cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and description provides no explanation of parameters (project, image_id, tags, workspace, dry_run). The agent must infer meaning from parameter names alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the action (add tags), target (image), and key behavioral trait (additive, not destructive). This distinguishes it from siblings like set_image_tags and remove_image_tags.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies use for adding tags without removing existing ones, but does not explicitly state when to use this tool versus set_image_tags or remove_image_tags. No context on prerequisites or restrictions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

roboflow_add_reviewed_to_datasetA

Add every fully-reviewed annotation job to the dataset.

Moves images from jobs in review with all images approved into the dataset, split randomly at the given global ratios (default 70/20/10). Restrict to specific jobs via job_ids.

Destructive: requires confirm='yes' and a server mode of curate or full. Also requires ROBOFLOW_SESSION_COOKIE (an app.roboflow.com browser-session cookie) because Roboflow has no public API for this action.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNo
dry_runNo
job_idsNo
projectYes
workspaceNo
test_ratioNo
train_ratioNo
valid_ratioNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses destructive nature, authentication requirement (browser cookie), random splitting at given ratios. No annotations provided, so description fully carries this burden.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise single paragraph, front-loaded with primary action. Could be broken into bullet points for clarity, but no excess verbiage.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 8 parameters and no annotations, description covers core behavior, constraints, and key parameters. Does not detail return format (output schema exists but not referenced). Adequate for complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage 0%, but description explains confirm, job_ids, train/valid/test_ratio. Missing explanations for project, workspace, dry_run. Partially compensates.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the verb 'add' and resource 'dataset', specifies scope 'every fully-reviewed annotation job'. Distinguishes from siblings like upload_image or add_tags.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides context: requires confirm='yes', specific server mode, and ROBOFLOW_SESSION_COOKIE. Mentions optional job_ids restriction. No explicit when-not-to-use, but sufficient guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

roboflow_create_versionB

Kick off an async version generation (quota-heavy).

Destructive-of-quota: requires confirm='yes' and ROBOFLOW_MCP_MODE=curate or full. After this returns, poll roboflow_get_version_generation_status until the new version reports status="ready".

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNo
dry_runNo
projectYes
workspaceNo
augmentationNo
preprocessingNo
train_test_splitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Given no annotations, the description discloses async behavior, quota destruction, required environmental mode, and polling expectation. It does not cover failure modes or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences with front-loaded core action. Efficient but could benefit from structured format for requirements.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Missing key details: return structure for polling, error handling, parameter descriptions, and full lifecycle. Async tool with 7 parameters requires more context than provided.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description only hints at the 'confirm' parameter needing 'yes'. No explanation for project, workspace, preprocessing, augmentation, train_test_split, or dry_run, leaving the agent to guess formats and valid values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it kicks off async version generation (quota-heavy) and distinguishes from siblings by mentioning polling of roboflow_get_version_generation_status. However, the verb 'kick off' is informal and could be more specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides usage constraints (requires confirm='yes', ROBOFLOW_MCP_MODE=curate or full) and a polling hint, but lacks explicit when-to-use vs alternatives or when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

roboflow_delete_versionA

Delete a dataset version. Destructive: confirm='yes' required.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNo
dry_runNo
projectYes
versionYes
workspaceNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description adds the word 'Destructive' and the confirm parameter requirement, which gives some behavioral context. However, it does not disclose permanence, side effects on dependencies, or any rate limits, which would be important for a destructive operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two short sentences, no filler, and front-loads the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 5 parameters, a destructive nature, and an output schema, the description is too minimal. It does not explain the parameters, return value, or provide sufficient context for safe use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, so the description needed to explain all parameters. It only adds meaning for the 'confirm' parameter by stating it must be 'yes', while leaving 'project', 'version', 'workspace', and 'dry_run' unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Delete a dataset version', specifying the verb and resource, which distinguishes it from sibling tools that perform other operations like creating or listing versions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions that a confirm='yes' is required, implying usage conditions, but it does not explicitly state when to use this tool versus alternatives like archiving or when deletion is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

roboflow_export_versionA

Request an export for a trained/generated version.

Returns a signed download URL when ready. Does NOT stream bytes — pair with roboflow_download_export if you want the zip on disk.

ParametersJSON Schema
NameRequiredDescriptionDefault
dry_runNo
projectYes
versionYes
workspaceNo
export_formatYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full responsibility for behavioral disclosure. It notes that it returns a signed URL when ready and does not stream bytes, but lacks details on authentication, rate limits, or whether the operation is asynchronous. Some behavioral insight is provided, but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core action, and every word serves a purpose. It is concise without omitting critical information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description explains the return value (signed download URL) and the next step (use roboflow_download_export). However, it omits prerequisites (e.g., version must be trained) and error conditions, leaving some gaps for a complex tool. Still, it provides enough context for basic usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 0%, so the description must compensate, but it only mentions 'version' generically without explaining the other parameters (project, export_format, workspace, dry_run). No parameter meaning or usage is added beyond the schema's basic types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the purpose: request an export for a trained/generated version and return a signed download URL. It explicitly distinguishes from the sibling tool roboflow_download_export by noting that it does not stream bytes, making the tool's function very specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context: use this tool to get a download URL for a version, and pair it with roboflow_download_export to obtain the actual zip file. It does not explicitly state when not to use it, but the complementary tool guidance is strong.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

roboflow_list_annotation_jobsA

List a project's annotation jobs (Annotate-tab batches).

Each job reports labeling / review progress; ready_to_add marks jobs sitting in review with every image approved, i.e. eligible for roboflow_add_reviewed_to_dataset. Optionally filter by status (e.g. "assigned", "review", "complete").

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNo
dry_runNo
projectYes
workspaceNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits. It implies a read-only listing operation, mentions the ready_to_add field and filtering, but does not discuss permissions, rate limits, or side effects. Adequate but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with the main purpose. It efficiently uses two sentences, but could be slightly more structured for clarity. Overall, no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the existence of an output schema, return values are covered. However, the description lacks explanation for the 'dry_run' and 'workspace' parameters, which are important for a listing tool with multiple parameters. Sibling list provides some context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description must compensate. It only adds meaning for the 'status' parameter with example values. Parameters 'dry_run', 'project', and 'workspace' are not explained. More detail is needed for full understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'list' and the resource 'annotation jobs' with context from the Annotate-tab. It also explains the reported progress and the special 'ready_to_add' field, differentiating from sibling tools like roboflow_add_reviewed_to_dataset.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context by mentioning optional filtering by status and linking ready_to_add to a specific sibling tool. It does not explicitly state when not to use or alternatives, but the purpose is clear enough for an agent to decide.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

roboflow_list_image_batchesC

List upload batches for a project.

ParametersJSON Schema
NameRequiredDescriptionDefault
dry_runNo
projectYes
workspaceNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, and the description does not disclose behavioral traits such as whether it is read-only, auth requirements, or what dry_run does. The presence of dry_run without explanation raises confusion.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise at one sentence, but it lacks necessary detail, making it borderline under-specified for effective use.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given three parameters, zero parameter descriptions, and no annotations, the description is far from complete. It does not explain the return type or behavior of dry_run, which is non-obvious for a list operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not add any meaning to the three parameters (project, workspace, dry_run). Users must guess their format or purpose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'list' and resource 'upload batches' for a project, identifying its purpose among sibling tools like upload or delete operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives, no prerequisites, no mention of typical usage scenarios or when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

roboflow_remove_image_tagsA

Remove tags from an image.

Destructive: requires confirm='yes' and a server mode of curate or full (see :envvar:ROBOFLOW_MCP_MODE).

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsYes
confirmNo
dry_runNo
projectYes
image_idYes
workspaceNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description takes responsibility for behavioral disclosure. It explicitly calls the operation 'Destructive' and notes prerequisites (confirm='yes', server mode), which is helpful. It could elaborate more on side effects or reversibility.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two sentences, each serving a clear purpose: stating the action and adding usage constraints. No extraneous words. Could be slightly more structured, but effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 6 parameters (3 required) and no schema documentation, the description lacks completeness. It does not explain parameter roles or provide examples. The presence of an output schema reduces the need to describe return values, but gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It partially does by explaining that 'confirm' must be set to 'yes' and references server mode, but other parameters (project, image_id, tags, workspace, dry_run) are not explained. This leaves the agent with ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Remove tags') and the resource ('from an image'). This directly distinguishes it from siblings like roboflow_add_image_tags and roboflow_set_image_tags, which operate on tags differently.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description specifies when to use the tool by highlighting its destructive nature and required conditions (confirm='yes' and specific server modes). However, it does not explicitly contrast with set_image_tags or provide alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

roboflow_upload_annotationC

Attach an annotation to an image.

Supported formats (annotation_format literal):

  • "coco"

  • "yolo" (YOLOv5/v8/v11-compatible .txt)

  • "pascal_voc" (XML)

  • "createml" (Apple CreateML JSON)

  • "roboflow_json"

Pass annotation as a string (raw file contents) or a dict (Python object; we serialize to JSON). Optional labelmap is a class-id to name map Roboflow uses for YOLO formats.

ParametersJSON Schema
NameRequiredDescriptionDefault
dry_runNo
projectYes
image_idYes
labelmapNo
workspaceNo
annotationYes
annotation_formatYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses input format details but does not explain side effects (e.g., overwrite or append), authentication, rate limits, or error handling. The existence of an output schema is not leveraged.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with a clear main sentence and a bullet list for formats. Additional notes on annotation and labelmap are well-placed. No extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 7 parameters (4 required) and no annotation coverage, the description omits critical context: prerequisites (image must exist?), behavior on duplicate annotations, and meaning of several parameters. An output schema exists but is not referenced.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%; the description adds meaning for 'annotation_format' (enum values), 'annotation' (string or dict), and 'labelmap' (class-to-name map). However, it does not explain 'project', 'image_id', 'workspace', or 'dry_run', leaving gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Attach an annotation to an image' with a clear verb and resource, and lists supported formats. It does not explicitly differentiate from sibling tools, but the purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus other roboflow tools, nor any prerequisites or exclude conditions. The description only explains how to format input.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

roboflow_upload_imageA

Upload a single image to a Roboflow project.

source is a discriminated union (exactly one mode):

  • {"kind": "url", "url": "https://..."}

  • {"kind": "path", "path": "/abs/path/img.jpg"} (local path; must live under ROBOFLOW_MCP_UPLOAD_ROOTS)

  • {"kind": "base64", "data": "...", "filename": "img.jpg"}

Every mode runs through URL / path / image safety guards before the upload. split is "train" / "valid" / "test".

ParametersJSON Schema
NameRequiredDescriptionDefault
splitNo
sourceYes
dry_runNo
projectYes
tag_namesNo
workspaceNo
batch_nameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It mentions safety guards for each source mode but does not disclose side effects (e.g., overwrites, rate limits) or behavior for duplicate uploads. The output schema exists but is not referenced.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured with bullet points for source modes, covering key information in a few lines without unnecessary verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists, return values are covered. However, the description omits prerequisites (e.g., project existence), error conditions, and idempotency. With no annotations, some gaps remain for a well-rounded understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description thoroughly explains the complex 'source' parameter (discriminated union) and the 'split' parameter. However, it ignores other parameters (workspace, batch_name, tag_names, dry_run) even though schema coverage is 0%.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Upload a single image to a Roboflow project' and details three distinct source modes, distinguishing it from sibling tools like 'roboflow_upload_images_batch' (batch upload) and 'roboflow_delete_image' (delete).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the source modes and split parameter but does not provide explicit guidance on when to use this tool versus alternatives (e.g., batch upload). It lacks 'when to use' or 'when not to use' context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

roboflow_upload_images_batchA

Upload many images concurrently.

sources is a list of :class:ImageSource dicts. Failed uploads don't abort the batch; the response reports per-image outcomes in results and errors.

ParametersJSON Schema
NameRequiredDescriptionDefault
splitNo
dry_runNo
projectYes
sourcesYes
workspaceNo
batch_nameNo
concurrencyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses key behavioral traits: failed uploads do not abort the batch, and the response reports per-image outcomes. This adds value beyond the absence of annotations. However, it could mention authentication needs or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with the main purpose, and provides essential details without superfluous words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers core behavior and error handling, but given the complexity (7 parameters, many optional), it lacks details on parameters like split, batch_name, and the output schema. The presence of an output schema mitigates the need for return value descriptions, but overall completeness is moderate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description only adds meaning for the 'sources' parameter (list of ImageSource dicts). Other parameters like project, workspace, split, batch_name, concurrency, and dry_run remain undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Upload many images concurrently,' which is a specific verb+resource action. It distinguishes from sibling tools like roboflow_upload_image (single upload) by emphasizing batch processing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for batch uploading many images concurrently, but does not explicitly state when to use this tool versus alternatives like roboflow_upload_image, nor does it provide exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 6 tool updatesv0.4.0
    • Addedroboflow_add_image_tags
    • Removedroboflow_delete_image
    • Addedroboflow_export_version
    • Addedroboflow_remove_image_tags
    • Addedroboflow_upload_image
    • Addedroboflow_upload_images_batch
  2. 17 tool updatesv0.4.0
    • Removedroboflow_add_image_tags
    • Addedroboflow_add_reviewed_to_dataset
    • Removedroboflow_download_export
    • Removedroboflow_export_version
    • Removedroboflow_get_image
    • Removedroboflow_get_project
    • Removedroboflow_get_version
    • Removedroboflow_get_version_generation_status
    • Removedroboflow_get_workspace
    • Addedroboflow_list_annotation_jobs
    • Removedroboflow_list_projects
    • Removedroboflow_list_versions
    • Removedroboflow_remove_image_tags
    • Removedroboflow_search_images
    • Removedroboflow_set_image_tags
    • Removedroboflow_upload_image
    • Removedroboflow_upload_images_batch
  3. 20 tool updatesv0.3.0
    • First observedroboflow_add_image_tags
    • First observedroboflow_create_version
    • First observedroboflow_delete_image
    • First observedroboflow_delete_version
    • First observedroboflow_download_export
    • First observedroboflow_export_version
    • First observedroboflow_get_image
    • First observedroboflow_get_project
    • First observedroboflow_get_version
    • First observedroboflow_get_version_generation_status
    • First observedroboflow_get_workspace
    • First observedroboflow_list_image_batches
    • First observedroboflow_list_projects
    • First observedroboflow_list_versions
    • First observedroboflow_remove_image_tags
    • First observedroboflow_search_images
    • First observedroboflow_set_image_tags
    • First observedroboflow_upload_annotation
    • First observedroboflow_upload_image
    • First observedroboflow_upload_images_batch

TDQS

A3.5/5.0
Disambiguation5/5

Each tool targets a distinct action or resource: image tagging (add/remove), upload (single/batch), annotation, version management (create/delete/export), listing jobs/batches, and dataset addition. Even similar operations like single vs batch upload are clearly differentiated.

Naming Consistency5/5

All tools follow a consistent 'roboflow_verb_noun' pattern in snake_case (e.g., roboflow_add_image_tags, roboflow_upload_image). The naming is predictable and easy to parse.

Tool Count5/5

With 11 tools, the set covers the primary operations of a Roboflow MCP server without being bloated. Each tool serves a clear purpose, and the count feels appropriate for the domain.

Completeness3/5

The tools cover image upload, annotation, tagging, version CRUD (except list/get versions), and dataset addition. However, missing operations include retrieving version details, listing versions, deleting images, and polling version generation status (despite being referenced in create_version). These gaps may hinder full workflow automation.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Local MCP server that provides semantic search (RAG) over code repositories, enabling AI clients like Claude and Gemini to access project context without manual re-upload.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that exposes your local Claude Code CLI over HTTP+SSE, enabling any MCP-compatible client to use your Claude Code MAX/PRO subscription remotely.
    16
    2
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    A dead simple MCP server for exposing your app functions to AI agents like Claude Desktop.
    21
    5
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/MayankD409/Roboflow-MCP-Server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server