Skip to content
dhanu docs
Browse pages

MCP server

MCP tools

The tools the Dhanu MCP server offers, the scope each one needs and what it returns.

Every tool maps onto one public API operation, and a key sees only the tools its scope allows. Results carry the same JSON the REST endpoint returns.

ToolNeedsArgumentsReturns
list_projectsany key-{ projects } the key can reach
list_taskstasks.readlimit?, cursor?One page of tasks, newest first
read_tasktasks.readtaskId{ task }
read_task_messagestasks.readtaskId, limit?, cursor?One page of messages, oldest first
create_tasktasks.createinput, title?, staffId?{ task }, returns at once
send_task_messagetasks.createtaskId, input{ message }
wait_for_replytasks.readtaskId, after?, timeoutSeconds?{ messages }, empty on timeout
list_staffstaff.read-{ staff } with trigger addresses
read_staffstaff.readstaffId{ staff }
list_workflowsworkflows.read-{ workflows } with their fields
run_workflowworkflows.runworkflowId, values{ task }
search_brainbrain.searchquery{ results } ranked, with snippets

A typical exchange: create_task with staffId from list_staff, then wait_for_reply with the task id until it returns a message. wait_for_reply holds the connection for up to timeoutSeconds (default 60, at most 120) and returns an empty list when nothing arrived, so a client loops rather than guessing.

The tool list is the same data as the reference: the server reads it from McpToolCatalog, which is also where a new tool is added.