Skip to main content
Glama
Rockfish MCP Server

Rockfish MCP Server

Official

Rockfish MCP Server

License: MIT Python 3.10+ Code style: black

A Model Context Protocol server that provides tools to interact with the Rockfish AI platform for synthetic data generation, dataset management, and ML workflow orchestration.

Available Tools

Rockfish API — databases, worker sets, workflows, models, projects, datasets, organizations (22+ tools)

SDK (Synthetic Data Generation)

  • obtain_train_config — generate training configuration with automatic column type detection

  • update_train_config — modify training hyperparameters or field classifications

  • start_training_workflow — start TabGAN training workflow

  • get_workflow_logs — stream workflow logs with configurable level and timeout

  • get_trained_model_id — extract trained model ID from completed workflow

  • start_generation_workflow — start generation workflow from trained model

  • obtain_synthetic_dataset_id — extract generated dataset ID from completed workflow

  • plot_distribution — generate distribution plots comparing real and synthetic data

  • get_marginal_distribution_score — calculate similarity score between real and synthetic data

Manta (Analytics & Scenarios) — requires MANTA_API_URL

  • discover_schema — discover dataset schema

  • generate_test_suite — generate test suites

  • execute_query / execute_nl_query — run SQL or natural language queries

  • inject_scenario — inject test scenarios into datasets

Installation

rockfish-mcp is not currently published to PyPI, so install it from source (below) and run it with uv run --directory /path/to/rockfish-mcp rockfish-mcp. The uvx rockfish-mcp and pip install rockfish-mcp forms only work once the package is published to an index.

git clone https://github.com/Rockfish-Data/rockfish-mcp.git
cd rockfish-mcp
  1. Install dependencies (exact versions from uv.lock, including dev tools):

uv sync
source .venv/bin/activate  # optional; or prefix commands with `uv run`

For a runtime-only install (no dev tools), use uv sync --no-dev.

  1. Set up environment variables:

cp .env.example .env
# Edit .env and add your Rockfish API key

Related MCP server: RAGFlow MCP Server

Configuration

Create a .env file with your Rockfish API credentials:

ROCKFISH_API_KEY=your_api_key_here
ROCKFISH_API_URL=https://api.rockfish.ai

Optional settings:

ROCKFISH_ORGANIZATION_ID=your_organization_id_here
ROCKFISH_PROJECT_ID=your_project_id_here
MANTA_API_URL=https://manta.rockfish.ai

Usage with Claude Desktop

Add to your claude_desktop_config.json:

rockfish-mcp is not published to PyPI, so uvx rockfish-mcp fails with rockfish-mcp was not found in the package registry. Run it from a clone instead. Use uv run --directory rather than uvx --from, so the locked dependencies and the Rockfish SDK find-links index from pyproject.toml are honored. Use the absolute path to uv (which uv), since Claude Desktop does not inherit your shell PATH.

{
  "mcpServers": {
    "rockfish": {
      "command": "/opt/homebrew/bin/uv",
      "args": ["run", "--directory", "/path/to/rockfish-mcp", "rockfish-mcp"],
      "env": {
        "ROCKFISH_API_KEY": "your_api_key_here",
        "ROCKFISH_API_URL": "https://api.rockfish.ai"
      }
    }
  }
}

The first launch builds the environment and can take ~30 seconds; later launches are fast.

{
  "mcpServers": {
    "rockfish": {
      "command": "uvx",
      "args": ["rockfish-mcp"],
      "env": {
        "ROCKFISH_API_KEY": "your_api_key_here",
        "ROCKFISH_API_URL": "https://api.rockfish.ai"
      }
    }
  }
}
{
  "mcpServers": {
    "rockfish": {
      "command": "python",
      "args": ["-m", "rockfish_mcp.server"],
      "env": {
        "ROCKFISH_API_KEY": "your_api_key_here",
        "ROCKFISH_API_URL": "https://api.rockfish.ai"
      }
    }
  }
}
{
  "mcpServers": {
    "rockfish": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "-e", "ROCKFISH_API_KEY", "-e", "ROCKFISH_API_URL", "rockfish-mcp"],
      "env": {
        "ROCKFISH_API_KEY": "your_api_key_here",
        "ROCKFISH_API_URL": "https://api.rockfish.ai"
      }
    }
  }
}

Debugging

You can use the MCP inspector to debug the server from a source checkout:

npx @modelcontextprotocol/inspector uv run --directory path/to/rockfish-mcp rockfish-mcp

Or run the venv's Python directly (after uv sync):

cd path/to/rockfish-mcp
npx @modelcontextprotocol/inspector .venv/bin/python -m rockfish_mcp.server

If the server fails to start in Claude Desktop, check ~/Library/Logs/Claude/mcp-server-rockfish.log.

Development

Setup

Install with dev dependencies (the default for uv sync):

uv sync

Run tools with uv run (for example uv run pytest) or activate .venv first.

Code Formatting

isort src/rockfish_mcp/ && black src/rockfish_mcp/

Running Tests

Unit tests (no credentials required):

pytest tests/test_manta_client.py tests/test_manta_tools.py

Integration tests (requires .env with real credentials):

pytest tests/
pytest --env=.env.prod.local --html=report.html --self-contained-html

Contributing

We encourage contributions to help expand and improve rockfish-mcp. Whether you want to add new tools, enhance existing functionality, or improve documentation, your input is valuable.

  1. Fork the repository

  2. Create a feature branch

  3. Make your changes

  4. Format your code with isort and black

  5. Add tests if applicable

  6. Submit a pull request

For examples of other MCP servers and implementation patterns, see: https://github.com/modelcontextprotocol/servers

License

rockfish-mcp is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.

Available Tools

44 tools
create_databaseC

Create a new database

Inputs: name (required), description.

create_datasetC

Create a new dataset

Inputs: name (required), description.

create_projectB

Create a new project

Inputs: name (required), description.

create_worker_setC

Create a new worker set

Inputs: name (required), worker_count (required).

create_workflowC

Create and run a new workflow

Inputs: jobs (required), metadata (required).

delete_databaseC

Delete a database

Inputs: id (required).

delete_datasetC

Delete a dataset

Inputs: id (required).

delete_modelC

Delete a model

Inputs: id (required).

delete_worker_setC

Delete a worker set

Inputs: id (required).

execute_sql_queryC

Execute a SQL query against Rockfish datasets and return results in CSV format

Inputs: query (required), project_id.

get_active_organizationC

Get active organization

Inputs: no named parameters.

get_active_projectC

Get active project

Inputs: no named parameters.

get_databaseB

Get a specific database by ID

Inputs: id (required).

get_datasetC

Get a specific dataset by ID

Inputs: id (required).

get_dataset_query_bookmarksB

Retrieve the query bookmarks for a dataset

Inputs: dataset_id (required).

get_dataset_schemaC

Get the schema for a dataset

Inputs: id (required).

get_marginal_distribution_scoreB

Calculate marginal distribution score between two datasets (real vs synthetic). Lower score means more similar distributions.

Inputs: dataset_ids (required).

get_modelC

Get a specific model by ID

Inputs: id (required).

get_projectB

Get a specific project by ID

Inputs: id (required).

get_trained_model_idA

Extract the trained model ID from a completed training workflow. Only works on COMPLETED or FINALIZED workflows.

Inputs: workflow_id (required).

get_worker_setB

Get a specific worker set by ID

Inputs: id (required).

get_worker_set_actionsC

List the actions for a worker-set

Inputs: id (required).

get_workflowB

Get a specific workflow by ID

Inputs: id (required).

get_workflow_logsA

Stream logs from a workflow execution with configurable log level and collection timeout. Collects logs for specified duration (default 10s), useful for monitoring workflow progress and debugging. Call repeatedly to continue collecting logs from running workflows.

Inputs: workflow_id (required), timeout, log_level.

list_available_actionsB

List actions (or workers) from all worker-sets

Inputs: no named parameters.

list_databasesA

List all databases

Inputs: no named parameters.

list_datasetsB

List all datasets

Inputs: no named parameters.

list_modelsB

List all models

Inputs: no named parameters.

list_organizationsB

List all organizations

Inputs: no named parameters.

list_projectsB

List all projects

Inputs: no named parameters.

list_worker_groupsC

List all worker groups

Inputs: no named parameters.

list_worker_setsC

List all worker sets

Inputs: no named parameters.

list_workflowsB

List all workflows

Inputs: no named parameters.

obtain_synthetic_dataset_idA

Extract the synthetic dataset ID from a completed generation workflow. Only works on COMPLETED or FINALIZED workflows.

Inputs: generation_workflow_id (required).

obtain_train_configA

Generate training configuration for synthetic data models. Returns a cached train_config_id for use in start_training_workflow. Supports TabGAN (rf_tab_gan) and TimeGAN (rf_time_gan).

Inputs: dataset_id (required), model_type (required).

plot_distributionA

Generate distribution plot comparing datasets for a specific column. Returns base64-encoded PNG image. Automatically chooses bar plot (categorical) or KDE plot (numerical).

Inputs: column_name (required), dataset_ids (required).

start_generation_workflowC

Start a workflow to generate synthetic data from a trained TabGAN model.

Inputs: model_id (required).

start_training_workflowA

Build and start a training workflow using a cached config. Automatically detects model type from train_config structure. Use this after obtaining train_config_id from obtain_train_config.

Inputs: dataset_id (required), train_config_id (required).

update_databaseD

Update a database

Inputs: id (required), name, description.

update_datasetC

Update a dataset

Inputs: id (required), name, description.

update_projectC

Update a project

Inputs: id (required), name, description.

update_train_configC

Update training configuration. Modify model hyperparameters (epochs, batch_size, etc.) and/or encoder field classifications (categorical, continuous, ignore). See https://docs.rockfish.ai/model-train.html for config structure.

Inputs: updates (required), train_config_id (required).

update_workflowC

Update a workflow

Inputs: id (required), name, definition.

upload_modelC

Upload a new model

Inputs: name (required), metadata.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    C2.7/5.0

    Scored across 44 tools

    Disambiguation4/5

    Most tools target a distinct resource and action (e.g., create_dataset, get_workflow, start_training_workflow). A few listing tools overlap in scope, such as list_available_actions versus get_worker_set_actions, and list_worker_groups versus list_worker_sets, but descriptions generally clarify the differences.

    Naming Consistency4/5

    Nearly all tools follow a consistent snake_case verb_noun pattern. Minor deviations include using obtain instead of get for extraction tools and upload_model instead of create_model, but the overall convention remains predictable.

    Tool Count2/5

    With 44 tools, the surface is heavy for the apparent synthetic-data platform scope. While the domain is broad, many operations could likely be consolidated or grouped, and 25+ tools is generally too many for an agent to navigate efficiently.

    Completeness4/5

    Core synthetic data lifecycle is well covered: dataset CRUD, SQL query, model upload, training config, training workflow, generation workflow, and evaluation plots. Minor gaps exist, such as missing delete_project, delete_workflow, and update_model, but agents can work around these.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI assistants to interact with Rockfish's machine learning platform through comprehensive API access. Supports managing databases, worker sets, workflows, models, projects, and datasets for ML operations.
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables semantic retrieval and knowledge base management through the RAGFlow API, including dataset, document, chunk, chat, and graph operations.
      7
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables interaction with the Civis Platform for data exploration, querying, and workflow execution. Supports schema-restricted read-only mode and tools like run_query, list_tables, and publish_html_report.
      BSD 3-Clause