registry_upsert_organization
Admin: create or update a public registry organization, one per domain (www., paths and http fold onto the same one). Sets name, industry node, region, size, business model and the profile summary, and maps it against its baseline. Needs an admin key.
Parameters
- websitestringrequired
Its website; the domain identifies it (one record per domain)
min 3 charsmax 300 chars - namestringrequiredmin 1 charmax 200 chars
- industrystringoptional
Taxonomy node key (list_industries / registry_upsert_taxonomy)
min 1 charmax 80 charspattern ^[a-z0-9_]+$ - regionstringoptionalmax 120 chars
- sizeBandstringoptional
Headcount band, e.g. 11-50
max 40 chars - businessModelenumoptionalprojectserviceproductsubscriptionmarketplacestaffingagency_franchisedistributionlicensingasset
- kindstringoptional
Organization kind (company, government agency, nonprofit…); not stored yet
max 60 chars - summarystringoptional
One paragraph shown at the top of the public profile
max 2000 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_organization",
"arguments": {
"website": "https://www.acmebuilders.example",
"name": "Acme Builders",
"industry": "construction",
"region": "Texas, US",
"sizeBand": "51-200",
"summary": "A general contractor building mid-size commercial projects."
}
}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: ….
{
"created": true,
"organization": {
"domain": "acmebuilders.example",
"name": "Acme Builders",
"ref": "acme-builders-3f2a9c1d",
"profile": "/registry/acme-builders-3f2a9c1d"
},
"industry": {
"key": "construction",
"name": "Construction"
},
"schemaVersion": 3
}Over REST
The same call without MCP: POST/api/v1/admin/registry/organizations