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.
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.