Isto Intents registry
The public list of intent holders, built from their descriptors and checked automatically (registry chapter §3, v0.2 draft).
$id: https://istointents.org/schemas/0.2/registry.schema.json
Fields#
| field | type | required | description |
|---|
specVersion | "0.2" | yes | |
type | "registry" | yes | |
id | string (uri, pattern ^https://) | yes | |
created | common › timestamp | yes | |
updated | common › timestamp | yes | |
terms | string (uri, pattern ^https://) | yes | |
licence | string | yes | |
entries | array of entry | yes | |
Definitions#
| name | type | description |
|---|
entry | object | one listed host |
listedServer | holder-descriptor › serverFields | the server as declared in the descriptor, plus what the registry observed |
observed | object | the registry's own statement; everything else in an entry is declared by its operator |
entry
listedServer
| field | type | required | description |
|---|
observed | observed | yes | |
observed
| field | type | required | description |
|---|
status | "active" | "unreachable" | "non-conformant" | "inactive" | "deprecated" | yes | |
checkedAt | common › timestamp | yes | |
lastOkAt | common › timestamp | | |
protocolVersion | string | | MCP protocol version the server answered with |
serverName | string | | serverInfo.name from initialize |
tools | array of string | | the intent_ tools the server listed |
mcpRegistry | "match" | "mismatch" | "absent" | | |
problem | string | | why the last check failed, if it did |
Examples#
Full schema#
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://istointents.org/schemas/0.2/registry.schema.json",
"title": "Isto Intents registry",
"description": "The public list of intent holders, built from their descriptors and checked automatically (registry chapter §3, v0.2 draft).",
"type": "object",
"required": [
"specVersion",
"type",
"id",
"created",
"updated",
"terms",
"licence",
"entries"
],
"properties": {
"specVersion": {
"const": "0.2"
},
"type": {
"const": "registry"
},
"id": {
"type": "string",
"format": "uri",
"pattern": "^https://"
},
"created": {
"$ref": "https://istointents.org/schemas/0.1/common.schema.json#/$defs/timestamp"
},
"updated": {
"$ref": "https://istointents.org/schemas/0.1/common.schema.json#/$defs/timestamp"
},
"terms": {
"type": "string",
"format": "uri",
"pattern": "^https://"
},
"licence": {
"type": "string",
"minLength": 3
},
"entries": {
"type": "array",
"items": {
"$ref": "#/$defs/entry"
}
}
},
"$defs": {
"entry": {
"type": "object",
"description": "one listed host",
"required": [
"id",
"descriptor",
"operator",
"servers",
"listedAt",
"descriptorCheckedAt"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)+$",
"description": "the host"
},
"descriptor": {
"type": "string",
"format": "uri",
"pattern": "^https://[^/]+/\\.well-known/isto-intents\\.json$"
},
"operator": {
"$ref": "holder-descriptor.schema.json#/$defs/operator"
},
"servers": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/$defs/listedServer"
}
},
"listedAt": {
"$ref": "https://istointents.org/schemas/0.1/common.schema.json#/$defs/timestamp"
},
"descriptorCheckedAt": {
"$ref": "https://istointents.org/schemas/0.1/common.schema.json#/$defs/timestamp"
}
},
"additionalProperties": false
},
"listedServer": {
"description": "the server as declared in the descriptor, plus what the registry observed",
"$ref": "holder-descriptor.schema.json#/$defs/serverFields",
"required": [
"observed"
],
"properties": {
"observed": {
"$ref": "#/$defs/observed"
}
},
"unevaluatedProperties": false
},
"observed": {
"type": "object",
"description": "the registry's own statement; everything else in an entry is declared by its operator",
"required": [
"status",
"checkedAt"
],
"properties": {
"status": {
"enum": [
"active",
"unreachable",
"non-conformant",
"inactive",
"deprecated"
]
},
"checkedAt": {
"$ref": "https://istointents.org/schemas/0.1/common.schema.json#/$defs/timestamp"
},
"lastOkAt": {
"$ref": "https://istointents.org/schemas/0.1/common.schema.json#/$defs/timestamp"
},
"protocolVersion": {
"type": "string",
"description": "MCP protocol version the server answered with",
"maxLength": 40
},
"serverName": {
"type": "string",
"description": "serverInfo.name from initialize",
"maxLength": 120
},
"tools": {
"type": "array",
"items": {
"type": "string",
"maxLength": 64
},
"description": "the intent_ tools the server listed",
"maxItems": 20
},
"mcpRegistry": {
"enum": [
"match",
"mismatch",
"absent"
]
},
"problem": {
"type": "string",
"maxLength": 300,
"description": "why the last check failed, if it did"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}