product.providers
Every provider the tool has an adapter for — one per template the distribution ships — with the bootstraps this repository's policy renders through it, the client configuration it carries for the shared MCP server, and the hooks the policy wires. The set is the templates; nothing here is a list of vendors.
Every provider the tool has an adapter for — one per template the distribution ships — with the bootstraps this repository's policy renders through it, the client configuration it carries for the shared MCP server, and the hooks the policy wires. The set is the templates; nothing here is a list of vendors.
- query
- behaviorally_verified
- module product
- #product
- #providers
Exposure
Where this one definition is reachable. Absence is explicit: a surface not listed does not carry it.
| surface | as |
|---|---|
| MCP | tool majordomus_providers resource majordomus://product/providers |
| HTTP | GET /api/v1/product/providers operationId product.providers |
| command line | majordomus product providers |
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 input.
No properties: the capability takes no input.
JSON Schema
{
"additionalProperties": false,
"description": "No input.",
"title": "Empty",
"type": "object"
}output · ProviderList
Every provider.
| property | type | required | description |
|---|---|---|---|
| count | integer | yes | How many. |
| providers | array | yes | Each, in id order. |
JSON Schema
{
"$defs": {
"ProductProvider": {
"description": "One provider the tool has an adapter for, discovered from the templates the distribution\nships and decorated with what this repository does with it.",
"properties": {
"bootstraps": {
"description": "The bootstraps this repository's policy renders through it: target, mode, whether\nevery worker loads it.",
"items": {
"$ref": "#/$defs/ProviderBootstrap"
},
"type": "array"
},
"client_config": {
"description": "The client configuration at the repository root that starts the shared MCP server\nfor this provider, when the repository carries it.",
"type": [
"string",
"null"
]
},
"hooks": {
"description": "The enforcement entries of the policy wired by this provider's hooks.",
"items": {
"type": "string"
},
"type": "array"
},
"id": {
"description": "The provider id: the template's file stem.",
"type": "string"
},
"scratch_roots": {
"default": [],
"description": "The scratch roots this provider creates checkouts of its own under, as declared:\nthe worktree topology reports a checkout there as a session's scratch checkout and\nnever moves it (ADR 0024).",
"items": {
"type": "string"
},
"type": "array"
},
"title": {
"description": "The name a person knows it by.",
"type": "string"
}
},
"required": [
"id",
"title",
"bootstraps",
"hooks"
],
"type": "object"
},
"ProviderBootstrap": {
"description": "One bootstrap a provider renders.",
"properties": {
"always_loaded": {
"description": "Loaded by every worker without asking.",
"type": "boolean"
},
"mode": {
"description": "`file` or `region`.",
"type": "string"
},
"target": {
"description": "The target file, repository-relative.",
"type": "string"
}
},
"required": [
"target",
"mode",
"always_loaded"
],
"type": "object"
}
},
"description": "Every provider.",
"properties": {
"count": {
"description": "How many.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"providers": {
"description": "Each, in id order.",
"items": {
"$ref": "#/$defs/ProductProvider"
},
"type": "array"
}
},
"required": [
"count",
"providers"
],
"title": "ProviderList",
"type": "object"
}Policies
- benchmark
- required — a target on every transport the exposure declares; the cases are the input type's
- cache
- process — up to 2 entries in the process, scoped by the registry fingerprint
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.