Skip to main content
Glama

Bettyapp lecture moments

A lecture and all its moments

get_lecture
Read-onlyIdempotent

One lecture on Bettyapp, by its id (lecture.id in a moment) or the address of its page: its course, teacher, Subjects and Levels, credit line, and every moment in it, in order, each with its play_url. Use it to give a student more of a lecture a moment came from, or to read a Bettyapp lecture link the student sent.

Input Schema

NameRequiredDescriptionDefault
urlNoOr the lecture page's address (https://bettyapp.org/lectures/...).
lecture_idNoThe lecture's id.

Output Schema

NameRequiredDescriptionDefault
termsYesThe terms of use.
lectureYes
momentsYesIts moments in order (without lecture: it is the one above).
attributionYesHow to credit Bettyapp and the lecture's creator. Follow it.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "attribution": {
      +      "description": "How to credit Bettyapp and the lecture's creator. Follow it.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "lecture": {
      +      "allOf": [
      +        {
      +          "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"
      +        },
      +        {
      +          "properties": {
      +            "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"
      +                  ]
      +                },
      +                "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 (YouTube, the publisher).",
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                }
      +              },
      +              "required": [
      +                "line",
      +                "creator",
      +                "licence",
      +                "transcript"
      +              ],
      +              "type": [
      +                "object",
      +                "null"
      +              ]
      +            }
      +          },
      +          "type": "object"
      +        }
      +      ]
      +    },
      +    "moments": {
      +      "description": "Its moments in order (without lecture: it is the one above).",
      +      "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"
      +                ]
      +              },
      +              "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 (YouTube, the publisher).",
      +                "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"
      +    },
      +    "terms": {
      +      "description": "The terms of use.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    }
      +  },
      +  "required": [
      +    "attribution",
      +    "terms",
      +    "lecture",
      +    "moments"
      +  ],
      +  "type": "object"
      +}
  2. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, non-destructive, closed-world behavior. The description adds that lookup can be by lecture id or page URL and that moments are returned in order with play_url, though it omits auth, error, and pagination behavior.

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

Conciseness5/5

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

Two sentences, with the core retrieval purpose front-loaded and the return contents and use cases following efficiently. The density is justified by the amount of useful information conveyed.

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?

The output schema exists, parameters are fully documented, and annotations cover the safety profile. The description adds retrieval contexts and ordering semantics, leaving no major ambiguity for an agent calling this read-only tool.

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 the baseline is already high. The description adds useful meaning by tying lecture_id to lecture.id in a moment and confirming url is the lecture page address.

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 retrieval action for a lecture, identifiable by id or page URL, and enumerates the returned fields and ordered moments. It is clear against generic siblings, though it does not explicitly name alternatives such as fetch or search_moments.

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?

It gives two concrete use cases: giving a student more of the lecture a moment came from, or reading a lecture link the student sent. It lacks explicit when-not guidance or named alternatives, so it stops short of full routing guidance.

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