The model catalogue
Every declared vendor and model, optionally narrowed by vendor, capability word, or one id or alias. Vendors carry whether their named credential variable is set — presence only, never a value. The order is the declaration's, which is also routing's preference order; the catalogue's own findings (a duplicate alias, an undeclared vendor) ride along.
- query
- experimental
- benchmark required
- cache process (max_entries=4, ttl_seconds=5)
- MCP tool majordomus_models
- MCP resource {"name": "models", "uri": "majordomus://models"}
- $ models list
Query parameters
| name | type | required | description | examples |
|---|---|---|---|---|
| vendor | string | no | Only this vendor. | narrowed: "anthropic" |
| capability | string | no | Only models declaring this capability word. | narrowed: "text" |
| id | string | no | One model, by canonical id or alias. | narrowed: "claude-opus-5" |
Try it
The port is whatever the server logged; 8741 is the one it asks for first. The values are the operation's first example.
curl -s "http://127.0.0.1:8741/api/v1/models?vendor=anthropic&capability=text&id=claude-opus-5"
Tested by apps/majordomus-cli/tests/http_serve.rs, which replays the route with these values against a server on a real socket.
Responses
| status | body | meaning |
|---|---|---|
| 200 | ModelsReport | The model catalogue: the result. |
| 400 | ErrorBody | invalid_input: The input does not fit the schema: a parameter of the wrong type, an unknown one, or a value the capability rejects. |
| 404 | ErrorBody | not_found: The input names something the repository does not hold. |
| 500 | ErrorBody | internal: The capability failed for a reason of its own; the message names it. |
| default | ErrorBody | Any other failure the transport reports: 405 method_not_allowed for another method on this path, 400 invalid_input for a body that is not a JSON object. |