Projects
Fields marked * are required. Updates keep every field they are not given. An AI app can ask vritto_describe for the same details, filtered to what its connection may use.
Projectproject
A multi-step outcome with milestones and progress.
projects_getProjectFindthrough vritto_findFetch one project by its ID. Requires a real projectId; use projects_queryProjects first when the ID is unknown.
| Field | Type | Description |
|---|---|---|
| projectId* | string | Project ID. |
projects_queryProjectsFindthrough vritto_findSearch projects by free text, status, priority, tag, or area. Use status 'active' with a small limit for current outcomes. Rows are compact summaries (id, name, status, targetDate, milestoneCount, progress); use projects_getProject (or detail 'full') when the user needs the summary/outcome text or milestone list.
| Field | Type | Description |
|---|---|---|
| query | string | Search query. |
| status | one of planned, active, paused, completed, cancelled | |
| priority | one of low, normal, high, urgent | |
| tag | string | Exact tag filter. |
| area | string | Area filter. |
| detail | one of summary, full | Row shape: "summary" (default, id/name/status/targetDate/milestoneCount/progress) or "full" (every field incl. summary/outcome text and milestones). |
| includeArchived | boolean | Include archived (deleted) projects; default false. |
| limit | integer | Max records to return (default 50 in summary mode, 200 in full). |
projects_createProjectCreatethrough vritto_createCreate a project for a serious multi-step outcome; do not create one for a single one-off task. Capture name, summary, outcome (definition of done), status, priority, area, startDate/targetDate (YYYY-MM-DD), tags, and milestones. Example: name 'Launch Vritto beta', status 'active', targetDate '2026-08-01', tags ['work'].
| Field | Type | Description |
|---|---|---|
| project* | object | Project fields; name is required. |
| project.name* | string | Project name. |
| project.summary | string | Short description. |
| project.outcome | string | Definition of done or desired outcome. |
| project.status | one of planned, active, paused, completed, cancelled | Project status (default 'active'). |
| project.priority | one of low, normal, high, urgent | |
| project.area | string | Area or domain. |
| project.startDate | string | Local date YYYY-MM-DD. |
| project.targetDate | string | Local date YYYY-MM-DD. |
| project.tags | list of string | Tags. |
| project.ownerPersonIds | list of string | Owner person IDs. |
| project.linkedRefs | list of object | Linked module records. |
| project.milestones | list of object | Project milestones. |
| project.progress | integer | Progress percent; task-weighted automatically when project tasks exist. |
| project.favorite | boolean | Favorite project. |
| project.idempotencyKey | string | Stable dedupe key. |
Example input
{
"project": {
"name": "Kitchen remodel",
"outcome": "A kitchen we cook in every night",
"status": "active",
"targetDate": "2027-03-01"
}
}projects_patchProjectUpdatethrough vritto_updateApply a partial update to one project; only the fields present in patch change. Requires projectId. Example: patch { progress: 40 }.
| Field | Type | Description |
|---|---|---|
| projectId* | string | Project ID. |
| patch* | object | Fields to change. |
| patch.name | string | Project name. |
| patch.summary | string | Short description. |
| patch.outcome | string | Definition of done or desired outcome. |
| patch.status | one of planned, active, paused, completed, cancelled | Project status (default 'active'). |
| patch.priority | one of low, normal, high, urgent | |
| patch.area | string | Area or domain. |
| patch.startDate | string | Local date YYYY-MM-DD. |
| patch.targetDate | string | Local date YYYY-MM-DD. |
| patch.tags | list of string | Tags. |
| patch.ownerPersonIds | list of string | Owner person IDs. |
| patch.linkedRefs | list of object | Linked module records. |
| patch.milestones | list of object | Project milestones. |
| patch.progress | integer | Progress percent; task-weighted automatically when project tasks exist. |
| patch.favorite | boolean | Favorite project. |
| patch.idempotencyKey | string | Stable dedupe key. |
| expectedRevision | integer | Revision guard from the last read. |
projects_deleteProjectDeletethrough vritto_deleteDelete a project (marks it cancelled and archived). Only for explicit deletion requests.
| Field | Type | Description |
|---|---|---|
| projectId* | string | Project ID. |
| expectedRevision | integer | Revision guard from the last read. |
Project Taskproject_task
A work item on a project board.
projects_queryProjectTasksFindthrough vritto_findSearch tasks owned by the Projects module across boards and timelines; filter by projectId, free text, status, priority, or tag. ALWAYS pass dueOnOrBefore when the question concerns near-term work (this week, overdue). Rows are compact summaries; pass detail 'full' only when the user needs complete task notes.
| Field | Type | Description |
|---|---|---|
| projectId | string | Only tasks in this project. |
| query | string | Search query. |
| status | one of todo, in_progress, blocked, done, cancelled | |
| priority | one of low, normal, high, urgent | |
| tag | string | Exact tag filter. |
| dueOnOrBefore | string | Only open tasks due on or before this date (YYYY-MM-DD), use for near-term views like 'project work due this week'. |
| detail | one of summary, full | Row shape: "summary" (default, id/title/status/dueDate/priority/projectId + notes preview) or "full" (every field incl. complete notes). |
| includeArchived | boolean | Include archived (deleted) project tasks; default false. |
| limit | integer | Max records to return (default 50 in summary mode, 500 in full). |
projects_createProjectTaskCreatethrough vritto_createCreate a work item inside a project board; task.projectId and task.title are required. Set status, priority, dueDate, effortPoints (relative effort for workload and weighted progress), assignees, and tags when known.
| Field | Type | Description |
|---|---|---|
| task* | object | Project task fields; projectId and title are required. |
| task.projectId* | string | Owning project ID. |
| task.title* | string | Task title. |
| task.notes | string | Supporting notes. |
| task.status | one of todo, in_progress, blocked, done, cancelled | |
| task.priority | one of low, normal, high, urgent | |
| task.dueDate | string | Local date YYYY-MM-DD. |
| task.effortPoints | integer | Relative effort estimate used for workload and weighted progress. |
| task.assigneePersonIds | list of string | Assignee person IDs. |
| task.tags | list of string | Tags. |
| task.sortOrder | number | Board sort order. |
| task.linkedTaskId | string | Linked Tasks-module task ID. |
| task.idempotencyKey | string | Stable dedupe key. |
Example input
{
"task": {
"projectId": "proj_kitchen",
"title": "Get three contractor quotes",
"dueDate": "2026-10-15",
"priority": "high"
}
}projects_patchProjectTaskUpdatethrough vritto_updateApply a partial update to one project task; only the fields present in patch change. Requires projectTaskId and patch.
| Field | Type | Description |
|---|---|---|
| projectTaskId* | string | Project task ID. |
| patch* | object | Fields to change. |
| patch.projectId | string | Owning project ID. |
| patch.title | string | Task title. |
| patch.notes | string | Supporting notes. |
| patch.status | one of todo, in_progress, blocked, done, cancelled | |
| patch.priority | one of low, normal, high, urgent | |
| patch.dueDate | string | Local date YYYY-MM-DD. |
| patch.effortPoints | integer | Relative effort estimate used for workload and weighted progress. |
| patch.assigneePersonIds | list of string | Assignee person IDs. |
| patch.tags | list of string | Tags. |
| patch.sortOrder | number | Board sort order. |
| patch.linkedTaskId | string | Linked Tasks-module task ID. |
| patch.idempotencyKey | string | Stable dedupe key. |
| expectedRevision | integer | Revision guard from the last read. |
projects_publishProjectTaskToTasksUpdatethrough vritto_updateCopy and link one project task into the global Tasks module so it appears in the user's general task list. Use only when the user explicitly asks to copy or link a project task into Tasks.
| Field | Type | Description |
|---|---|---|
| projectTaskId* | string | Project task ID. |
| expectedRevision | integer | Revision guard from the last read. |
projects_setProjectTaskStatusUpdatethrough vritto_updateSet one project task's status (todo, in_progress, blocked, done, cancelled), optionally with a new board sortOrder. Requires projectTaskId and status. Example: { projectTaskId, status: 'done' }.
| Field | Type | Description |
|---|---|---|
| projectTaskId* | string | Project task ID. |
| status* | one of todo, in_progress, blocked, done, cancelled | New status. |
| sortOrder | number | Board sort order. |
| expectedRevision | integer | Revision guard from the last read. |
Kept in the Vritto app
projects_updateProject: Replaces a whole record and clears omitted fields; the merge operation is on MCP instead.