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