Skip to main content
Glama

Ingest policy text

ingest_text

Add policy/reference text to a domain's knowledge base.

Instructions

Add policy/reference text to a domain's knowledge base.

The text is chunked and embedded; explanations for future decisions in this domain will cite it. Creating a new domain claims it for your account (plan limits apply). Ingesting into a built-in demo domain gives your account its own copy of that demo (it counts as one of your domains); the shared demo others see is unchanged. On team plans, only the domain admin (the member who created the domain, or the subscription owner) can add documents.

Documents can be dated. A decision only cites documents in force on its date, so a replaced policy is never quoted for a new decision. To publish a new version, ingest it under a new source with supersedes naming the old one: the old document stops applying on the new one's effective_from (today if not given), and the new one starts that day. A document can be superseded only once; to replace a successor, supersede the successor.

Args: domain: Domain to ingest into (existing or new). text: The policy or reference text. source: Optional source name shown in the document list. effective_from: First day this document applies, as YYYY-MM-DD (default: always). effective_until: First day it no longer applies, as YYYY-MM-DD (default: no end). supersedes: Source name of the document this one replaces.

Input Schema

NameRequiredDescriptionDefault
textYes
domainYes
sourceNo
supersedesNo
effective_fromNo
effective_untilNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv0.11.0
    • addedInput schema / properties / effective_from
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Effective From"
      +}
    • addedInput schema / properties / effective_until
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Effective Until"
      +}
    • addedInput schema / properties / supersedes
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Supersedes"
      +}
  2. First observedv0.5.3

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only declare non-read-only and non-destructive; the description adds substantial context beyond them: creating a domain claims it under plan limits, ingesting into a demo domain creates a private copy counted against your domain quota, team-plan admin restrictions, and the citation semantics where a decision only sees documents in force on its date. It also discloses the one-supersede-only constraint and the effective_from defaulting to today on replacement.

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?

The key side effects (claiming a domain, admin restriction) and the versioning rule are front-loaded in the body before the Args listing, and each sentence carries real information. It is on the long side, and the args block partly restates parameter names, but no sentence is truly wasted.

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 six-parameter mutation with no schema descriptions, the definition covers side effects, permissions, quota implications, versioning constraints, and date-based applicability. Return values need not be described because an output schema exists.

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

Parameters5/5

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

Schema coverage is 0%, so the description carries the full burden and does so: every argument is explained with meaning and defaults, including the YYYY-MM-DD formats for effective_from/effective_until, their default behaviors, and the semantics of supersedes (matching a source name, stopping the old document on the new one's effective_from).

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

Purpose5/5

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

States a specific verb and resource ('Add policy/reference text to a domain's knowledge base') and immediately distinguishes itself from rule-writing siblings by explaining that text is chunked and embedded for citation by future decisions. An agent can tell this apart from put_rules or import_policy_rules without opening any schema.

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

Usage Guidelines4/5

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

Gives clear context: use for policy/reference prose that decisions should cite, plus the versioning workflow (ingest under a new source with supersedes) and the permission precondition (domain admin or subscription owner on team plans). It does not explicitly say when to prefer this over put_rules or import_policy_rules, so it stops short of full alternative routing.

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