Skip to main content
Glama

Lightbringer

Read Lightbringer document or meeting

fetch
Read-only

For Strategies, include_asset: true adds asset.type, asset.id, asset.revision and asset.data with the complete ordered sections for revision-checked updates. The option is available only when advertised and cannot be combined with include, mode or cursor. Returns the full content of a single document — invention, patent application, strategy, or report — or a meeting or vault file identified by its search result ID. A vault file returns its vault path, type, size and a download link valid for about an hour, plus the content of a text or code file up to 256 KB. A meeting returns a Markdown snapshot of its canvas text notes and all stored transcript sessions, with speakers, timestamps, and session status. A document has several texts across its lifecycle; a bare document ID returns the most advanced one (the newest application text, else the priority draft, else the innovation description), and the response lists every part with its own ID, such as document:#priority_draft or document:#application_text:. Pass a part ID to read that text instead. Saved own records can also return a structured family overview, including the current saved links and a per-record refresh assessment for readback after updates. Focused questions support include: ["claims"], ["description"], ["abstract"], or a combination. For a known document ID, mode: "outline" discovers native section availability without full text. Filtered content is returned in bounded pages with source/revision and content_version attribution. retrieval.has_more: true means the selected sections are incomplete. The next page is available with cursor: retrieval.next_cursor and the same id and include. Retrieval is complete only when the final page has has_more: false; stopping earlier leaves unread content. Stale cursors require restarting. Blocks identify oversized continuations with continued/continues; fragments with the same block_id concatenate directly. Missing/unknown sections and import warnings describe stored content, separately from page completeness. This reads stored content without importing, repairing, or contacting a patent provider. Omitting all options returns legacy full content.

Input Schema

NameRequiredDescriptionDefault
idYesThe search result ID, such as meeting:<id> or vault_file:<id>, or a document identifier
modeNooutline discovers section availability; content requires include
cursorNoOpaque next_cursor for the same ID, include and content version; requires include
includeNoNative sections to retrieve; omission preserves legacy full fetch unless mode is outline
include_assetNoOpt in to validated Strategy asset state; defaults to false. Incompatible with include, mode or cursor

Output Schema

NameRequiredDescriptionDefault
idYes
urlYes
partNo
textYes
assetNo
partsNo
titleYes
familyNo
metadataNo
retrievalNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / id / description
      Previous value: -"The search result ID, such as meeting:<id>, or a document identifier"New value: +"The search result ID, such as meeting:<id> or vault_file:<id>, or a document identifier"
  2. Changed2 schema fields changed
    • addedInput schema / properties / include_asset
      Added value: +{
      +  "description": "Opt in to validated Strategy asset state; defaults to false. Incompatible with include, mode or cursor",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / asset
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "data": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "sections": {
      +          "items": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "content": {
      +                "type": "string"
      +              },
      +              "id": {
      +                "maxLength": 128,
      +                "pattern": "^[a-zA-Z0-9_-]+$",
      +                "type": "string"
      +              },
      +              "title": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "id",
      +              "title",
      +              "content"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "title": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "title",
      +        "sections"
      +      ],
      +      "type": "object"
      +    },
      +    "id": {
      +      "maxLength": 71,
      +      "pattern": "^report:[a-zA-Z0-9_-]+$",
      +      "type": "string"
      +    },
      +    "revision": {
      +      "maxLength": 128,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "status": {
      +      "anyOf": [
      +        {
      +          "enum": [
      +            "DRAFT",
      +            "PUBLISHED"
      +          ],
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "type": {
      +      "const": "strategy",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "type",
      +    "id",
      +    "revision",
      +    "data"
      +  ],
      +  "type": "object"
      +}
  3. Changed4 schema fields changed
    • addedInput schema / properties / cursor
      Added value: +{
      +  "description": "Opaque next_cursor for the same ID, include and content version; requires include",
      +  "maxLength": 2048,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedInput schema / properties / include
      Added value: +{
      +  "description": "Native sections to retrieve; omission preserves legacy full fetch unless mode is outline",
      +  "items": {
      +    "enum": [
      +      "claims",
      +      "description",
      +      "abstract"
      +    ],
      +    "type": "string"
      +  },
      +  "maxItems": 3,
      +  "minItems": 1,
      +  "type": "array"
      +}
    • addedInput schema / properties / mode
      Added value: +{
      +  "description": "outline discovers section availability; content requires include",
      +  "enum": [
      +    "outline",
      +    "content"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / retrieval
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "blocks": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "block_id": {
      +            "type": "string"
      +          },
      +          "continued": {
      +            "type": "boolean"
      +          },
      +          "continues": {
      +            "type": "boolean"
      +          },
      +          "section": {
      +            "enum": [
      +              "claims",
      +              "description",
      +              "abstract"
      +            ],
      +            "type": "string"
      +          },
      +          "text": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "section",
      +          "block_id",
      +          "text",
      +          "continued",
      +          "continues"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "content_version": {
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "has_more": {
      +      "type": "boolean"
      +    },
      +    "import_status": {
      +      "enum": [
      +        "complete",
      +        "partial",
      +        "incomplete",
      +        "unknown",
      +        "not_applicable"
      +      ],
      +      "type": "string"
      +    },
      +    "included": {
      +      "items": {
      +        "enum": [
      +          "claims",
      +          "description",
      +          "abstract"
      +        ],
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "missing": {
      +      "items": {
      +        "enum": [
      +          "claims",
      +          "description",
      +          "abstract"
      +        ],
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "mode": {
      +      "enum": [
      +        "content",
      +        "outline"
      +      ],
      +      "type": "string"
      +    },
      +    "next_cursor": {
      +      "maxLength": 2048,
      +      "type": "string"
      +    },
      +    "sections": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "block_count": {
      +            "maximum": 9007199254740991,
      +            "minimum": 0,
      +            "type": "integer"
      +          },
      +          "section": {
      +            "enum": [
      +              "claims",
      +              "description",
      +              "abstract"
      +            ],
      +            "type": "string"
      +          },
      +          "status": {
      +            "enum": [
      +              "available",
      +              "empty",
      +              "unavailable",
      +              "unknown"
      +            ],
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "section",
      +          "status"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "source": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "document_id": {
      +          "type": "string"
      +        },
      +        "part": {
      +          "type": "string"
      +        },
      +        "revision_id": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "document_id",
      +        "part"
      +      ],
      +      "type": "object"
      +    },
      +    "unknown": {
      +      "items": {
      +        "enum": [
      +          "claims",
      +          "description",
      +          "abstract"
      +        ],
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "warnings": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "mode",
      +    "included",
      +    "missing",
      +    "unknown",
      +    "sections",
      +    "content_version",
      +    "source",
      +    "blocks",
      +    "has_more",
      +    "import_status",
      +    "warnings"
      +  ],
      +  "type": "object"
      +}
  4. Changed1 schema field changed
    • addedOutput schema / 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"
      +}
  5. Changed1 schema field changed
    • changedInput schema / properties / id / description
      Previous value: -"The document identifier"New value: +"The search result ID, such as meeting:<id>, or a document identifier"
  6. Changed6 schema fields changed
    • removedOutput schema / properties / parts / items / properties / createdAt / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / parts / items / properties / createdAt / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / parts / items / properties / revisionId / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / parts / items / properties / revisionId / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / parts / items / properties / revisionType / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / parts / items / properties / revisionType / type
      Added value: +[
      +  "string",
      +  "null"
      +]
  7. Changed2 schema fields changed
    • addedOutput schema / properties / part
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / 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"
      +}
  8. First observed

TDQS

A3.8/5.0
Behavior5/5

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

Annotations only cover the safety profile (readOnly, non-destructive, closed-world); the description adds substantial behavior beyond that: vault download links expire in about an hour, text/code content caps at 256 KB, stale cursors require restarting, and 'This reads stored content without importing, repairing, or contacting a patent provider.' It also explains that a bare document ID resolves to the most advanced text and that missing/unknown sections are distinct from page completeness — exactly the side effects an agent needs to know.

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

Conciseness2/5

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

It opens with an edge-case option (`include_asset`) instead of the tool's purpose, which only appears mid-paragraph. The rest is a single dense block covering pagination, cursors, blocks, part IDs, warnings, and legacy behavior with no structural separation, so the critical read semantics compete with incidental detail for attention.

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 five-parameter read tool with an output schema, the description covers everything an agent needs to invoke it correctly: id forms, mode, include/cursor interaction, pagination completion, and the no-side-effects guarantee. Some return-value detail duplicates what the output schema probably encodes, but nothing essential 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 100%, so baseline is 3, but the description earns more by explaining semantics the schema only gestures at: part ID syntax (`document:<id>#priority_draft`, `document:<id>#application_text:<revisionId>`), that `include_asset` cannot combine with `include`/`mode`/`cursor`, and that omitting all options yields legacy full content. It adds meaning rather than restating types.

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 second sentence states a specific verb and full resource scope: 'Returns the full content of a single document — invention, patent application, strategy, or report — or a meeting or vault file identified by its search result ID.' That is enough to separate it from `search` and `list_*`. It does not, however, distinguish it from close siblings like `get_innovation`, `get_strategy`, or `get_review`, which plausibly also read a single record.

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?

There is real how-to guidance: 'Pass a part ID to read that text instead' and 'For a known document ID, mode: "outline" discovers native section availability without full text.' But this is parameter-level usage, not tool selection — nothing says when to call `fetch` versus `get_innovation`, `get_strategy`, or `search`, and no exclusions between siblings are given.

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.