Skip to main content
Glama

List Tipiṭaka Structure

list_structure
Read-onlyIdempotent

Show the structure of all three pitakas with coverage statistics.

💡 Use this tool when:

  • The user asks for an overview of the Tipiṭaka (what's in it / which collections).

  • You need to check coverage before promising a search will find something — segment_count > 0 is the active-loaded signal.

  • Verifying scope when compiling an artifact.

📊 Current state (v1.1+, at parity with SuttaCentral bilara-data):

  • Sutta Piṭaka complete: DN 37, MN 155, SN 1,829, AN 1,419, KN 2,351 sections (~284,702 segments) — Pāli + bilara EN (Sujato for DN/MN/SN/AN and most of KN; a few KN books have other bilara translators)

  • Vinaya Piṭaka complete: Bhikkhu Vibhaṅga 222, Bhikkhunī Vibhaṅga 127, Khandhaka 22, Parivāra 51 + Pātimokkha 2 (~71,557 segments) — Pāli + Brahmali EN

  • Abhidhamma Piṭaka complete: 7 books (ds, vb, dt, pp, kv, ya, patthana) ~88,414 segments — Pāli only (bilara has no English for any Abhidhamma book)

  • Total ~444,673 segments in the DB

⚠️ Known quirks:

  • The schema carries duplicate legacy + SC-modern codes side by side:

    • Vinaya: vin-v/vin-m/vin-c/vin-p (legacy, segment_count = 0) alongside pli-tv-bu-vb/pli-tv-bi-vb/pli-tv-kd/pli-tv-pvr (active, populated).

    • Abhidhamma: ym/pt (legacy = 0) alongside ya/patthana (active).

  • Use the active flag — each nikaya carries active: true/false (true ⇔ segment_count > 0). Pick active nikayas; the others are metadata placeholders from an older migration.

🌐 Languages: Returns Pāli + Thai + English labels regardless of enabled set (these are metadata, not segment text). Text content follows ENABLED_LANGUAGES. Thai translations aren't loaded yet.

Input Schema

NameRequiredDescriptionDefault

No arguments

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Although annotations already declare read-only, idempotent, non-destructive, closed-world behavior, the description adds substantial non-annotation context: the `active` flag semantics, duplicate legacy vs. SC-modern codes (vin-v/vin-m with segment_count = 0, ym/pt legacy), and language behavior (labels returned regardless of enabled set; text follows ENABLED_LANGUAGES; Thai not yet loaded). These quirks directly affect interpretation of the output.

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 description is front-loaded with purpose, then when-to-use, then current state, then known quirks, so structure is strong. It is, however, quite long for a zero-argument list tool, and some current-state counts may duplicate what the output schema already returns; the 'active' flag quirk is the part that truly earns its space.

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?

With an output schema present, the description needn't explain return values, and it doesn't — instead it supplies the essential context an agent needs: what is covered, which codes are active vs. legacy, and how languages behave. Nothing needed to invoke and correctly interpret this no-argument tool 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?

The tool takes zero parameters, so the schema carries no parameter meaning to supplement; baseline for 0 params is 4. The description never needs to explain arguments, and it does note that text content follows ENABLED_LANGUAGES, which is the closest thing to a configuration dependency.

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?

The first sentence states a specific verb and resource — 'Show the structure of all three pitakas with coverage statistics' — and the scope (all three piṭakas, coverage) is unambiguous. The 'Use this tool when' bullets further separate it from retrieval tools like get_sutta or the search_* siblings by framing it as an overview/scope-checking tool.

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

Usage Guidelines5/5

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

It gives explicit invocation conditions in a dedicated 'Use this tool when' block: asking for a Tipiṭaka overview, checking `segment_count > 0` coverage before promising a search, and verifying scope when compiling an artifact. This tells the agent both when and why to pick it over the sibling retrieval/search tools.

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.

Resources