Skip to main content
Glama

Comparability for Many Courses

comparability_for_courses
Read-only

Where does each course or exam land at one receiving school? Each typed item uses GoldCheck's shared combined parent, retaining its full evidence and separate known/inferred results. Sources 1-4 select gathered published comparables, school-published CourseAtlas equivalencies, and each source's inferred paths through anchors. The effective selection is stated; unselected engines say not_requested. Omitted catalog arguments retain kind known; explicit sources without kind select from all four. Actual school/exam identities and ambiguity are retained. Failed or budget-limited reads are unread rather than no-rule findings. Inferred paths remain separate from confirmed coverage and checklist progress. 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

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": {
      "target_unitid": "<target_unitid>",
      "items": "<items>"
    },
    "name": "comparability_for_courses"
  }
}

Input Schema

NameRequiredDescriptionDefault
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.
itemsYesWhat was taken: each item a course (its school by unitid or name, with code or title) or an exam (exam_program with exam). At most 60 in one call.
limitNoOptional page size per item's rules (default 10, at most 50)
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.
target_unitidYesThe receiving school, by IPEDS UNITID

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. Changed3 schema fields changed
    • addedInput schema / properties / items / items / properties / score
      Added value: +{
      +  "description": "For an exam: its actual held score, a string or number. When omitted, published tiers can be shown but no held score is established.",
      +  "oneOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "number"
      +    }
      +  ]
      +}
    • 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 / 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.8/5.0
Behavior5/5

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

Annotations only say readOnlyHint=true, and the description goes well past that: it discloses that failed or budget-limited reads surface as 'unread' rather than as no-rule findings, that unselected engines report not_requested, that omitted catalog arguments default to kind=known, and that inferred paths are never merged with confirmed coverage. These are exactly the traits that prevent an agent from misreading results, and it even flags a budget limit, which annotations do not cover.

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

Conciseness3/5

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

The purpose is front-loaded, which is good, but the body is a dense block of internal jargon ('GoldCheck's shared combined parent', 'Recognition remains the school's act') and sentences like 'reads exactly as it always has' that reference the tool's history rather than tell the caller anything actionable. Given there is no output schema, some return-value prose is justified, but this overshoots.

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?

With no output schema, the description accepts the burden of explaining returns and does so thoroughly: which fields belong to a single form's source, when version_count/source_count/first_edition_seen/last_edition_seen appear and when they are absent, and how not_requested and unread appear. The remaining gap is pagination/continuation mechanics, which are only hinted at ('Send continuation arguments unchanged') and never explained.

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 the schema already documents kind, sources, audience, limit and the item fields in detail. The description largely restates the kind/sources interaction ('explicit sources without kind select from all four') that the schema descriptions already state, adding only marginal framing; baseline 3 is right.

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 opening sentence states the purpose concretely: given many courses/exams, where does each land at one receiving school. That is specific enough to separate it from the singular siblings in spirit, but the description never names its closest alternatives (comparability_for_learning_unit, get_comparability, find_comparability), so the agent must infer the batch-vs-single split from the title alone.

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?

There is one real routing instruction: 'The forms themselves ... come from the one-record get, never from a list', which tells the agent this tool is not the place to fetch form detail. Beyond that, there is no when-to-use / when-not framing relative to comparability_for_learning_unit or the checklist/coverage tools; usage is implied by the phrase 'many courses' rather than stated.

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.