System Atlas

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[]required
    min 1 itemmax 200 items
  • notes[].componentstringoptional

    Component id, clientId or label; omit for a company-level note

    min 1 charmax 200 chars
  • notes[].bodystringrequired
    min 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