Hi,
I just created this issue
https://github.com/IQSS/dataverse/issues/12437
and this PR with the proposed changes:
https://github.com/IQSS/dataverse/pull/12439
@Philip Durbin 🚀 suggested to make @Juan Pablo Tosca Villanueva aware of it, so I just did that :slight_smile:
The idea is to Make OpenAPI Great (Again) by adding currently missing annotations that provide descriptions and more context for the REST endpoints, making them more machine-actionable. My ultimate goal is to implement a Dataverse MCP server based on this improved OpenAPI documentation.
Only 2,655 lines to review in that PR. :smile:
I should back up and say I support the direction and goals! MCP! Yes!
@Balázs Pataki giving the high line count in the PR, is it fair to assume all the descriptions are AI-generated?
Also, I'm sure you realize that this PR will be prone to merge conflicts.
Almost certainly this specific PR cannot be merged. It just can't. HOWEVER. Since the changes are mostly annotations, we can keep track of what needs to be changed where, and how and carve this into say 12-15 PRs with 3-4 commits each. Within 3 months or so. This will reduce review burden and merge conflicts a lot. This is an important target for UNC, so I'm willing to stick with this and see it through. After a few PRs are merged, maybe Balázs can start prototyping the MCP server based on the improved OpenAPI spec.
Does this sound reasonable to y'all?
Yes, these are all AI generated and it is a lot, that's why I raised the issue to discuss how to cope with this. I know from experience that sometimes even 4 lines of changes can take months to get tested and approved.
I assume that the annotations are nearly all correct, though the phrasing of the descriptions may not always be. But still, if we only need to review the description texts (for methods and arguments) it is still a more manageable job then adding these annotations from scratch.
Having said that, since these changes only affect the method headings (adding annotations and some reformatting, plus some import at the beginning of the files) I don't actually expect too much merge conflicts.
I was also thinking about creating a specific review tool for going through these changes in case the github review tools are not sufficient here.
Regarding the MCP server: I already have implemented one based on FastMCP. As you will see I also added tags to the methods, which allow configuration of various "profiles" for the MCP. 580+ tools are too much and users usually don't need all of them, so DV installations could be able to filter by tags what kind of tools they want to expose via the MCP. Such profiles could be "data steward", or "read-only discovery" and then only tools supporting these use cases would be offered by the MCP. This implementation is now a separate python process that need to be run and managed, but we can also think about building a Java implementation right into DV.
Makes sense. We have a weekly developer meeting ("tech hours") that I believe you both have attended. Starting this week I made an agenda/notes doc and just put this topic on it for the next meeting. How does that sound?
06.16 is OK with me!
@Balázs Pataki thanks for attending tech hours and explaining your PR to us! Your slides were great as well.
@Balázs Pataki I make a few tweaks to #12439 and approved it. Great stuff! From 10 to 98 out of 100 according to vacuum! :tada:
Wow, great, thank you very much! I’m on vacation I can help next week if anything is needed.
Meh, I don't think so. I added some docs here: https://dataverse-guide--12439.org.readthedocs.build/en/12439/developers/api-design.html#openapi
Sorry about DELETE /pids/{id}/delete. That was my bad: https://github.com/IQSS/dataverse/commit/8aacc9251c8d1288a3c0cc725a39ee9909a353c8
I merged #12439! :tada:
Now that the PR has been merged, I posted some follow up messages in related topics:
Last updated: Aug 18 2026 at 08:27 UTC