kolaente c9f56c97cb feat(mcp): derive tool schemas and dispatch from model struct tags
Replaces the hand-written per-resource plumbing (input wrapper structs,
per-resource install functions, per-op Inputs maps) with a generic layer:

- schema.go reflects each op's input schema from the model's existing
  json/doc/readOnly/valid/minLength/param/query tags — the same contract
  the Huma-backed /api/v2 reads. URL-bound param fields become required
  JSON arguments; models without an exposed id (task assignees) are
  identified by their param fields.
- apply.go applies arguments presence-based: only keys the caller sent
  are written, so an explicit zero clears a field and an omitted key
  leaves it untouched — replacing the pointer tri-state wrappers.
- Registration is now a pure declaration (name, model, ops); the SDK's
  low-level AddTool with runtime-built schemas replaces the generic
  typed handlers, collapsing the six install functions into one loop.
- tasks_read_all now exists, backed by models.TaskCollection, exposing
  the filter/sort_by/order_by query surface.

inputs.go and its wrapper structs are deleted; behavior is pinned by the
unchanged mcp webtests.
2026-08-28 23:53:52 +02:00
2026-08-20 10:48:47 +02:00
2026-08-20 10:48:47 +02:00
2026-08-28 23:53:52 +02:00
2026-08-27 21:50:40 +02:00
2026-08-04 13:42:43 +02:00

Build Status License: AGPL-3.0-or-later Install Docker Pulls OpenAPI Docs

Vikunja

The task manager you actually own.

If Vikunja is useful to you, please consider supporting the project. You can buy a coffee, sponsor on GitHub or buy a sticker pack. We're also offering a hosted version of Vikunja if you want a hassle-free solution for yourself or your team. If you or your company needs admin panel, audit logs or time tracking, check out Vikunja Pro.

Note

For the development of Vikunja, we're using LLM-Assisted coding tools in various parts of the codebase. Most contributions made @tink-bot are built that way.

Table of contents

Security Reports

If you find any security-related issues you don't want to disclose publicly, please use the contact information on our website.

Features

See the features page on our website for a more exhaustive list or try it on try.vikunja.io!

Docs

All docs can be found on the Vikunja home page.

Roadmap

See the roadmap (hosted on Vikunja!) for more!

Contributing

Please check out the contribution guidelines on the website.

License

Most of this repository is licensed under AGPL3.0orlater. The contents of desktop/ are licensed under GPL3.0orlater.

Unsplash Images

Background images from Unsplash are distributed under the Unsplash License. The license requires giving credit to the photographer and Unsplash. See Unsplashs terms for more information.

S
Description
No description provided
Readme AGPL-3.0
1.3 GiB
Latest
2026-08-04 06:42:44 -05:00
Languages
Go 51.2%
JavaScript 29.9%
TypeScript 9.9%
Vue 8.4%
SCSS 0.3%
Other 0.2%