Skip to content

objects.search

Case-insensitive substring search over identities, titles, descriptions and content.

Case-insensitive substring search over identities, titles, descriptions and content.

Exposure

Where this one definition is reachable. Absence is explicit: a surface not listed does not carry it.

surfaceas
MCPtool majordomus_search
HTTPGET /api/v1/search operationId objects.search
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 · SearchInput

The input of objects.search: what to look for, where, how much.
propertytyperequireddescription
kind string | null no Only objects of this kind; a kind the repository does not have is an invalid input. default null
limit integer | null no At most this many hits (default 20, at most 200). default null
query string yes Case-insensitive substring, matched against identity, title, description and content.
JSON Schema
{
  "additionalProperties": false,
  "description": "The input of `objects.search`: what to look for, where, how much.",
  "properties": {
    "kind": {
      "default": null,
      "description": "Only objects of this kind; a kind the repository does not have is an invalid input.",
      "type": [
        "string",
        "null"
      ]
    },
    "limit": {
      "default": null,
      "description": "At most this many hits (default 20, at most 200).",
      "format": "uint64",
      "maximum": 200,
      "minimum": 1,
      "type": [
        "integer",
        "null"
      ]
    },
    "query": {
      "description": "Case-insensitive substring, matched against identity, title, description and content.",
      "type": "string"
    }
  },
  "required": [
    "query"
  ],
  "title": "SearchInput",
  "type": "object"
}

output · SearchResult

The answer of objects.search.
propertytyperequireddescription
count integer yes How many hits were returned.
hits array yes The hits, in URI order, at most limit of them.
limit integer yes The limit that applied.
query string yes The query as given.
JSON Schema
{
  "$defs": {
    "SearchHit": {
      "description": "One search hit: the object, summarised, and the first matching line of its content.",
      "properties": {
        "description": {
          "description": "The one-line description, when the kind holds one.",
          "type": [
            "string",
            "null"
          ]
        },
        "id": {
          "description": "The capability id, `<kind>.<identity>`.",
          "type": "string"
        },
        "identity": {
          "description": "The identity within the kind.",
          "type": "string"
        },
        "kind": {
          "description": "The kind the object was read as.",
          "type": "string"
        },
        "path": {
          "description": "Repository-relative source path.",
          "type": "string"
        },
        "snippet": {
          "description": "The first line of content that matched, when one did.",
          "type": [
            "string",
            "null"
          ]
        },
        "title": {
          "description": "The title, when the kind's title rule found one.",
          "type": [
            "string",
            "null"
          ]
        },
        "uri": {
          "description": "`majordomus://<kind>/<identity>`.",
          "type": "string"
        }
      },
      "required": [
        "uri",
        "id",
        "kind",
        "identity",
        "path"
      ],
      "type": "object"
    }
  },
  "description": "The answer of `objects.search`.",
  "properties": {
    "count": {
      "description": "How many hits were returned.",
      "format": "uint",
      "minimum": 0,
      "type": "integer"
    },
    "hits": {
      "description": "The hits, in URI order, at most `limit` of them.",
      "items": {
        "$ref": "#/$defs/SearchHit"
      },
      "type": "array"
    },
    "limit": {
      "description": "The limit that applied.",
      "format": "uint64",
      "minimum": 0,
      "type": "integer"
    },
    "query": {
      "description": "The query as given.",
      "type": "string"
    }
  },
  "required": [
    "query",
    "count",
    "limit",
    "hits"
  ],
  "title": "SearchResult",
  "type": "object"
}

Policies

benchmark
required — a target on every transport the exposure declares; the cases are the input type's
cache
process — up to 64 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.

transportstatecasestargets
directcovered2common-word cold+warm
no-hit cold+warm
mcpcovered2common-word cold+warm
no-hit cold+warm
httpcovered2common-word cold+warm
no-hit cold+warm

Claims implemented beside it

Attached by the file that implements each claim; every one links to its page with the implementation and the test that proves it.

The moments this answers

Searches the titles and descriptions of every page this site publishes.