Stream: dev

Topic: Improve OpenAPI descriptions with AI


view this post on Zulip Balázs Pataki (Jun 04 2026 at 16:35):

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.

view this post on Zulip Philip Durbin 🚀 (Jun 05 2026 at 00:03):

Only 2,655 lines to review in that PR. :smile:

view this post on Zulip Philip Durbin 🚀 (Jun 05 2026 at 00:03):

I should back up and say I support the direction and goals! MCP! Yes!

view this post on Zulip Philip Durbin 🚀 (Jun 05 2026 at 00:04):

@Balázs Pataki giving the high line count in the PR, is it fair to assume all the descriptions are AI-generated?

view this post on Zulip Philip Durbin 🚀 (Jun 05 2026 at 00:04):

Also, I'm sure you realize that this PR will be prone to merge conflicts.

view this post on Zulip Ash Manda (Jun 05 2026 at 00:25):

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?

view this post on Zulip Balázs Pataki (Jun 05 2026 at 06:18):

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.

view this post on Zulip Philip Durbin 🚀 (Jun 05 2026 at 09:47):

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?

view this post on Zulip Balázs Pataki (Jun 05 2026 at 13:04):

06.16 is OK with me!

view this post on Zulip Philip Durbin 🚀 (Jun 22 2026 at 17:02):

@Balázs Pataki thanks for attending tech hours and explaining your PR to us! Your slides were great as well.

view this post on Zulip Philip Durbin 🚀 (Jul 10 2026 at 19:36):

@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:

view this post on Zulip Balázs Pataki (Jul 10 2026 at 19:44):

Wow, great, thank you very much! I’m on vacation I can help next week if anything is needed.

view this post on Zulip Philip Durbin 🚀 (Jul 10 2026 at 19:45):

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

view this post on Zulip Philip Durbin 🚀 (Jul 10 2026 at 19:47):

Sorry about DELETE /pids/{id}/delete. That was my bad: https://github.com/IQSS/dataverse/commit/8aacc9251c8d1288a3c0cc725a39ee9909a353c8

view this post on Zulip Philip Durbin 🚀 (Jul 13 2026 at 18:04):

I merged #12439! :tada:

view this post on Zulip Philip Durbin 🚀 (Jul 13 2026 at 18:13):

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