Skip to main content
Glama

Lightbringer

Search

search
Read-only

Searches the Lightbringer organisation's documents (inventions, patent applications, and reports) and meetings. The "meeting" category filters by title, reference, or indexed transcript/canvas text. Meeting result IDs resolve through fetch to canvas and transcript text. 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

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

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
hasMoreNo
resultsYes
nextCursorNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. 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"
      +}
  2. 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"
      +]
  3. 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"
      +]
  4. 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"
      +}
  5. First observed

TDQS

A3.8/5.0
Behavior5/5

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

Annotations already cover the read-only, non-destructive profile, and the description adds substantial behavioural context beyond them: asynchronous indexing delay, empty-result interpretation, cursor-based pagination, query omission behaviour, and that refresh assessment compares stored references without calling a provider or changing records. This is unusually rich disclosure for a read-only search tool.

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

Conciseness3/5

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

The purpose and category scope are front-loaded, but the description is a dense single paragraph with many sentences devoted to return-value details such as IDs, titles, summaries, parts, family overviews, and refresh assessment. Since an output schema exists, some of that space is less necessary, though the edge-case notes about async indexing and empty results are valuable.

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

Completeness4/5

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

For a search tool with four optional parameters, an output schema, and safety annotations, the description covers the important operational context: categories, query omission, pagination, follow-up fetch resolution, async indexing delay, and refresh-assessment behaviour. The main gap is that the limit parameter and some category distinctions are left to the schema.

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

Parameters3/5

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

Schema description coverage is 50%, and the description adds meaning for query omission, category filtering (especially meeting transcript/canvas text), and cursor pagination. It does not explain the limit parameter or fully differentiate the enum values application, patent, innovation, competitor_application, report, and meeting, so it only partially compensates for the schema gap.

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?

The description states a specific verb and resource: searches the Lightbringer organisation's documents and meetings, with document categories enumerated. It does not explicitly name sibling alternatives such as search_public_patents or list_innovations, but the organisational scope is clear enough to distinguish it from a public patent search.

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?

Usage is mostly implied. It notes that omitting query lists accessible records in the selected category and that cursor pagination is supported, and it tells the agent that meeting result IDs resolve through fetch. However, it does not explicitly say when to choose this tool over alternatives like list_innovations, get_innovation, or search_public_patents.

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.