mesh.status
Whether the mesh runs in this process and why not when it does not; this node's public identity; every discovery provider with its state and counters; the registry's tallies; and the refused datagrams by reason. The one status every surface shows.
Whether the mesh runs in this process and why not when it does not; this node's public identity; every discovery provider with its state and counters; the registry's tallies; and the refused datagrams by reason. The one status every surface shows.
- query
- experimental
- module mesh
- #mesh
- #coordination
- #discovery
Exposure
Where this one definition is reachable. Absence is explicit: a surface not listed does not carry it.
| surface | as |
|---|---|
| MCP | tool majordomus_mesh resource majordomus://mesh |
| HTTP | GET /api/v1/mesh operationId mesh.status |
| command line | — |
Schemas
The canonical input and output, from the Rust types; the MCP tool schema and the OpenAPI parameters and responses are derived from these.
input · Empty
No properties: the capability takes no input.
JSON Schema
{
"additionalProperties": false,
"description": "No input.",
"title": "Empty",
"type": "object"
}output · MeshStatus
| property | type | required | description |
|---|---|---|---|
| active | boolean | yes | Whether the mesh is running in this process. |
| identity | one of 2 | no | This node, when the mesh has an identity. |
| providers | array | yes | Every provider, canonical order (by id). |
| reason | string | null | no | Why not, when it is not: no declaration, disabled, no identity, stopped. |
| refusals | reference | yes | Refused datagrams, by reason. |
| started_at | string | null | no | When the mesh started, RFC 3339. |
| tallies | reference | yes | The registry's tallies. |
| trust_policy | string | null | no | The trust policy in force. |
JSON Schema
{
"$defs": {
"InstanceId": {
"description": "One run of a node: 16 hex characters of OS entropy, new at every process start. A\nrestart keeps the node id and changes this, which is how a reader tells \"the same\nnode came back\" from \"the same process is still there\".",
"type": "string"
},
"MeshProviderState": {
"description": "The provider's health, as every surface reports it.",
"oneOf": [
{
"const": "running",
"description": "Threads up, socket bound (where the provider has one).",
"type": "string"
},
{
"const": "failed",
"description": "The provider could not start or died; `ProviderStatus::detail` says why. One\nprovider failing never stops another — failure isolation is the contract.",
"type": "string"
},
{
"const": "stopped",
"description": "Stopped by the manager.",
"type": "string"
}
]
},
"NodeId": {
"description": "The stable identity of a node: 32 hex characters of the SHA-256 of its Ed25519 public\nkey. Derived, never chosen: two nodes with one id hold one key.",
"type": "string"
},
"ProviderStatus": {
"description": "One provider's status: state, why, and its counters.",
"properties": {
"detail": {
"description": "Why, when `Failed`; what it watches, when `Running`.",
"type": [
"string",
"null"
]
},
"id": {
"description": "The provider id: `udp_multicast`, `udp_broadcast`, `rendezvous`, `synthetic`.",
"type": "string"
},
"received": {
"description": "Datagrams heard and handed to the manager.",
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"sent": {
"description": "Advertisements transmitted.",
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"state": {
"$ref": "#/$defs/MeshProviderState",
"description": "The state."
}
},
"required": [
"id",
"state",
"sent",
"received"
],
"type": "object"
},
"PublicIdentity": {
"description": "What everyone may know about this node: the id, the public key, a display name and\nthis run's instance. Everything an advertisement carries; nothing that signs.",
"properties": {
"display_name": {
"description": "A human name for the node, from the identity file; defaults to the first eight\ncharacters of the node id. Presentation only — never used for trust.",
"type": "string"
},
"instance_id": {
"$ref": "#/$defs/InstanceId",
"description": "This run of the node."
},
"node_id": {
"$ref": "#/$defs/NodeId",
"description": "The node id: a digest of the public key."
},
"public_key": {
"description": "The Ed25519 public key, 64 hex characters. Whoever holds the matching secret is\nthis node; there is no other proof.",
"type": "string"
}
},
"required": [
"node_id",
"public_key",
"display_name",
"instance_id"
],
"type": "object"
},
"Refusals": {
"description": "Refused datagrams, by reason. The diagnosis of a hostile or misconfigured network:\na mesh that hears garbage says so, with numbers, instead of being quietly empty.",
"properties": {
"bounds": {
"description": "Out-of-bounds fields.",
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"malformed": {
"description": "Not an envelope.",
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"overflow": {
"default": 0,
"description": "Observations dropped because the queue to the registry was full: a flood, counted\nrather than held (I2133).",
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"oversized": {
"description": "Longer than the datagram bound.",
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"self_heard": {
"description": "This node's own datagrams, heard back and skipped.",
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"signature": {
"description": "A signature that does not verify.",
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"stale": {
"description": "Outside the clock-skew window.",
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"version": {
"description": "A protocol version this executable does not read.",
"format": "uint64",
"minimum": 0,
"type": "integer"
}
},
"required": [
"oversized",
"malformed",
"version",
"bounds",
"stale",
"signature",
"self_heard"
],
"type": "object"
},
"Tallies": {
"description": "The registry's tallies, for status and health.",
"properties": {
"accepted": {
"description": "Observations accepted since start.",
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"evicted": {
"description": "Records evicted for space since start.",
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"expired": {
"description": "Records expired out since start.",
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"nodes": {
"description": "Records held.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"present": {
"description": "Of which present.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"replayed": {
"description": "Replayed datagrams dropped since start.",
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"trusted": {
"description": "Of which trusted.",
"format": "uint",
"minimum": 0,
"type": "integer"
}
},
"required": [
"nodes",
"trusted",
"present",
"accepted",
"replayed",
"expired",
"evicted"
],
"type": "object"
}
},
"description": "The whole mesh, as every surface reports it.",
"properties": {
"active": {
"description": "Whether the mesh is running in this process.",
"type": "boolean"
},
"identity": {
"anyOf": [
{
"$ref": "#/$defs/PublicIdentity"
},
{
"type": "null"
}
],
"description": "This node, when the mesh has an identity."
},
"providers": {
"description": "Every provider, canonical order (by id).",
"items": {
"$ref": "#/$defs/ProviderStatus"
},
"type": "array"
},
"reason": {
"description": "Why not, when it is not: no declaration, disabled, no identity, stopped.",
"type": [
"string",
"null"
]
},
"refusals": {
"$ref": "#/$defs/Refusals",
"description": "Refused datagrams, by reason."
},
"started_at": {
"description": "When the mesh started, RFC 3339.",
"type": [
"string",
"null"
]
},
"tallies": {
"$ref": "#/$defs/Tallies",
"description": "The registry's tallies."
},
"trust_policy": {
"description": "The trust policy in force.",
"type": [
"string",
"null"
]
}
},
"required": [
"active",
"providers",
"tallies",
"refusals"
],
"title": "MeshStatus",
"type": "object"
}Policies
- benchmark
- required — a target on every transport the exposure declares; the cases are the input type's
- cache
- disabled — every call runs the handler
Benchmark targets
Derived from the registry for this repository: one requirement per transport, and the cases the input type provides. The whole matrix is on the benchmarks page.