I maintain mcp_connector, an MCP-only ExApp that has been in the App Store since 0.1.0. It lets an assistant read Nextcloud data strictly on behalf of the signed-in user, over OAuth 2.1 as described in the MCP authorization spec.
I would like to extend that to OpenProject data, and integration_openproject already solves the hard part. Its appinfo/routes.php exposes 15 OCS routes under openProjectAPI#, and OpenProjectAPIController is an OCSController marked NoAdminRequired, so the call runs with the signed-in user’s own OpenProject connection.
Going through that app rather than opening a second OAuth client of my own would mean no additional secret inside my container, no second consent screen for the user, and no new outbound host from my side. That is clearly the better design, if it is allowed.
Hence my question: are those OCS routes intended as a public interface that other apps may call, or are they internal plumbing for the app’s own front end that may change without notice? I would rather ask now than build on them and have to walk it back later.
I would normally ask in the repository, but nextcloud/integration_openproject has issues disabled and points to community.openproject.org, which does not allow self-registration at the moment. So I am asking here, in the hope that someone from the team or someone who has built on these routes before can say.
One follow-up, if they are public: I can see search over work packages, file links, projects, notifications, statuses, types and configuration. I cannot see a route to read a single work package by id, one for comments, or one for work assigned to me. Is that deliberate, and would a read-only addition in that direction be welcome as a contribution?