nenoDevelopers
⌘K
v1

MCP · Tasks

List open tasks

READlist_open_tasks

Lists the accountant's open requests, such as a missing receipt or a payment to confirm, with the task id respond_to_task needs.

Scope
tasks:read
Read tasks
Permission
neno.viewTasks
Your role in the company must include it
Annotations
readOnlyHint trueidempotentHint truedestructiveHint false

Description for models

List the open tasks waiting on this user — requests from the accountant, from Neno, and VAT returns to pay or to acknowledge (a refund or a nil return), like "upload this receipt" or "confirm this payment", including requests the accountant rejected, with the reason. Each task says what it is about (supplier, amount, date, how it was paid, payment reference; for a bill, its document number, and whether a payment is matched to it or which email it came in), who paid and who it is for, why it was raised, the accountant's latest message, and what answer closes it. This is the tool for "do you need anything from me?", "is anything outstanding?", "what still needs doing?" and "what is the accountant waiting for?". Lists the user's own tasks; pass scope "company" for everyone's, which needs access to the company's tasks and is not available on WhatsApp. A VAT return task is closed by the user in the Neno app, never by you: "I have paid" for a payment, "Understood" for a refund or nil return. It is not an approval of the return, so never say the user approved or confirmed it. Returns every open task up to 200 rows in one call and states the matching total, so the answer is complete unless it hands back a cursor. Documents that failed to process are list_bills with status failed.

Sent verbatim in tools/list. It's written for the model, so it says when to use the tool.

Arguments

countinteger · 1–200

Maximum rows to return (default 200, which is also the maximum). Omit it to get every match; the response says whether any rows remain.

cursorstring

Continuation cursor: the nextCursor a previous response reported. Pass the same filters alongside it.

scopestring

"mine" (the default) for the user's own tasks and those assigned to no one; "company" for every member's, each naming who it is for.

minecompany

Added by the server

On every tool that acts on one company
workspacestring

The id of the company this applies to. This connection covers a single company, which is filled in for you, so you can leave this out.

Result

text
Success. The answer as plain text in content[0].text, starting with Company: and the company name.
isError
Refused or failed. A missing permission, an invalid argument or a server failure sets isError: true. The text says what went wrong and what to tell the user.
input
Company needed. With several companies and no workspace argument, the server asks which company the call is for. A client that can't ask gets an error that lists the companies.
POST /mcp · tools/call
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_open_tasks",
"arguments": {}
}
}
Example resultHand-written
content[0].text
Company: Studio Veld BV
All 2 tasks.
- Upload Q3 bank statements | open | created 2026-09-20 | asks for a document
Request: Please upload the statements for July to September.
Task id: 9b2f6c1e-4a7d-4f0e-8c3b-2d51e7a0f4c9
- Confirm payment to NS Groep | open | created 2026-09-24 | asks for a confirmation
About: transaction · NS Groep · -€48,40 · 2026-09-23
Task id: 1e7d0c44-2f8b-4a39-9e15-c6b3a0d27f81
No more rows remain (nextCursor: null).

Tools return plain text with no output schema. This example follows the tool's real format, but the values are made up.