Skip to main content
Glama

Lightbringer

Search Lightbringer organisation

search
Read-only

Searches the Lightbringer organisation's documents (inventions, patent applications, and reports and Strategies), meetings and the files in its vault. The "meeting" category filters by title, reference, or indexed transcript/canvas text. Meeting result IDs resolve through fetch to canvas and transcript text. The "vault" category lists vault files (vault_file:), matching every query word against the file name or folder path; file contents are not searched. Omitting query lists the whole vault the user can see. Vault results need a connection that can also write. Returns matching results, each with an ID, title, and summary. A document result also lists its parts: the texts it has accumulated across its lifecycle (innovation description, priority draft, application text revisions), each with an ID that fetch accepts. Supports cursor-based pagination; omitting query lists accessible records in the selected category. Saved own application and patent results can include a structured family overview: accessible members, jurisdictions, recorded statuses, priority provenance and coverage limits. Its refresh assessment compares stored references with saved links without calling a provider or changing records. Document content is indexed asynchronously, so a recently created or edited document can take a short while to become searchable; an empty result reflects the current index and does not by itself establish that a matching document is absent.

Input Schema

NameRequiredDescriptionDefault
limitNo
queryNoFree-text search query
cursorNoOpaque cursor from a previous search response
categoryNo

Output Schema

NameRequiredDescriptionDefault
hasMoreNo
resultsYes
nextCursorNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / category / enum
      Previous value: -[
      -  "application",
      -  "patent",
      -  "innovation",
      -  "competitor_application",
      -  "report",
      -  "strategy",
      -  "meeting"
      -]New value: +[
      +  "application",
      +  "patent",
      +  "innovation",
      +  "competitor_application",
      +  "report",
      +  "strategy",
      +  "meeting",
      +  "vault"
      +]
  2. Changed1 schema field changed
    • changedInput schema / properties / category / enum
      Previous value: -[
      -  "application",
      -  "patent",
      -  "innovation",
      -  "competitor_application",
      -  "report",
      -  "meeting"
      -]New value: +[
      +  "application",
      +  "patent",
      +  "innovation",
      +  "competitor_application",
      +  "report",
      +  "strategy",
      +  "meeting"
      +]
  3. Changed1 schema field changed
    • addedOutput schema / properties / results / items / properties / family
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "applicationCount": {
      +      "description": "Accessible saved application records in this group, including the selected record",
      +      "maximum": 9007199254740991,
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    "coverage": {
      +      "const": "unverified",
      +      "type": "string"
      +    },
      +    "groupingKey": {
      +      "description": "Representative accessible document key for grouping saved records; can change with links or access, not a global family ID",
      +      "type": "string"
      +    },
      +    "members": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "applicationNumber": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "applicationType": {
      +            "type": "string"
      +          },
      +          "documentId": {
      +            "type": "string"
      +          },
      +          "filingDate": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "publicationNumber": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "recordedStatus": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "refNum": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "region": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "relationship": {
      +            "enum": [
      +              "self",
      +              "parent",
      +              "child",
      +              "other_related"
      +            ],
      +            "type": "string"
      +          },
      +          "title": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "documentId",
      +          "title",
      +          "refNum",
      +          "applicationType",
      +          "region",
      +          "applicationNumber",
      +          "publicationNumber",
      +          "filingDate",
      +          "recordedStatus",
      +          "relationship"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "membersTruncated": {
      +      "type": "boolean"
      +    },
      +    "priorityDate": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "priorityDateSource": {
      +      "enum": [
      +        "imported",
      +        "earliest_saved_priority_filing",
      +        "unknown"
      +      ],
      +      "type": "string"
      +    },
      +    "recordedPublicationCount": {
      +      "description": "Distinct publication numbers recorded on these applications, not all publications or inventions",
      +      "maximum": 9007199254740991,
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    "refresh": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "ambiguousReferenceCount": {
      +          "anyOf": [
      +            {
      +              "maximum": 9007199254740991,
      +              "minimum": 0,
      +              "type": "integer"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "assessment": {
      +          "description": "Read-only assessment of this record’s stored references. Missing links have accessible saved matches. Unresolved references need investigation; unknown and no_known_gap do not establish complete coverage.",
      +          "enum": [
      +            "missing_links",
      +            "unresolved_references",
      +            "unknown",
      +            "no_known_gap",
      +            "unsupported"
      +          ],
      +          "type": "string"
      +        },
      +        "eligible": {
      +          "description": "Whether this own record has a usable publication number; does not establish write permission",
      +          "type": "boolean"
      +        },
      +        "lastRefreshedAt": {
      +          "description": "Last recorded explicit provider family refresh; null means the refresh date is unknown",
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "missingLinkCount": {
      +          "anyOf": [
      +            {
      +              "maximum": 9007199254740991,
      +              "minimum": 0,
      +              "type": "integer"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "references": {
      +          "items": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "applicationNumber": {
      +                "type": "string"
      +              },
      +              "direction": {
      +                "enum": [
      +                  "parent",
      +                  "child"
      +                ],
      +                "type": "string"
      +              },
      +              "documentId": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "publicationNumber": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "status": {
      +                "enum": [
      +                  "linked",
      +                  "missing_link",
      +                  "unmatched",
      +                  "ambiguous"
      +                ],
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "direction",
      +              "applicationNumber",
      +              "publicationNumber",
      +              "status",
      +              "documentId"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "referencesAvailable": {
      +          "type": "boolean"
      +        },
      +        "referencesTruncated": {
      +          "type": "boolean"
      +        },
      +        "unmatchedReferenceCount": {
      +          "anyOf": [
      +            {
      +              "maximum": 9007199254740991,
      +              "minimum": 0,
      +              "type": "integer"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        }
      +      },
      +      "required": [
      +        "eligible",
      +        "assessment",
      +        "referencesAvailable",
      +        "lastRefreshedAt",
      +        "missingLinkCount",
      +        "unmatchedReferenceCount",
      +        "ambiguousReferenceCount",
      +        "references",
      +        "referencesTruncated"
      +      ],
      +      "type": "object"
      +    },
      +    "regions": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "scope": {
      +      "const": "accessible_saved_records",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "groupingKey",
      +    "scope",
      +    "applicationCount",
      +    "recordedPublicationCount",
      +    "regions",
      +    "priorityDate",
      +    "priorityDateSource",
      +    "members",
      +    "membersTruncated",
      +    "coverage",
      +    "refresh"
      +  ],
      +  "type": "object"
      +}
  4. Changed1 schema field changed
    • changedInput schema / properties / category / enum
      Previous value: -[
      -  "application",
      -  "patent",
      -  "innovation",
      -  "competitor_application",
      -  "report"
      -]New value: +[
      +  "application",
      +  "patent",
      +  "innovation",
      +  "competitor_application",
      +  "report",
      +  "meeting"
      +]
  5. Changed8 schema fields changed
    • removedOutput schema / properties / nextCursor / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / nextCursor / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / results / items / properties / parts / items / properties / createdAt / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / results / items / properties / parts / items / properties / createdAt / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / results / items / properties / parts / items / properties / revisionId / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / results / items / properties / parts / items / properties / revisionId / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / results / items / properties / parts / items / properties / revisionType / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / results / items / properties / parts / items / properties / revisionType / type
      Added value: +[
      +  "string",
      +  "null"
      +]
  6. Changed2 schema fields changed
    • addedOutput schema / properties / results / items / properties / part
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / results / items / properties / parts
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "createdAt": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "id": {
      +        "type": "string"
      +      },
      +      "label": {
      +        "maxLength": 200,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "part": {
      +        "enum": [
      +          "disclosure",
      +          "priority_draft",
      +          "application_text"
      +        ],
      +        "type": "string"
      +      },
      +      "revisionId": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "revisionType": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      }
      +    },
      +    "required": [
      +      "id",
      +      "part",
      +      "label"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  7. First observed

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Well beyond the readOnly/openWorld/destructive annotations, it discloses that vault results require a connection with write scope, that document indexing is asynchronous so empties are inconclusive, and that the refresh assessment calls no provider and mutates nothing. These are exactly the caveats an agent needs before trusting or retrying a result.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and category behaviour, and most sentences carry distinct, non-redundant information. It is dense and runs long, with a few crammed constructions (the list 'reports and Strategies'; the ambiguous 'Its refresh assessment' referring back to the family overview).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a four-parameter, multi-category search with an output schema present, the description covers category semantics, pagination, permission prerequisites, index staleness, result shape (ID/title/summary, document parts with fetchable IDs) and the family-overview enrichment. Nothing material is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 50% (query and cursor documented), so the description has to carry the enum: it defines the semantics of the 'meeting' and 'vault' categories and notes that omitting query broadens to the whole category, plus that pagination is cursor-based. Only 'limit' is left entirely unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb and resource: searches the organisation's documents, meetings and vault files, and enumerates the document kinds covered. An agent can tell this is an internal-corpus search, though it never names its closest siblings (search_public_patents, list_innovations) to sharpen the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains per-category behaviour (how the 'meeting' and 'vault' categories match, that omitting query lists everything) and hints that meeting IDs resolve via fetch, which is useful routing context. It never states when to prefer this over list_* siblings or search_public_patents, so the choice is left implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.