Mcp Server To Control Openrefine

by FiquemSabendo

308 downloads
Not rated
GitHub

Description

# OpenRefine MCP Server [![Test](https://github.com/FiquemSabendo/openrefine_mcp/actions/workflows/test.yml/badge.svg)](https://github.com/FiquemSabendo/openrefine_mcp/actions/workflows/test.yml) A Model Context Protocol (MCP) server that provides a typed, discoverable interface…

About

# OpenRefine MCP Server [![Test](https://github.com/FiquemSabendo/openrefine_mcp/actions/workflows/test.yml/badge.svg)](https://github.com/FiquemSabendo/openrefine_mcp/actions/workflows/test.yml) A Model Context Protocol (MCP) server that provides a typed, discoverable interface to OpenRefine's HTTP API. This allows…

Details

Author
FiquemSabendo
Downloads
308
Categories
Other

- Creates projects from dataset URLs
- Applies editing operations to existing projects
- Exports project data as CSV
- Deletes projects
- Provides project model information via a resource URI

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Mcp Server To Control Openrefine
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Install Python 3.13+, uv, and ensure an OpenRefine instance is running (default: http://localhost:3333). Clone the repository, run uv sync, then configure your MCP client (e.g., Claude Desktop) by editing its configuration file to point to the server script and set the OPENREFINE_URL environment variable.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "mcp server to control openrefine": {
            "openrefine": {
                "command": "uv",
                "args": [
                    "--directory",
                    "path/to/your/openrefine_mcp",
                    "run",
                    "openrefine_mcp/openrefine_server.py"
                ],
                "env": {
                    "OPENREFINE_URL": "http://localhost:3333"
                }
            }
        }
    }
}

McpServers

{
    "openrefine": {
        "command": "uv",
        "args": [
            "--directory",
            "path/to/your/openrefine_mcp",
            "run",
            "openrefine_mcp/openrefine_server.py"
        ],
        "env": {
            "OPENREFINE_URL": "http://localhost:3333"
        }
    }
}

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/openrefine_server.py"
],
"env": {
"OPENREFINE_URL": "http://localhost:3333"
}
}
}
}

3. Restart Claude Desktop to load the new MCP server.

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.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.