Mcp Server To Control Openrefine
LocalAbout Mcp Server To Control Openrefine
An MCP server that gives MCP clients a typed interface to OpenRefine's HTTP API. It supports project creation, operation execution, CSV export, deletion, and access to project models for data-cleaning workflows.
Key features
- 01Create projects from dataset URLs
- 02Apply operations to projects
- 03Export project data as CSV
- 04Delete projects
- 05Read project model information
Use cases
- 01Starting an OpenRefine project from a dataset URL
- 02Applying data-cleaning operations through an MCP client
- 03Exporting cleaned project data to CSV
MCP support
Exposes OpenRefine API capabilities as MCP tools and a project-model resource. MCP clients can create and manage projects, apply operations, export CSV, and inspect project structure.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEOpenRefine MCP Server
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
-
Create or edit your Claude Desktop configuration file:
# On macOS/Linux ~/.config/claude_desktop_config.json # On Windows %APPDATA%\claude_desktop_config.json -
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" } } } } -
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 URLapply_operations(project_id: int, operations: str)→ Applies operations to an OpenRefine projectexport_csv(project_id: int)→ Exports CSV data from an OpenRefine projectdelete_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.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.