OpenRefine MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@OpenRefine MCP ServerImport https://example.com/data.csv and apply operations to standardize dates"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
OpenRefine 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 syncSetup Claude Desktop
Create or edit your Claude Desktop configuration file:
# On macOS/Linux ~/.config/claude_desktop_config.json # On Windows %APPDATA%\claude_desktop_config.jsonAdd 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.
Related MCP server: openproject-mcp
Features
This MCP server implements the following OpenRefine API endpoints:
OpenRefine API Endpoint | MCP Implementation | Status |
|
| ✅ |
|
| ✅ |
|
| ✅ |
|
| ✅ |
|
| ✅ |
| - | ❌ |
| - | ❌ |
| - | ❌ |
| - | ❌ |
| - | ❌ |
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 testRunning the MCP Inspector server
make inspectorLicense
This project is licensed under the MIT License - see the LICENSE file for details.
Available Tools
4 toolsapply_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
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| operations | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden. It states the return includes status and last modified time, indicating a mutating operation (not read-only). However, it does not disclose whether operations are reversible, idempotent, or what constitutes invalid input.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (two sentences for purpose, plus structured Args/Returns). No redundant or irrelevant information. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations, the description covers purpose, parameters (with some explanation), and return value. It could be more complete by noting operational nuances, but it meets basic needs for a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description partly compensates by explicitly explaining 'project_id' as the project ID and 'operations' as a JSON string. However, it does not elaborate on the expected structure or constraints of the operations JSON, leaving ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: 'Apply operations to an OpenRefine project.' This distinguishes it from sibling tools like create_project, delete_project, and export_csv, which have different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites, limitations, or exceptions. It only describes the basic action without contextual usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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
| Name | Required | Description | Default |
|---|---|---|---|
| dataset_url | Yes | ||
| name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states basic creation without mentioning potential side effects, authentication, or error handling. It lacks details on what happens if the URL is invalid or timeouts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a clear docstring format, front-loading the purpose. The Args and Returns sections are structured and useful, though the return description could be more formal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool with 2 parameters and an output schema, the description covers purpose and parameters adequately. However, it lacks information on error scenarios, prerequisites, or time expectations, making it slightly incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description includes an Args section that explains dataset_url and name, adding meaning beyond the bare-bones schema (which has 0% coverage). It provides clear purpose for each parameter despite lacking format constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it creates a new OpenRefine project from a dataset URL, using specific verb-resource combination. It distinguishes itself from sibling tools like delete_project, export_csv, and apply_operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (to create a project), but does not explicitly state when not to use it or mention alternatives. It is clear enough given the sibling tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_projectB
Delete an OpenRefine project.
Args: project_id: ID of the project to delete
Returns: True if the project was successfully deleted
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description must fully disclose behavioral traits. It states the tool deletes a project and returns True, but omits key aspects like irreversibility, error handling for non-existent projects, or any side effects. This leaves ambiguity about the destructive nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a front-loaded main verb phrase followed by a structured Args and Returns section. Every sentence is necessary and there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter tool, the description covers the main action, parameter, and return value. However, it lacks completeness on error conditions, success confirmation format, and any prerequisites. The output schema is described in text but not formally defined.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description should compensate. It restates the parameter name in the Args section but adds no new meaning (e.g., format, valid range, or source). The one parameter lacks any semantic enrichment beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Delete an OpenRefine project' with a clear verb and resource. It uniquely identifies the action from siblings like create_project, apply_operations, and export_csv, which are all distinct operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (to delete a project) but provides no explicit guidance on when not to use or alternatives. No context about prerequisites or consequences is given. The sibling tools are different, but no comparative advice is offered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_csvA
Export CSV data from an OpenRefine project.
Args: project_id: ID of the project to export
Returns: CSV data as string
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description only states the action and return type. It does not disclose whether the operation is read-only, destructive, or has any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and well-structured: one sentence for purpose, then Args and Returns sections. Every part is necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no annotations, the description covers purpose, parameter, and return value adequately. It lacks details like source of project_id or encoding, but is largely sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description explains project_id as 'ID of the project to export', adding basic meaning beyond the schema's type and title.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Export' and the resource 'CSV data from an OpenRefine project', distinguishing it from siblings like create_project or delete_project.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when CSV export is needed but provides no explicit when-to-use or when-not-to-use guidance nor alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
4 tool updates
v0.1.0- First observed
apply_operations - First observed
create_project - First observed
delete_project - First observed
export_csv
TDQS
Each tool targets a distinct action: creation, deletion, operation application, and export. No overlap in purpose.
All tools follow a consistent verb_noun snake_case pattern (apply_operations, create_project, etc.).
4 tools is a minimal set for OpenRefine, but it covers basic project lifecycle and export. Could benefit from a project listing tool.
Missing core OpenRefine capabilities like project listing, faceting, or data transformation operations beyond generic apply_operations.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Query, browse, and automate OmegaAI workspaces from any MCP client. Streamable HTTP with OAuth 2.0.
Query, join, profile, clean and convert CSV/JSON/Parquet with server-side DuckDB over MCP.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables interaction with self-hosted OpenProject instances through the MCP protocol, supporting CRUD operations for projects and tasks (work packages) with pagination and filtering capabilities.8-
- AlicenseAqualityDmaintenanceExposes the OpenProject REST API as MCP tools for project management, including creating and managing projects, work packages, relations, attachments, users, notifications, watchers, boards, and reference data.3742MIT
- AlicenseNot gradedqualityDmaintenanceProvides a standardized MCP interface for interacting with HTTP tools and services, enabling unified API access and management.MIT
- FlicenseAqualityDmaintenanceMCP server for querying Huwise/Opendatasoft data portals. Enables dataset search, metadata retrieval, record filtering with ODSQL, and data export.53-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/FiquemSabendo/openrefine_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server