Projects
Projects
Tools that read and act on projects, the budgets beneath them and the tasks beneath the budgets.
The Projects tools cover the project-management surface of plnnrly. They let an AI client search the project list, inspect a single project in full, update its top-level fields, and create or update the budgets and tasks that hang off it. None of the tools delete anything.
Every call runs as the user who minted the MCP token. Tenant isolation is enforced by the server, and per-tool authorization checks the user's plnnrly permissions before anything is read or written.
Tools
| Tool | Purpose |
|---|---|
list-projects-tool | List projects, filtered by status, customer, managers, dates, tags or title. |
get-project-tool | Fetch one project with its budgets, tasks and relation counts. |
update-project-tool | Update top-level project fields. Flipping status to invoiced finishes every open task. |
list-budgets-tool | List budgets, filtered by project, customer, group, status or dates. |
create-budget-tool | Create a budget under a project. |
update-budget-tool | Update fields on an existing budget. |
create-task-tool | Create a task under a budget. |
update-task-tool | Update any editable field on a task. Use update-task-status-tool when you only need to change the kanban column. |
Permissions at a glance
| Action | Permission |
|---|---|
| List or get projects | projects::read |
| Update a project | projects::update |
| List budgets | budgets::read |
| Create or update a budget | budgets::create / budgets::update |
| Create a task assigned to yourself | kanban::manage_self |
| Create or reassign a task to another user (or leave it unassigned) | kanban::manage_for_others |
| Update any of your own tasks | kanban::manage_self |
| Update someone else's task | kanban::manage_for_others |
Permissions a user does not hold cause the tool to return an authorization error.
Common workflows
- "Show me every active ACME project." —
list-projects-toolwithcustomer_idandstatus: "active". - "Give me the full picture of project 42." —
get-project-toolwithid: 42. - "Mark project 42 as invoiced." —
update-project-toolwithstatus: "invoiced"(auto-finishes all open tasks). - "Add a 40-hour implementation budget under project 42." —
create-budget-toolwithproject_id: 42,budget: 2400. - "Plan a task for me on that new budget." —
create-task-toolwith the newbudget_id, a date and a description. - "Push the task by a week and bump the estimate." —
update-task-toolwith the newdue_dateandminutes.