registry_upsert_notes
Admin: up to 200 notes on a registry organization or its components: comments or the operating reality (workaround, bottleneck, manual_handoff…), each optionally citing an open-web source. Duplicates are skipped. Needs an admin key.
Parameters
- organizationstringrequired
The organization's domain or website, as given to registry_upsert_organization
min 3 charsmax 300 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 - notes[].sourceobjectoptional
- notes[].source.urlstringrequired
Public web address the finding rests on
min 1 charmax 500 chars - notes[].source.kindenumoptionaldefault "website"websitecareersjob_postpressreviewfilingregistry
- notes[].source.titlestringoptionalmax 200 chars
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": "registry_upsert_notes",
"arguments": {
"organization": "acmebuilders.example",
"notes": [
{
"component": "estimating",
"kind": "manual_handoff",
"body": "Estimates are re-keyed into the accounting system.",
"source": {
"url": "https://acmebuilders.example/careers/estimator",
"kind": "job_post"
}
}
]
}
}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: ….
{
"organization": {
"domain": "acmebuilders.example"
},
"results": [
{
"component": "estimating",
"noteId": "9c2d…",
"created": true
}
]
}Over REST
The same call without MCP: POST/api/v1/admin/registry/notes