System Atlas

registry_upsert_components

Admin: up to 200 public components of a registry organization, each with its open-web source and confidence, and its values. Placed on primitives like an upload; re-sending a clientId updates it. Items on private sources are refused per item. Needs an admin key.

AdminMCP tool

Parameters

  • organizationstringrequired

    The organization's domain or website, as given to registry_upsert_organization

    min 3 charsmax 300 chars
  • itemsobject[]required
    min 1 itemmax 200 items
  • items[].clientIdstringoptional

    Your stable id for this thing (e.g. repo path or tool slug). Re-uploading the same clientId updates instead of duplicating.

    min 1 charmax 120 charspattern ^[\w.:/@-]+$
  • items[].labelstringrequired

    The company's own name for it: 'Payroll (Gusto)', 'Platform team'

    min 1 charmax 200 chars
  • items[].descriptionstringoptional

    One or two plain sentences: what it is, what it does

    max 2000 chars
  • items[].layerenumoptional
    peopleprocesssoftwaredatadecisions
  • items[].primitivestringoptional

    Primitive key from get_mapping_guide, if you know it

    max 80 chars
  • items[].parentstringoptional

    Parent component: its clientId, label, or component id

    min 1 charmax 200 chars
  • items[].kindenumoptionaldefault "internal"
    internalexternal
  • items[].externalKindenumoptional
    customersupplierpartnerregulatoreconomic_factor
  • items[].valuesobject[]optionaldefault []
    max 50 items
  • items[].values[].parameterstringrequired
    min 1 charmax 80 chars
  • items[].values[].valuestring | number | booleanrequired
  • items[].values[].sourceobjectoptional

    Defaults to the component's source

  • items[].values[].source.urlstringrequired

    Public web address the finding rests on

    min 1 charmax 500 chars
  • items[].values[].source.kindenumoptionaldefault "website"
    websitecareersjob_postpressreviewfilingregistry
  • items[].values[].source.titlestringoptional
    max 200 chars
  • items[].sourceobjectrequired
  • items[].source.urlstringrequired

    Public web address the finding rests on

    min 1 charmax 500 chars
  • items[].source.kindenumoptionaldefault "website"
    websitecareersjob_postpressreviewfilingregistry
  • items[].source.titlestringoptional
    max 200 chars
  • items[].confidenceenumoptionaldefault "high"

    How sure the public evidence makes it: high (stated plainly) or low (implied)

    highlow

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_components",
  "arguments": {
    "organization": "acmebuilders.example",
    "items": [
      {
        "clientId": "estimating",
        "label": "In-house estimating team",
        "primitive": "estimating",
        "layer": "people",
        "confidence": "high",
        "source": {
          "url": "https://acmebuilders.example/careers/estimator",
          "kind": "job_post"
        },
        "values": [
          {
            "parameter": "estimating_method",
            "value": "estimating software"
          }
        ]
      }
    ]
  }
}

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
{
  "organization": {
    "domain": "acmebuilders.example",
    "ref": "acme-builders-3f2a9c1d"
  },
  "placed": {
    "given": 1,
    "existing": 0,
    "matched": 0,
    "model": 0,
    "parent": 0,
    "custom": 0,
    "failed": 0
  },
  "results": [
    {
      "clientId": "estimating",
      "label": "In-house estimating team",
      "primitive": "estimating",
      "placedBy": "given",
      "created": true,
      "values": 1
    }
  ]
}

Over REST

The same call without MCP: POST/api/v1/admin/registry/components