upload_notes
Upload notes on the company or a component: comments, or the operating reality (workaround, informal_channel, bottleneck, dependency, tacit_rule, manual_handoff). Duplicates are skipped. Needs an editor key.
Write · editor keyMCP tool
Parameters
- workspacestringrequired
Workspace slug
min 1 charmax 80 chars - companystringoptional
Company slug; defaults to the workspace's own company
min 1 charmax 80 chars - notesobject[]requiredmin 1 itemmax 200 items
- notes[].componentstringoptional
Component id, clientId or label; omit for a company-level note
min 1 charmax 200 chars - notes[].bodystringrequiredmin 1 charmax 4000 chars
- notes[].kindenumoptionaldefault "comment"
comment, or the operating reality it records
commentworkaroundinformal_channelbottleneckdependencytacit_rulemanual_handoff
Example call
Agents call tools by name; you rarely write this by hand. It is here so you can test the server from a shell or your own code.
{
"name": "upload_notes",
"arguments": {
"workspace": "acme-builders",
"notes": [
{
"component": "tool/quickbooks",
"kind": "manual_handoff",
"body": "Approved budgets are typed into QuickBooks by hand."
}
]
}
}Response
The result is one text content block holding this JSON (abbreviated here). Errors come back with isError: true and a message such as Error 401: … or Invalid input: ….
Response
{
"company": {
"slug": "client",
"name": "Acme Builders"
},
"results": [
{
"component": "tool/quickbooks",
"noteId": "9c2d…",
"created": true
}
]
}Over REST
The same call without MCP: POST/api/v1/workspaces/:slug/upload/notes