resolve
Before adding something, find out whether it already exists. Give an organization's name and domain, a primitive's label and description (and its industry), or an industry's name or description; get the top candidates with a confidence 0-1, `same: true` at 0.85 or more (attach to that id instead of creating a duplicate), the stable id, registry ref, industry or primitive key and taxonomy path. Between 0.6 and 0.85, look before deciding. Read-only: what you then add still goes through review.
Parameters
- typeenumrequiredorganizationprimitiveindustry
- namestringoptional
Organization name, primitive label or industry name
max 120 chars - domainstringoptional
Organization website or domain, e.g. acme.com
max 200 chars - descriptionstringoptional
What it is or does, in a sentence
max 400 chars - industrystringoptional
Industry key or name to look within (primitives, organizations)
max 80 chars - limitnumberoptional≥ 1≤ 20
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": "resolve",
"arguments": {
"type": "organization",
"name": "Stripe Inc",
"domain": "https://www.stripe.com"
}
}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: ….
{
"best": {
"kind": "company",
"id": "021b990f-50f0-4fad-af2f-917485c4260a",
"name": "Stripe",
"url": "https://systematlas.org/registry/stripe-021b990f",
"ref": "stripe-021b990f",
"path": [
"Software & SaaS",
"B2B SaaS"
],
"domain": "stripe.com",
"confidence": 0.98,
"same": true,
"signals": {
"name": 0.64,
"meaning": 0.59,
"domain": true
},
"trust": "confirmed"
},
"candidates": [
"the best candidate first, then up to `limit` more, e.g. Designstripe at confidence 0.25"
]
}Over REST
The same call without MCP: GET/api/v1/resolve