vikunja/pkg/modules/mcp
kolaente ecd4d786f7 feat(mcp): expose remaining v1 resources via mcp tools
Registers tasks, labels, teams, task_comments and task_assignees through
the MCP tool surface, completing the v1 resource list from the plan:

  * tasks    : create / read_one / update / delete (read_all omitted;
               models.Task.ReadAll is a stub — TaskCollection is OOS)
  * labels   : full CRUD
  * teams    : full CRUD
  * tasks_comments  : full CRUD, install-time gated on
                      config.ServiceEnableTaskComments
  * tasks_assignees : create / read_all / delete only (REST exposes no
                      read_one or update)

Per-resource input wrappers carry the path-param fields (task_id,
user_id) explicitly so MCP callers can provide them as JSON args.
installToolsForToken fans out to one installer per resource; the
generics-bound addTool keeps per-(resource, op) call sites at compile
time. The api_tokens.yml fixture extends token 11 to cover the new
scopes; token count stays at 5 for user 1 so existing token-listing
tests are unaffected.

Integration tests per resource cover tools/list visibility, at least
one successful create or read_all, and a permission denial scenario.
2026-05-27 00:11:29 +02:00
..
context.go feat(mcp): add streamable-http endpoint skeleton 2026-05-26 23:08:45 +02:00
dispatcher.go feat(mcp): enforce per-tool api token scopes 2026-05-26 23:54:02 +02:00
dispatcher_test.go feat(mcp): enforce per-tool api token scopes 2026-05-26 23:54:02 +02:00
inputs.go feat(mcp): expose remaining v1 resources via mcp tools 2026-05-27 00:11:29 +02:00
inputs_test.go feat(mcp): add per-tool input wrappers 2026-05-26 23:27:43 +02:00
mcp.go feat(mcp): enforce per-tool api token scopes 2026-05-26 23:54:02 +02:00
registry.go feat(mcp): add resource registry and dispatcher 2026-05-26 23:20:04 +02:00
registry_test.go feat(mcp): add resource registry and dispatcher 2026-05-26 23:20:04 +02:00
resources.go feat(mcp): expose remaining v1 resources via mcp tools 2026-05-27 00:11:29 +02:00
scope.go feat(mcp): enforce per-tool api token scopes 2026-05-26 23:54:02 +02:00
scope_test.go feat(mcp): enforce per-tool api token scopes 2026-05-26 23:54:02 +02:00