Skip to main content
Glama

Bettyapp lecture moments

Find a textbook chapter by its DIKSHA code

lookup_textbook_code
Read-onlyIdempotent

Finds the textbook chapter a DIKSHA DIAL code names, and the moments in Bettyapp's lectures that explain it. Indian school textbooks (NCERT, CBSE and the state boards) print a code under the QR code on each chapter: 6 letters and digits (L1H1M6), or an NCERT code such as 1064CH01; the QR code's address (https://diksha.gov.in/dial/... or http://epathshala.nic.in/QR/?id=...) works too. It answers the board, medium, class, subject, book and chapter, a source line with its source.url, and the moments for the chapter; or that textbook codes are not available. Example: code "1064CH01" returns NCERT Class 10 Science, chapter "Chemical Reactions and Equations", with moments on balancing chemical equations.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "code": "<code>",
      "age_group": "<age_group>"
    },
    "name": "lookup_textbook_code"
  }
}

Input Schema

NameRequiredDescriptionDefault
codeYesThe code printed under the textbook's QR code (L1H1M6, 1064CH01), or the QR code's address.
limitNoHow many moments, 1 to 10.
age_groupYesThe age of the student the answer is for: child (under 13), teen (13 to 17) or adult (18 and over). Bettyapp shows lectures that suit the age.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / age_group / description
      Previous value: -"The age of the student the answer is for: child (under 13), teen (13 to 17) or adult (18 and over). Bettyapp shows lectures that suit the age. If you do not know it, ask the student once (\"How old are you? Bettyapp shows lectures that suit your age.\") and send it with every call."New value: +"The age of the student the answer is for: child (under 13), teen (13 to 17) or adult (18 and over). Bettyapp shows lectures that suit the age."
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "attribution": {
      -      "description": "How to credit Bettyapp and the lecture's creator. Follow it.",
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    },
      -    "code": {
      -      "description": "The DIAL code, in capitals.",
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    },
      -    "level": {
      -      "description": "The Level searched at.",
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    },
      -    "message": {
      -      "description": "Said when there are no moments.",
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    },
      -    "moments": {
      -      "description": "The moments for the chapter, best first.",
      -      "items": {
      -        "description": "A moment of a lecture: where it starts and ends, what it explains, and where to play it.",
      -        "properties": {
      -          "also_called": {
      -            "description": "Other names for its topic.",
      -            "items": {
      -              "type": [
      -                "string",
      -                "null"
      -              ]
      -            },
      -            "type": "array"
      -          },
      -          "credit": {
      -            "description": "Who made the lecture and its licence. Show line wherever the moment is linked.",
      -            "properties": {
      -              "creator": {
      -                "description": "Who made the lecture.",
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "creator_url": {
      -                "description": "The creator's own site.",
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "licence": {
      -                "description": "The licence, for example CC BY-NC-SA 4.0.",
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "licence_url": {
      -                "description": "The licence's text.",
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "line": {
      -                "description": "The credit line, as the lecture page shows it.",
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "plays_from": {
      -                "description": "Whose server the lecture plays from, where it plays from its provider's own copy instead of YouTube (for example Khan Academy's own server).",
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "transcript": {
      -                "description": "Whether the lecture page may show the whole transcript, or only short excerpts.",
      -                "enum": [
      -                  "full",
      -                  "short excerpts only"
      -                ],
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "watch_at_source": {
      -                "description": "The lecture at its own source (the publisher, or YouTube where it plays in YouTube's player).",
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              }
      -            },
      -            "required": [
      -              "line",
      -              "creator",
      -              "licence",
      -              "transcript"
      -            ],
      -            "type": [
      -              "object",
      -              "null"
      -            ]
      -          },
      -          "end_seconds": {
      -            "description": "Where its part of the lecture ends.",
      -            "type": [
      -              "integer",
      -              "null"
      -            ]
      -          },
      -          "excerpt": {
      -            "description": "The teacher's words at its start: at most 300 characters, and as short as the lecture's licence asks (at most 40 words for lectures whose licence allows only short excerpts).",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "lecture": {
      -            "properties": {
      -              "course": {
      -                "properties": {
      -                  "id": {
      -                    "type": [
      -                      "integer",
      -                      "null"
      -                    ]
      -                  },
      -                  "name": {
      -                    "type": [
      -                      "string",
      -                      "null"
      -                    ]
      -                  },
      -                  "url": {
      -                    "type": [
      -                      "string",
      -                      "null"
      -                    ]
      -                  }
      -                },
      -                "required": [
      -                  "id",
      -                  "name",
      -                  "url"
      -                ],
      -                "type": "object"
      -              },
      -              "id": {
      -                "description": "The lecture's id.",
      -                "type": [
      -                  "integer",
      -                  "null"
      -                ]
      -              },
      -              "length_seconds": {
      -                "description": "How long it is.",
      -                "type": [
      -                  "integer",
      -                  "null"
      -                ]
      -              },
      -              "number": {
      -                "description": "Its place in its course.",
      -                "type": [
      -                  "integer",
      -                  "null"
      -                ]
      -              },
      -              "of": {
      -                "description": "Lectures in its course with pages.",
      -                "type": [
      -                  "integer",
      -                  "null"
      -                ]
      -              },
      -              "subjects": {
      -                "description": "Its Subjects, each with its Levels.",
      -                "items": {
      -                  "properties": {
      -                    "levels": {
      -                      "items": {
      -                        "type": [
      -                          "string",
      -                          "null"
      -                        ]
      -                      },
      -                      "type": "array"
      -                    },
      -                    "subject": {
      -                      "type": [
      -                        "string",
      -                        "null"
      -                      ]
      -                    }
      -                  },
      -                  "required": [
      -                    "subject",
      -                    "levels"
      -                  ],
      -                  "type": "object"
      -                },
      -                "type": "array"
      -              },
      -              "teacher": {
      -                "description": "The course's teacher or publisher.",
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "title": {
      -                "description": "Its title.",
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "url": {
      -                "description": "Its page on Bettyapp.",
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              }
      -            },
      -            "required": [
      -              "id",
      -              "title",
      -              "url",
      -              "course",
      -              "teacher",
      -              "subjects"
      -            ],
      -            "type": "object"
      -          },
      -          "play_url": {
      -            "description": "The lecture page, playing from this moment. Send the student here.",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "questions": {
      -            "description": "Questions a student might ask that it answers (as title).",
      -            "items": {
      -              "type": [
      -                "string",
      -                "null"
      -              ]
      -            },
      -            "type": "array"
      -          },
      -          "start_seconds": {
      -            "description": "Where it starts, in seconds from the lecture's start.",
      -            "type": [
      -              "integer",
      -              "null"
      -            ]
      -          },
      -          "summary": {
      -            "description": "One or two sentences on what it explains (as title).",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "thumbnail_url": {
      -            "description": "A picture of the lecture at about this moment.",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "time": {
      -            "description": "start_seconds as a clock (4:33).",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "title": {
      -            "description": "What it explains, in a few words (written with the help of an AI model and checked against the lecture).",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "topics": {
      -            "description": "The topics explained there, most mentioned first.",
      -            "items": {
      -              "type": [
      -                "string",
      -                "null"
      -              ]
      -            },
      -            "type": "array"
      -          }
      -        },
      -        "required": [
      -          "start_seconds",
      -          "end_seconds",
      -          "time",
      -          "title",
      -          "summary",
      -          "questions",
      -          "topics",
      -          "excerpt",
      -          "play_url",
      -          "thumbnail_url",
      -          "credit"
      -        ],
      -        "type": "object"
      -      },
      -      "type": "array"
      -    },
      -    "query": {
      -      "description": "The words searched for: the chapter's title.",
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    },
      -    "subject": {
      -      "description": "The Bettyapp Subject searched in.",
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    },
      -    "terms": {
      -      "description": "The terms of use.",
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    },
      -    "unit": {
      -      "description": "The textbook unit the code names.",
      -      "properties": {
      -        "board": {
      -          "description": "The board, for example CBSE or a state board.",
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "book": {
      -          "description": "The book's title.",
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "chapter": {
      -          "description": "The chapter's title.",
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "grade": {
      -          "description": "The grade or class.",
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "subject": {
      -          "description": "The subject, as the textbook names it.",
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        }
      -      },
      -      "required": [
      -        "board",
      -        "grade",
      -        "subject",
      -        "book",
      -        "chapter"
      -      ],
      -      "type": "object"
      -    }
      -  },
      -  "required": [
      -    "attribution",
      -    "terms",
      -    "code",
      -    "unit",
      -    "moments"
      -  ],
      -  "type": "object"
      -}New value: +null
  3. Changed2 schema fields changed
    • addedOutput schema / properties / moments / items / properties / credit / properties / plays_from
      Added value: +{
      +  "description": "Whose server the lecture plays from, where it plays from its provider's own copy instead of YouTube (for example Khan Academy's own server).",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / moments / items / properties / credit / properties / watch_at_source / description
      Previous value: -"The lecture at its own source (YouTube, the publisher)."New value: +"The lecture at its own source (the publisher, or YouTube where it plays in YouTube's player)."
  4. Added

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety bar is covered. The description goes further by enumerating what comes back — board, medium, class, subject, book, chapter, a source line with source.url, and the moments — and discloses a failure mode. That return-shape and error-path detail is exactly what the annotations cannot convey.

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 the verb and both outputs before any format detail, and the sample call at the end makes the payoff concrete. It is dense and long-winded in the middle (spelling out both URL hosts parenthetically), which costs a little tightness but nothing 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?

There is no output schema, yet the description supplies the returned fields, the failure case, and a worked example, and the required parameters are all schema-documented. Nothing an agent needs in order to call this correctly or interpret its result is missing.

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 100%, so all three parameters (code, limit, age_group) are already documented in the schema, making 3 the baseline. The description reinforces the accepted code syntax and gives a worked example, but says nothing about limit or the age_group enum that the schema does not already say.

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?

Specific verb plus two resources: it 'Finds the textbook chapter a DIKSHA DIAL code names' and 'the moments in Bettyapp's lectures that explain it'. It names the domain (Indian school textbooks) and the input lineage (the code under the QR), so an agent can distinguish it from search or problem-based siblings without opening a 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?

The trigger condition is made concrete: use it when you hold a printed textbook code (6 letters/digits like L1H1M6, an NCERT code like 1064CH01, or a DIKSHA/epathshala QR URL). It also states the negative outcome 'textbook codes are not available'. It stops short of naming an alternative sibling for the non-code case, so no explicit exclusions.

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