Skip to content
Agentmart
Submit a tool

Fiftyone MCP Server

Control FiftyOne computer vision datasets through AI assistants using 80+ operators.

Connector by AdonaiVera · GitHub account verified by the MCP Registry

IndexedLicense unknownLocal (stdio)★ 26
Write a review

Chalk Labs

Need help deploying Fiftyone MCP Server?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/adonaivera-fiftyone-mcp-server

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Control FiftyOne computer vision datasets through AI assistants using 80+ operators.

Use cases: data-analysis

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.

Tools
25 read · 15 write · 4 delete · 3 not yet classified
Secrets
None asked for
Install scripts
Not scanned yet
Runs as
Python package

Tools by what they do 47

Read from the source code; the running server may list different tools.

Read 25 · Look things up without changing anything.

  • bounds
  • count_sample_tags
  • count_values
  • dataset_summary
  • distinct
  • get_app_config
  • get_color_scheme
  • get_context_info
  • get_field_schema
  • get_operator_schema
  • get_plugin_info
  • get_sidebar_groups
Show 13 more tools
  • get_values
  • histogram_values
  • list_brain_runs
  • list_datasets
  • list_delegated_operations
  • list_evaluations
  • list_me_scenarios
  • list_open_panels
  • list_operators
  • list_plugins
  • mean
  • std
  • sum

Write 15 · Create, change, send or run things.

  • add_sample_field
  • add_samples
  • download_plugin
  • enable_plugin
  • execute_operator
  • execute_pipeline
  • set_active_fields
  • set_color_scheme
  • set_filters
  • set_session_color_scheme
  • set_sidebar_groups
  • set_spaces
Show 3 more tools
  • set_values
  • set_view
  • tag_samples

Delete 4 · Delete, drop, revoke or wipe things.

  • clear_view
  • disable_plugin
  • reset_color_scheme
  • untag_samples

Not yet classified 3 · We could not tell from the name and description.

  • annotate
  • launch_app
  • load_dataset

Files it touches

  • Any path the agent passes to its tools

Tools (47)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • add_sample_field

    Add a new field with an explicit type to a dataset. Use this to define a typed field before assigning values with set_values. Unlike add_dynamic_sample_fields (which auto-detects types), this requires you to specify the type explicitly. Supported types: StringField, IntField, FloatField, BooleanField, ListField, EmbeddedDocumentField, DateTimeField, GeoPointField. This is an MCP tool, not FiftyOne's Dataset.add_sample_field() method -- it still requires dataset_name as an explicit argument, and field_type is a string name (e.g. 'StringField'), not a Python class object.

  • add_samples

    Add new samples to an existing dataset. Each sample requires a 'filepath' key and can include any additional field values. Returns the IDs of the added samples. Use this for programmatic sample creation from Python dicts — use the import_samples operator for file/dir imports instead. This is an MCP tool, not FiftyOne's Dataset.add_samples() method -- it still requires dataset_name as an explicit argument, unlike the bound SDK method which needs none, and takes plain dicts rather than Sample objects.

  • annotate

    Enter annotation mode for a specific sample in the App. Opens the sample modal and focuses on the given label field and label ID. Useful for directing a user to a specific annotation that needs review or correction.

  • bounds

    Get the min and max values for a numeric field. Returns {min, max}. Useful for understanding the range of confidence scores, image dimensions, or any numeric field. This is an MCP tool, not FiftyOne's Dataset.bounds() method -- pass dataset_name and field as separate keyword arguments, not field_or_expr.

  • clear_view

    Clears the current view from the session, showing all samples. Requires an execution context (call via MCPToolExecutor).

  • count_sample_tags

    Count how many samples have each tag in a dataset. Returns a {tag: count} dict and total number of distinct tags. Useful for understanding tag distributions before filtering or after tagging operations. This is an MCP tool, not FiftyOne's Dataset.count_sample_tags() method -- it still requires dataset_name as an explicit argument, unlike the bound SDK method which needs none.

  • count_values

    Count occurrences of each value for a field across a dataset. Returns a {value: count} dict. Useful for understanding label distributions, tag frequencies, or any categorical field. Optionally filter with view_stages before counting. This is an MCP tool, not FiftyOne's Dataset.count_values() method -- pass dataset_name and field as separate keyword arguments, not field_or_expr.

  • dataset_summary

    Get detailed summary statistics and metadata for a dataset

  • disable_plugin

    Disables a FiftyOne plugin, removing its operators from availability.

  • distinct

    Get the list of unique values for a field across a dataset. Returns an array of distinct values with a count. Useful for discovering all classes, categories, or unique identifiers in a field. This is an MCP tool, not FiftyOne's Dataset.distinct() method -- pass dataset_name and field as separate keyword arguments, not field_or_expr.

  • download_plugin

    Downloads and installs a FiftyOne plugin from GitHub. Plugins immediately add new operators to the system (accessible via list_operators and execute_operator). Common repo: 'voxel51/fiftyone-plugins' contains all official plugins. After installation, use enable_plugin to activate the plugin's operators.

  • enable_plugin

    Enables a downloaded FiftyOne plugin, making its operators immediately available through list_operators and execute_operator. Required after download_plugin to activate the plugin's functionality.

  • execute_operator

    Execute any FiftyOne operator. Provides access to 80+ operators from the plugin ecosystem. WORKFLOW: (1) Call list_operators to discover available operators, (2) Call get_operator_schema to see required parameters, (3) Call execute_operator with the operator URI and params. Set delegate=true for long-running operations to queue them for background execution. Requires either an execution context or dataset_name.

  • execute_pipeline

    Execute a multi-stage operator pipeline. Stages run sequentially sharing the same execution context (dataset, view, selection). If a stage fails, subsequent stages are skipped unless marked with always_run=true. Supports delegation for background execution. WORKFLOW: (1) Use list_operators + get_operator_schema to plan stages, (2) Call execute_pipeline with the stages array. Requires either an execution context or dataset_name.

  • get_app_config

    Get the full app config for a dataset including color scheme, sidebar groups, active fields, and media field settings.

Show 32 more tools
  • get_color_scheme

    Get the color scheme configuration for a dataset. Returns color_by mode, color pool, and per-field color settings.

  • get_context_info

    Gets information about the current FiftyOne App context, including whether it's active and what dataset is loaded.

  • get_field_schema

    Get the full field schema for a dataset with complete type information. Returns field_name -> {type, subfield, embedded_doc_type, description, required, read_only} for every sample field and every frame field (for video datasets). More detailed than load_dataset, which only returns field names. This is an MCP tool, not FiftyOne's Dataset.get_field_schema() method -- it still requires dataset_name as an explicit argument, unlike the bound SDK method which needs none.

  • get_operator_schema

    Get the input schema for a specific operator. Returns a filtered schema by default (UI-only metadata stripped, choices capped at 20). Pass verbose=true only if you need the raw schema. Schemas are context-aware and change based on the current dataset/view/selection. Use this AFTER list_operators to understand what parameters an operator accepts. For dynamic operators, pass 'params' with partial values to resolve fields that depend on earlier selections. Requires either an execution context or dataset_name.

  • get_plugin_info

    Gets detailed information about a specific FiftyOne plugin including its operators, version, and metadata.

  • get_sidebar_groups

    Get the sidebar group configuration for a dataset. Returns the list of groups with their field paths and expanded state.

  • get_values

    Get the raw values of a field for all samples in a dataset. Returns a list of values in sample order. Useful for reading custom field data, scores, or metadata. Capped at 10,000 samples by default to avoid large responses. This is an MCP tool, not FiftyOne's Dataset.values() method -- pass dataset_name and field as separate keyword arguments, not field_or_expr.

  • histogram_values

    Compute a histogram of values for a numeric field. Returns bin counts, bin edges, and the count of values outside the range. Useful for visualizing distributions of confidence scores, object sizes, etc. This is an MCP tool, not FiftyOne's Dataset.histogram_values() method -- pass dataset_name and field as separate keyword arguments, not field_or_expr.

  • launch_app

    Launches the FiftyOne App server. Required for executing delegated operators that need background execution (e.g., brain operators like find_near_duplicates).

  • list_brain_runs

    List brain method run keys for a dataset. Brain runs include: similarity indexes (used for nearest-neighbour search), visualization embeddings (UMAP, t-SNE), uniqueness scores, and hardness scores. Filter by type (e.g. 'similarity', 'visualization') or method (e.g. 'umap', 'resnet50'). Returns a list of run keys you can pass to get_brain_info or load_brain_results. This is an MCP tool, not FiftyOne's Dataset.list_brain_runs() method -- it still requires dataset_name as an explicit argument, unlike the bound SDK method which needs none.

  • list_datasets

    List all available FiftyOne datasets with metadata. Capped at 50 by default; check 'total' in the response to see if more exist.

  • list_delegated_operations

    List delegated (background) operations and their status. Use this to check on operations that were queued via execute_operator or execute_pipeline with delegate=true. Filter by run state, dataset, or operator URI.

  • list_evaluations

    List evaluation run keys for a dataset. Evaluation runs include model performance assessments (detection, classification, segmentation). Filter by type (e.g. 'detection', 'classification') or method (e.g. 'coco', 'open-images'). Returns a list of eval keys you can pass to get_evaluation_info or load_evaluation_results. This is an MCP tool, not FiftyOne's Dataset.list_evaluations() method -- it still requires dataset_name as an explicit argument, unlike the bound SDK method which needs none.

  • list_me_scenarios

    List model evaluation scenarios for a dataset. Scenarios are configurations stored by the ME panel that define how an evaluation is sliced for comparative analysis (by field value, saved view, or custom code). Requires the @voxel51/model_evaluation plugin and at least one scenario to have been configured.

  • list_open_panels

    List all panels currently open in the FiftyOne App. Returns each panel's id (use this with set_panel_state, patch_panel_state, or close_panel), name (e.g. 'Samples', 'Histograms', 'Embeddings', 'Map'), and pinned status. Use this before calling set_panel_state to discover the panel_id you need.

  • list_operators

    Discover all available FiftyOne operators (80+ built-in operators from plugins). Returns operators from installed plugins including: @voxel51/operators (50+ core operators like tag_samples, clone_samples), @voxel51/brain (similarity, duplicates, visualization), @voxel51/utils (create_dataset, delete_dataset, clone_dataset), @voxel51/io (import/export), @voxel51/evaluation, @voxel51/annotation, @voxel51/zoo. Use this FIRST to discover what operators are available before executing them. Returns a slim summary (uri, label, description) by default; pass verbose=true only if you need full operator …

  • list_plugins

    Lists available FiftyOne plugins and their operators. Plugins extend functionality by providing additional operators. Key plugins: @voxel51/brain (16 operators for similarity/duplicates/visualization), @voxel51/utils (12 operators for dataset CRUD), @voxel51/io (5 operators for import/export), @voxel51/evaluation (5 operators), @voxel51/annotation (6 operators), @voxel51/zoo (2 operators). Use this to discover what plugins are installed and what operators they provide. Capped at 50 by default; check 'total' in the response to see if more exist.

  • load_dataset

    Load a FiftyOne dataset by name and return basic information

  • mean

    Compute the mean (average) of a numeric field across all samples. Returns a single float. Useful for average confidence, uniqueness scores, etc. This is an MCP tool, not FiftyOne's Dataset.mean() method -- pass dataset_name and field as separate keyword arguments, not field_or_expr.

  • reset_color_scheme

    Reset the App color scheme to the dataset or global config defaults for the current session. Session-only — does not persist to the database. Use set_color_scheme to persist changes.

  • set_active_fields

    Control which fields are visible in the App sidebar. Persists to the database. Use exclude=false (default) to show only the listed paths, or exclude=true to hide them.

  • set_color_scheme

    Set the color scheme for a dataset. Persists to the database. Supports setting color_by mode, a shared color pool, and per-field color overrides.

  • set_filters

    Set the sidebar filter state in the App. Filters are applied on top of the current view and control what samples are shown in the grid. This is NOT the same as adding view stages — it sets the Recoil fos.filters UI state directly. Pass a {field_path: FilterState} dict. Label field filters support: values (list), exclude, isMatching, onlyMatch. Numeric field filters support: range ([min, max]), none, nan. Boolean filters support: true, false, none.

  • set_session_color_scheme

    Set the live color scheme for the current App session. Updates the in-memory Recoil color state immediately — session-only, lost on page reload. Use set_color_scheme to persist to the database. Supports a color-blind-friendly preset via color_pool_preset='color-blind-friendly'.

  • set_sidebar_groups

    Replace the sidebar group configuration for a dataset. Persists to the database. Each group has a name, a list of field paths, and an optional expanded flag.

  • set_spaces

    Sets the workspace (spaces layout) in the App by loading a saved workspace by name.

  • set_values

    Bulk-assign values to a field across multiple samples. Accepts either a list of values (one per sample in dataset order) or a {sample_id: value} dict for explicit assignment. Use this when you need to write computed scores, labels, or metadata back to the dataset. Note: the edit_field_values operator does value remapping (old->new), not bulk assignment. This is an MCP tool, not FiftyOne's Dataset.set_values() method -- it still requires dataset_name as an explicit argument, unlike the bound SDK method which needs none.

  • set_view

    Sets a filtered view in the FiftyOne App. Supports dynamic stage-based views (Match, FilterLabels, SortBy, Limit, etc. with F() expressions), saved views, or simple convenience filters. The view updates immediately in the App UI. Requires an execution context (call via MCPToolExecutor).

  • std

    Compute the standard deviation of a numeric field across all samples. Returns a single float. This is an MCP tool, not FiftyOne's Dataset.std() method -- pass dataset_name and field as separate keyword arguments, not field_or_expr.

  • sum

    Compute the sum of a numeric field across all samples. Returns a single number. This is an MCP tool, not FiftyOne's Dataset.sum() method -- pass dataset_name and field as separate keyword arguments, not field_or_expr.

  • tag_samples

    Add tags to samples in a dataset. Optionally filter which samples to tag using view_stages or sample_ids. Returns the count of samples that were tagged. Tags can be used to mark subsets for review, training splits, or any custom categorization. This is an MCP tool, not FiftyOne's Dataset.tag_samples() method -- it still requires dataset_name as an explicit argument, unlike the bound SDK method which needs none.

  • untag_samples

    Remove tags from samples in a dataset. Optionally filter which samples to untag using view_stages or sample_ids. Returns the count of samples that were processed. This is an MCP tool, not FiftyOne's Dataset.untag_samples() method -- it still requires dataset_name as an explicit argument, unlike the bound SDK method which needs none.

Signals

Stars
26
Forks
7
Open issues
0
Weekly downloads
4,780
Last commit
Sep 24, 2026 (1 month ago)
Last release
Dec 20, 2025 (10 months ago)
Last package publish
Sep 22, 2026 (1 month ago)

From GitHub (fetched Oct 24, 2026) and the package registry.

Details

Registry name
io.github.AdonaiVera/fiftyone-mcp-server
Version
0.1.2
Auth
No auth
Packages
pypi fiftyone-mcp-server
License
License unknown
First seen
Oct 24, 2026
Last checked
Oct 25, 2026

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get Fiftyone MCP Server running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying Fiftyone MCP Server?

CallGet help
Cite this page

Fiftyone MCP Server. Agent Mart. https://agentmart.dev/connectors/adonaivera-fiftyone-mcp-server (last updated 2026-10-25)