Skip to main content
Glama
OpenRefine MCP Server

OpenRefine MCP Server

OpenRefine MCP Server

Test

A Model Context Protocol (MCP) server that provides a typed, discoverable interface to OpenRefine's HTTP API. This allows any MCP-capable client (like Claude Desktop) to orchestrate data-cleaning pipelines safely and reproducibly.

Installation

Prerequisites

  • Python 3.13 or higher

  • uv package manager

  • OpenRefine instance running (default: http://localhost:3333)

Install the Package

# Clone the repository
git clone <repository-url>
cd openrefine_mcp

# Install dependencies using uv
uv sync

Setup Claude Desktop

  1. Create or edit your Claude Desktop configuration file:

    # On macOS/Linux
    ~/.config/claude_desktop_config.json
    
    # On Windows
    %APPDATA%\claude_desktop_config.json
  2. Add the OpenRefine MCP server to your configuration:

    {
      "mcpServers": {
        "openrefine": {
          "command": "uv",
          "args": [
            "--directory",
            "path/to/your/openrefine_mcp",
            "run",
            "openrefine-mcp-server"
          ],
          "env": {
            "OPENREFINE_URL": "http://localhost:3333"
          }
        }
      }
    }
  3. Restart Claude Desktop to load the new MCP server.

Related MCP server: openproject-mcp

Features

This MCP server implements the following OpenRefine API endpoints:

OpenRefine API Endpoint

MCP Implementation

Status

POST /command/core/create-project-from-upload

create_project(dataset_url: str, name: str | None = None)

✅

GET /command/core/get-models

get_project_models(project_id: int) resource

✅

POST /command/core/apply-operations

apply_operations(project_id: int, operations: str)

✅

POST /command/core/export-rows

export_csv(project_id: int)

✅

POST /command/core/delete-project

delete_project(project_id: int)

✅

POST /command/core/set-project-metadata

-

❌

POST /command/core/set-project-tags

-

❌

GET /command/core/get-all-project-metadata

-

❌

POST /command/core/preview-expression

-

❌

GET /command/core/get-processes

-

❌

Available Tools

  • create_project(dataset_url: str, name: str | None = None) → Creates a new OpenRefine project from a dataset URL

  • apply_operations(project_id: int, operations: str) → Applies operations to an OpenRefine project

  • export_csv(project_id: int) → Exports CSV data from an OpenRefine project

  • delete_project(project_id: int) → Deletes an OpenRefine project

Available Resources

  • openrefine://project/{project_id}/models → Returns structural information about the project including column definitions, record model configuration, available scripting languages, and overlay models

Development

Running Tests

make test

Running the MCP Inspector server

make inspector

License

This project is licensed under the MIT License - see the LICENSE file for details.

Available Tools

4 tools
apply_operationsA

Apply operations to an OpenRefine project.

Args: project_id: ID of the project to apply operations to operations: Operations as JSON string

Returns: Summary with application status and last modified time

Inputs: project_id (required), operations (required). Returns: object

create_projectA

Create a new OpenRefine project from a dataset URL.

Args: dataset_url: URL of the dataset to import name: Optional name for the project

Returns: Project information containing project ID and name

Inputs: dataset_url (required), name. Returns: object

delete_projectB

Delete an OpenRefine project.

Args: project_id: ID of the project to delete

Returns: True if the project was successfully deleted

Inputs: project_id (required). Returns: result

export_csvA

Export CSV data from an OpenRefine project.

Args: project_id: ID of the project to export

Returns: CSV data as string

Inputs: project_id (required). Returns: result

Tool Schema Changelog

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

    TDQS

    A3.6/5.0

    Scored across 4 tools

    Disambiguation5/5

    Each tool targets a distinct action: creation, deletion, operation application, and export. No overlap in purpose.

    Naming Consistency5/5

    All tools follow a consistent verb_noun snake_case pattern (apply_operations, create_project, etc.).

    Tool Count4/5

    4 tools is a minimal set for OpenRefine, but it covers basic project lifecycle and export. Could benefit from a project listing tool.

    Completeness2/5

    Missing core OpenRefine capabilities like project listing, faceting, or data transformation operations beyond generic apply_operations.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers