Should we develop a MCP Server for OpenRefine?

At the end of last year Anthropic released a standard on how LLMs can interact with tools via a common protocol.

As most of the functions in OpenRefine can be controlled via API calls, developing a MCP Server for OpenRefine that maps these API calls to the protocol seems not that complicated.

What do you think?

1 Like

I'm not always up to date on LLM activity, but I think this sounds like a good idea. Would it be possible to build this as an extension?
Relatedly, I've been spending some time trying to improve documentation for Butterfly, the web framework OpenRefine uses. Together, these two things seem like a good opportunity to motivate some work to standardize the OpenRefine API.

I think so... I guess it would also be possible to run the MCP Server completely independent of OpenRefine similar to the OpenRefine Clients. But an extension would make it easier for people to install and use it, as they would not have to maintain a separate tech stack.

I am not familiar with the Butterfly framework (yet). But better documenting and standardizing the OpenRefine API was something we identified as desideratum at the last BarCamp.

One of the problems we might face is, that a lot of functionality in OpenRefine is a command that is combined with an expression. This will either blow up the MCP Server API or handle the burden of generating a suitable expression to the LLM.

But with the growing support of other languages as expression provider, this will hopefully make it easier for Standard LLMs to be able to generate suitable expressions e.g. in JavaScript or Python 3.

1 Like

Has there been any more discussion about this? I'd be happy to help move one forward if others have interest.

Hi @closedLoop, welcome to the forum! I haven't seen any other discussion around this. I don't know much about the protocol itself and don't regularly work with LLMs so I don't feel well-suited to be the one driving this forward, but I'd welcome a proposal from you or anyone else interested in keeping this moving.

Hi all, I just developed the first version of an OpenRefine MCP server to GitHub - FiquemSabendo/openrefine_mcp: MCP server to control OpenRefine. It exposes the project creation, applying operations, and exporting as CSV.

I was able to get Claude Desktop to create a project, apply a simple operation, and export the results as CSV. Just a simple test.

I haven't had the time to play with it much, so I'm unsure how well Claude is able to create the operations. Nonetheless, it's working.

Let me know if you have any suggestions, prompting tips or ideas.

2 Likes

Just wanted to let you know, that I am really happy to see an implementation of this!

On first glance it looks exactly how I imagined it. :star_struck:
Unfortunately I currently do not have any capacity to try this out or analyze it deeper. :disappointed_face:

Will have to move it to my ToDo list. :clipboard:

Thanks for the effort! I just tried it with LM Studio and it works somehow – my small local model (Qwen 3 8b) was not able to generate valid JSON for the apply operation API (although I provided a valid example) but at least managed to export and analyse the content of a project.