Skip to main content
Glama

Comparability for a Course

comparability_for_learning_unit
Read-only

Where does a course land, and what lands on it? Reuses GoldCheck's combined parent for published CourseShelf comparables, school-published CourseAtlas equivalencies, and each source's separate inferred paths through anchors. Select sources individually or together; omitted catalog arguments retain kind known, while explicit sources without kind select from all four. Where it lands supports one named receiver or all receiving endpoints; what lands on it is held CourseShelf evidence only. Preserve source authority, published rules, actual identities, conditions, score evidence and inferred paths. Inference never establishes confirmed completion. Live published and local/inferred evidence use independent labelled source pages, actual counts where read, and full continue.arguments; rules is the union of the displayed source-page slices, not a globally sorted complete inventory. Known-overlap suppression is scoped where live published evidence is paged: retain source-labelled inferred paths without claiming the destination is inferred-only. Unread sources and unread totals are explicit, never zero or absence. Recognition remains the school's act. Each row names its current FORM's wording source: source_url, capture_file, catalog_year and source_catalog_name are that one source's, never the record's whole span. A row whose record holds more than one form or more than one source also carries version_count, source_count, first_edition_seen and last_edition_seen, and one sentence saying so in words; a record with one form and one source carries none of them and reads exactly as it always has. The forms themselves, each with its own content and its own sources, come from the one-record get, never from a list. A record last seen in an older edition says so, because the Union keeps a record no current catalog prints.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "comparability_for_learning_unit"
  }
}

Input Schema

NameRequiredDescriptionDefault
codeNoThe course code as printed, e.g. HIST 201
kindNoknown selects sources 1-2, inferred selects 3-4, both selects all four; intersects explicit sources. With neither argument supplied, the catalog's existing known default applies. Explicit sources without kind selects from all four.
limitNoOptional page size per list (default 10, at most 50)
titleNoOr: the course title, matched exactly
offsetNoOptional: the offset of the next page
schoolNoOr: the course's school, by name (with code or title)
unitidNoOr: the course's school, by IPEDS UNITID (with code or title)
sourcesNoOptional information-source selection: all (default), or a nonempty array of distinct numbers: 1 gathered published CourseShelf comparables, 2 school-published CourseAtlas equivalencies, 3 inferred CourseShelf comparability through anchors, 4 inferred CourseAtlas equivalency through anchors. Any combination is allowed. An explicit kind intersects this selection; an empty intersection is invalid. Unselected engines report not_requested. Required identity/reference reads may still be needed. Send continuation arguments unchanged.
audienceNoOptional: who the answer is for. student (the default): a course at the target school itself is met from the student's own transcript, or as entered, unless its grade is failing (F, U, NC) or withdrawn (W). institution: the target's own course counts only with explicit earned-credit or completion evidence. Carried in continue.arguments; send it back unchanged.
directionNolands_as: where it lands; lands_on: what lands on it; both (default)
target_unitidNoOptional: narrow where it lands to one receiving school (IPEDS UNITID)
source_offsetsNoSet by continue.arguments: independent local and live source offsets. Replay the full continuation unchanged; a single global offset cannot page the combined sources reliably.
learning_unit_idNoThe course, by its learning unit id
continuation_contextNoSet by continue.arguments: binds identities, options and the pinned publication. Send back unchanged.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / audience
      Added value: +{
      +  "description": "Optional: who the answer is for. student (the default): a course at the target school itself is met from the student's own transcript, or as entered, unless its grade is failing (F, U, NC) or withdrawn (W). institution: the target's own course counts only with explicit earned-credit or completion evidence. Carried in continue.arguments; send it back unchanged.",
      +  "enum": [
      +    "student",
      +    "institution"
      +  ],
      +  "type": "string"
      +}
  2. Changed4 schema fields changed
    • addedInput schema / properties / continuation_context
      Added value: +{
      +  "description": "Set by continue.arguments: binds identities, options and the pinned publication. Send back unchanged.",
      +  "type": "string"
      +}
    • addedInput schema / properties / kind
      Added value: +{
      +  "description": "known selects sources 1-2, inferred selects 3-4, both selects all four; intersects explicit sources. With neither argument supplied, the catalog's existing known default applies. Explicit sources without kind selects from all four.",
      +  "enum": [
      +    "known",
      +    "inferred",
      +    "both"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / source_offsets
      Added value: +{
      +  "description": "Set by continue.arguments: independent local and live source offsets. Replay the full continuation unchanged; a single global offset cannot page the combined sources reliably.",
      +  "type": "object"
      +}
    • addedInput schema / properties / sources
      Added value: +{
      +  "description": "Optional information-source selection: all (default), or a nonempty array of distinct numbers: 1 gathered published CourseShelf comparables, 2 school-published CourseAtlas equivalencies, 3 inferred CourseShelf comparability through anchors, 4 inferred CourseAtlas equivalency through anchors. Any combination is allowed. An explicit kind intersects this selection; an empty intersection is invalid. Unselected engines report not_requested. Required identity/reference reads may still be needed. Send continuation arguments unchanged.",
      +  "oneOf": [
      +    {
      +      "enum": [
      +        "all"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "items": {
      +        "enum": [
      +          1,
      +          2,
      +          3,
      +          4
      +        ],
      +        "type": "integer"
      +      },
      +      "maxItems": 4,
      +      "minItems": 1,
      +      "type": "array",
      +      "uniqueItems": true
      +    }
      +  ]
      +}
  3. Added

TDQS

A3.7/5.0
Behavior5/5

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

Beyond readOnlyHint, the description discloses extensive behavior: unread sources and totals are explicit rather than zero, inferred evidence never establishes confirmed completion, recognition remains the school's act, known-overlap suppression is scoped, and source/form provenance fields belong to the current form rather than the whole record. These are precisely the kinds of contextual cautions an agent needs beyond the annotation.

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?

The description is a dense wall of jargon-heavy prose with many long clauses and unclear imperatives such as 'Preserve source authority, published rules, actual identities...'. The first sentence helpfully front-loads the purpose, but the remainder is overlong and poorly structured for quick agent parsing.

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 complex 14-parameter tool with no output schema, the description supplies substantial context about returned rows, form/source provenance, multi-form fields, unread sources, and continuation handling. It does not define the overall response shape, but it is otherwise complete enough for an agent to understand the tool's contract.

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 coverage is 100% and all 14 parameters already have detailed descriptions, so the baseline is 3 even with little added parameter detail. The description reinforces interactions among kind, sources, direction, and continuation context, but most of that is already present in the schema rather than adding substantial new parameter meaning.

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 makes clear that this tool answers where a course lands and what lands on it, using published comparables, equivalencies, and inferred paths. The purpose is specific to a single course and directions, but it never names the closely related sibling comparability_for_courses, so sibling differentiation is left implicit.

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?

It gives usage-relevant behavior such as selecting sources individually or together and notes that forms themselves come from the one-record get, never from a list. However, it does not explicitly say when to choose this tool over siblings like comparability_for_courses, find_comparability, or get_comparability, leaving the main routing decision implied.

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.