10 Commits

Author SHA1 Message Date
Eric Schubert db6aaaa984 [#71358] add search version tool
- https://community.openproject.org/work_packages/71358
- add tool
- add specs for the tool
- slightly improve version model for the api
2026-02-11 16:34:04 +01:00
Jan Sandbrink 16fb55fedf Merge pull request #21939 from opf/mcp-portfolios
Add separate tools to search portfolios and programs
2026-02-11 11:23:49 +01:00
Jan Sandbrink 1279c0dc2c Add separate tools to search portfolios and programs
We separated projects from portfolios and programs conceptually.
While older APIs can return mixed results for backwards-compatibility
purposes, the MCP API already purely returns projects from the search_projects
tool, thus we need additional tools for results of other types.
2026-02-10 10:16:54 +01:00
Jan Sandbrink 9d362cc032 Add tools and resources around users
Allowing to search for users, e.g. to allow queries like
"find work packages assigned to Maria".
Allowing to find the current user, to enable classic use cases
like "find work packages assigned to me".
2026-02-06 11:14:22 +01:00
Jan Sandbrink 0e7a19b54c Add tools that return the content of certain resources
They are useful for clients that don't support resources,
or ignore them, even if they could support them.
2026-02-05 08:44:30 +01:00
Jan Sandbrink beec674117 Pluralize name of search_project tool
This tool returns multiple results, so it should
consistently be called search_projects.
2026-02-04 09:23:26 +01:00
Jan Sandbrink 5ab26e3b41 Add search_work_packages MCP tool 2026-02-03 16:06:33 +01:00
Jan Sandbrink ac4e9626ee Add MCP resource handling
Allows to list resources and resource templates and reading
their contents.
2026-01-26 13:22:44 +01:00
Jan Sandbrink 95cbaabb7e Allow to configure MCP server, tools and resources
Instead of defining the mcp tools as static classes, we are now
using the Mcp::Tool.define flow to build them. This allows us to
change their description on every call and thus define it through
the configuration stored in the database.
2026-01-05 12:53:48 +01:00
Jan Sandbrink 78f8607de6 First implementation of MCP API server in OpenProject
So far the MCP server only offers a single tool, but authentication
and integration is already built in a way that's intended to last.

Ideally extensions to this happen by adding additional tools or resources,
but will not require further architectural changes, though realistically we'll
probably identify more potential for reuse, once we added a few more tools.

The exact representation of results is still slightly to-be-discussed. Right
now we are using vanilla APIv3 representation, which might be enough, but possibly
we want to represent linked resources differently, so that they can be recognized
to be fetchable via MCP resources more easily.
2026-01-05 08:28:45 +01:00