Skip to content

Framework and capability tools

This page specifies the four tools used to discover accepted framework snapshots, inspect one framework, report runtime capabilities, and calculate structural package statistics.

For workflow guidance, see Discover frameworks.

get_capabilities

Returns the implemented server-wide surface and package-specific runtime capabilities. This tool has no caller-supplied arguments.

Request

{}

Result

structuredContent contains:

Field Meaning
serverName Server display name
toolNames Exact registered tool names
promptNames Exact registered prompt names
resourceUris Fixed resource URIs
resourceUriTemplates Parameterized resource templates
resourceRepresentations deterministic_derived and raw_source
availableGraphTypes Graph types present in accepted runtimes
implementedFeatures Server features implemented by this build
unavailableFeatures Explicitly unsupported features
frameworkPromptOverlaysOptional Whether prompt overlays are optional
promptConfigSchemaVersion Prompt configuration schema version
packages Per-package capability evidence

Each packages[] entry includes the accepted package and source metadata plus:

  • implementedSearchModes;
  • implementedLearningComponentSearchModes;
  • package-local search index metadata, including learningComponentDocumentCount and tagVocabularySize;
  • availableResourceKinds;
  • availableResourceArtifacts; and
  • traversalRelationshipType.

Standards and learning-component modes are reported separately because they are governed differently. Learning-component modes carry a learning_component_ prefix so a mode value is never ambiguous between the two surfaces:

learning_component_text
learning_component_tag
learning_component_supported_code_exact
learning_component_supported_code_prefix

learning_component_text follows the package's textSearch capability, and the two supported-code modes follow the same profile code coverage that governs code_exact and code_prefix, because they match against the codes of the standards a component supports. learning_component_tag needs neither, so it is always implemented; a package whose components carry no tags returns no hits rather than reporting the mode unavailable.

Generic schemas do not authorize package-specific modes

The search_standards schema contains text, code_exact, and code_prefix variants, but a selected package may not implement every mode. Check packages[].implementedSearchModes first.

list_frameworks

Lists accepted immutable framework snapshots with deterministic filtering and checksum-protected pagination.

Request fields

All fields are optional.

Field Type Default / bound Meaning
cursor string or null null; 1-4096 characters when present Opaque continuation cursor
graphTypes array empty; max 16 Graph-type filters
isCurrent boolean or null null Current/non-current snapshot filter
issuingAuthorities array[string] empty; max 64 Issuing-authority filters
jurisdictionTypes array[string] empty; max 64 Jurisdiction-type filters
jurisdictions array[string] empty; max 64 Jurisdiction filters
languages array[string] empty; max 64 Language-tag filters
limit integer 25; 1-100 Maximum snapshots on one page
localGrades array[string] empty; max 64 Exact source-facing grade/stage filters
normalizedGrades array[string] empty; max 64 Normalized retrieval-facet filters
query string or null null; max 256 characters Catalog discovery text
subjects array[string] empty; max 64 Source subject filters
validationStatus array empty; max 8 Validation-state filters

Tuple-valued filters reject duplicate exact values. A supplied query must contain non-whitespace text.

Current validationStatus values are:

failed
passed
pending
quarantined

A minimal request is:

{
  "request": {}
}

A filtered request is:

{
  "request": {
    "graphTypes": ["academic_standards"],
    "jurisdictions": ["Ghana"],
    "subjects": ["Mathematics"],
    "validationStatus": ["passed"],
    "limit": 25
  }
}

Result fields

Field Meaning
catalogSha256 Checksum of the accepted catalog state used for pagination
items Returned accepted framework snapshots
returnedCount Number of items on the page
totalMatchingCount Total snapshots matching the request
hasMore Whether another page exists
nextCursor Opaque cursor for the next page, or null

When hasMore is true, the result text also contains a complete nextRequest. Submit that request unchanged.

get_framework

Returns one exact snapshot or one uniquely current snapshot in a framework family.

Request fields

Field Type Required Meaning
frameworkId string Yes Conceptual framework family ID
snapshotId string or null No Exact immutable snapshot; omission uses unique-current routing
{
  "request": {
    "frameworkId": "ghana-nacca-primary-mathematics-basic-4-6"
  }
}

For reproducible work, pin the exact snapshot:

{
  "request": {
    "frameworkId": "ghana-nacca-primary-mathematics-basic-4-6",
    "snapshotId": "<exact-snapshot-id>"
  }
}

Result

The result contains one framework object with the complete accepted snapshot, including exact source metadata and accepted graph-package metadata.

If snapshot omission does not resolve to one unique current snapshot, the tool returns an ambiguous_framework error rather than choosing silently.

get_framework_statistics

Returns deterministic structural statistics for one Academic Standards package.

Request fields

Field Type Default Meaning
frameworkId string required Framework family ID
graphType enum academic_standards Graph domain to select
snapshotId string or null null Exact snapshot or unique-current routing
{
  "request": {
    "frameworkId": "india-cbse-science-learning-framework-classes-9-10",
    "graphType": "academic_standards"
  }
}

Result fields

The result contains package, sourceMetadata, and statistics.

statistics includes:

  • totalFrameworkNodes, totalItemNodes, totalNodes, and totalRelationships. These count the standards hierarchy only: totalNodes is the framework root plus the framework items, and totalRelationships excludes supports edges. Learning components and their edges are counted in the learningComponents block below;
  • local grade, node grade-level, normalized grade, statement-type, normalized statement-type, and relationship-type counts, all over the standards hierarchy only, so supports edges never appear in the relationship-type or resolution counts;
  • codePresence counts;
  • maximumStructuralDepth and minimumStructuralDepthCounts;
  • multiParent cardinality statistics;
  • unresolvedRelationships counts; and
  • unreachableNodeCount, counting nodes with no path to the framework root by any declared relationship; and
  • learningComponents, a separate block reporting totalLearningComponents, totalSupportsRelationships, multiStandardComponentCount, supportedStatementTypes, standardsWithoutComponents, tagVocabularySize, the support-confidence range, and the components-per-standard and bridge-span distributions. supportedStatementTypes lists the source statement types that supports edges land on in this package; standardsWithoutComponents and the components-per-standard distribution count only items of those types, so grouping headings and node types the pipeline never decomposed are not reported as gaps.

Standards counts and learning-component counts are never combined. A learning component is generated content and is excluded from every standards count.

These values describe graph structure. They do not establish curriculum quality, coverage quality, instructional sequence, or difficulty.

Graph types

The domain vocabulary recognizes these graph-type values:

academic_standards
assessment
curriculum
learning_components
learning_progressions
reviewed_alignment

Recognition in the enum is not the same as availability in the accepted catalog. Use get_capabilities.availableGraphTypes to determine what the running server actually serves.

Common errors

Error code Typical cause
framework_not_found Framework or snapshot selector is unavailable
ambiguous_framework Unique-current routing cannot select exactly one snapshot
invalid_cursor Cursor is malformed, stale, or bound to a different request/catalog state
catalog_error Accepted catalog evidence is internally inconsistent

See Errors, cursors, and limits for boundary behavior.


Next: Standards tools