BC Curriculum

Query the full BC K-12 curriculum: Big Ideas, Competencies, Content, and more.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
89%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,770Tokens (tool definitions)
~1.9 KBTypical response size
Significant attention impact (2.16% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "bc-curriculum": {
      "command": "npx",
      "args": [
        "bc-curriculum-mcp-server"
      ]
    }
  }
}

Runnable packages

npmbc-curriculum-mcp-server1.1.1stdio

Remote endpoints

https://bc-curriculum-mcp.fly.dev/mcpstreamable-http

What it can do

Tool inventory

Tools (8)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search_curriculum(query, subject, grade, content_type, limit)

Search BC curriculum (K-12) for standards, competencies, content items, and assessment resources using full-text search. Returns structured results with source metadata. Args: - query (string): Natural language search query (e.g., 'empathetic design thinking', 'coding and computational thinking') - subject (string, optional): Filter by subject slug (e.g., 'adst', 'science') - grade (integer, optional): Filter by grade level (0=K, 1-12) - content_type (string, optional): Filter by content type ('big_idea', 'competency', 'content_item', 'elaboration', 'assessment', 'all') - limit (integer, optional): Max results (default 10, max 50) Returns: Matching curriculum elements with source type, course, subject, and grade metadata.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 2,
      "maxLength": 500,
      "description": "Natural language search query (e.g., 'empathetic design thinking')"
    },
    "subject": {
      "type": "string",
      "enum": [
        "adst",
        "arts-education",
        "career-education",
        "english-language-arts",
        "languages",
        "mathematics",
        "physical-health-education",
        "science",
        "social-studies"
      ],
      "description": "BC curriculum subject slug (e.g., 'adst', 'science')"
    },
    "grade": {
      "type": "integer",
      "minimum": 0,
      "maximum": 12,
      "description": "Grade level (0=Kindergarten, 1-12)"
    },
    "content_type": {
      "type": "string",
      "enum": [
        "big_idea",
        "competency",
        "content_item",
        "elaboration",
        "assessment",
        "instructional_sample",
        "all"
      ],
      "description": "Type of curriculum content to filter by",
      "default": "all"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "default": 10,
      "description": "Maximum results to return (default 10)"
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_course_curriculum(subject, grade, course)

Get the complete BC curriculum for a specific course: Big Ideas, Curricular Competencies (grouped by domain), and Content/KDU items with elaborations. Returns the full three-column structure used by BC Ministry of Education. Args: - subject (string): Subject slug (e.g., 'adst', 'science') - grade (integer): Grade level (0=K, 1-12) - course (string, optional): Course slug (e.g., 'technology-explorations'). If omitted, returns all courses for that subject+grade. Returns: Complete three-column curriculum structure per course, including elaborations.

Input Schema

{
  "type": "object",
  "properties": {
    "subject": {
      "type": "string",
      "enum": [
        "adst",
        "arts-education",
        "career-education",
        "english-language-arts",
        "languages",
        "mathematics",
        "physical-health-education",
        "science",
        "social-studies"
      ],
      "description": "BC curriculum subject slug (e.g., 'adst', 'science')"
    },
    "grade": {
      "type": "integer",
      "minimum": 0,
      "maximum": 12,
      "description": "Grade level (0=Kindergarten, 1-12)"
    },
    "course": {
      "type": "string",
      "description": "Course slug (e.g., 'technology-explorations'). If omitted, returns all courses for subject+grade."
    }
  },
  "required": [
    "subject",
    "grade"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_grade_progression

Show how Big Ideas, Competencies, and Content progress across grade levels for a BC subject. Useful for understanding scaffolding, prerequisites, and learning trajectories. When a query is provided, filters to only matching items at each grade — showing a focused vertical thread rather than a full data dump. Args: - subject (string): Subject slug - grade_from (integer): Starting grade (0=K, 1-12) - grade_to (integer): Ending grade (0=K, 1-12) - focus (string, optional): Which element to trace ('big_ideas', 'competencies', 'content', 'all'). Default 'all'. - query (string, optional): Focus on a specific concept (e.g., 'evidence', 'multiplication'). Only matching items shown at each grade. Returns: Grade-by-grade breakdown of curriculum elements showing progression, optionally filtered to a concept thread.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢get_competency_connections(competency_text, scope)

Find curricular competencies that appear across multiple subjects or courses. Useful for interdisciplinary curriculum design and identifying transferable skills. Args: - competency_text (string): A competency description to find connections for - scope (string, optional): Where to search ('same_subject', 'cross_subject', 'all'). Default 'all'. Returns: Related competencies from other courses/subjects with similarity ranking.

Input Schema

{
  "type": "object",
  "properties": {
    "competency_text": {
      "type": "string",
      "minLength": 3,
      "description": "A competency description to find connections for"
    },
    "scope": {
      "type": "string",
      "enum": [
        "same_subject",
        "cross_subject",
        "all"
      ],
      "default": "all",
      "description": "Where to search for related competencies"
    }
  },
  "required": [
    "competency_text"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_courses(subject, grade)

List all available courses in the BC curriculum database (K-12). Use this to discover what courses are available before querying specific curriculum data. Args: - subject (string, optional): Filter by subject slug - grade (integer, optional): Filter by grade level (0=K, 1-12) Returns: List of courses with subject, grade, name, and URL.

Input Schema

{
  "type": "object",
  "properties": {
    "subject": {
      "type": "string",
      "enum": [
        "adst",
        "arts-education",
        "career-education",
        "english-language-arts",
        "languages",
        "mathematics",
        "physical-health-education",
        "science",
        "social-studies"
      ],
      "description": "BC curriculum subject slug (e.g., 'adst', 'science')"
    },
    "grade": {
      "type": "integer",
      "minimum": 0,
      "maximum": 12,
      "description": "Grade level (0=Kindergarten, 1-12)"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢search_cross_curricular(subjects, grade, focus, query, limit)

Find curriculum elements shared between two or more subjects at the same grade level. Identifies overlapping competencies, big ideas, and content across subjects. Essential for interdisciplinary planning. Args: - subjects (string[]): Two or more subject slugs to compare (e.g., ['science', 'adst']) - grade (integer): Grade level (0=K, 1-12) - focus (string, optional): Which element to compare ('big_ideas', 'competencies', 'content', 'all'). Default 'all'. - query (string, optional): Narrow to a specific concept (e.g., 'evidence', 'design thinking') - limit (integer, optional): Max connections to return (default 20, max 50) Returns: Groups of curriculum items connected by shared language across subjects.

Input Schema

{
  "type": "object",
  "properties": {
    "subjects": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "adst",
          "arts-education",
          "career-education",
          "english-language-arts",
          "languages",
          "mathematics",
          "physical-health-education",
          "science",
          "social-studies"
        ],
        "description": "BC curriculum subject slug (e.g., 'adst', 'science')"
      },
      "minItems": 2,
      "maxItems": 9,
      "description": "Two or more subject slugs to compare (e.g., ['science', 'adst'])"
    },
    "grade": {
      "type": "integer",
      "minimum": 0,
      "maximum": 12,
      "description": "Grade level (0=Kindergarten, 1-12)"
    },
    "focus": {
      "type": "string",
      "enum": [
        "big_ideas",
        "competencies",
        "content",
        "all"
      ],
      "default": "all",
      "description": "Which curriculum element to compare across subjects"
    },
    "query": {
      "type": "string",
      "minLength": 2,
      "maxLength": 500,
      "description": "Optional: narrow to a specific concept (e.g., 'evidence', 'design thinking')"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "default": 20,
      "description": "Maximum connections to return (default 20)"
    }
  },
  "required": [
    "subjects",
    "grade"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_curriculum_changes(since, subject, grade, change_type, limit)

Show what changed in BC curriculum since a given date. Detects added, removed, and modified Big Ideas, Competencies, and Content items across crawl runs. Requires at least two crawls to have change data. Args: - since (string, optional): ISO date (e.g., '2026-01-15'). Default: last 30 days. - subject (string, optional): Filter by subject slug - grade (integer, optional): Filter by grade level - change_type (string, optional): Filter by change type ('added', 'removed', 'modified', 'all'). Default 'all'. - limit (integer, optional): Max entries to return (default 50, max 100) Returns: Course-level summary of which courses changed, plus item-level detail of what specifically was added/removed/modified.

Input Schema

{
  "type": "object",
  "properties": {
    "since": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "ISO date string — show changes detected after this date (e.g., '2026-01-15'). Defaults to last 30 days."
    },
    "subject": {
      "type": "string",
      "enum": [
        "adst",
        "arts-education",
        "career-education",
        "english-language-arts",
        "languages",
        "mathematics",
        "physical-health-education",
        "science",
        "social-studies"
      ],
      "description": "BC curriculum subject slug (e.g., 'adst', 'science')"
    },
    "grade": {
      "type": "integer",
      "minimum": 0,
      "maximum": 12,
      "description": "Grade level (0=Kindergarten, 1-12)"
    },
    "change_type": {
      "type": "string",
      "enum": [
        "added",
        "removed",
        "modified",
        "all"
      ],
      "default": "all",
      "description": "Filter by type of change"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 50,
      "description": "Maximum changelog entries to return (default 50)"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_course_history(subject, grade, course)

Show the crawl history and change timeline for a specific course. Includes each crawl snapshot (date, item counts, content hash) and a changelog of all detected modifications. Args: - subject (string): Subject slug (e.g., 'science') - grade (integer): Grade level (0=K, 1-12) - course (string, optional): Course slug (e.g., 'chemistry'). If omitted, shows history for all courses at subject+grade. Returns: Timeline of crawl snapshots and detected changes per course.

Input Schema

{
  "type": "object",
  "properties": {
    "subject": {
      "type": "string",
      "enum": [
        "adst",
        "arts-education",
        "career-education",
        "english-language-arts",
        "languages",
        "mathematics",
        "physical-health-education",
        "science",
        "social-studies"
      ],
      "description": "BC curriculum subject slug (e.g., 'adst', 'science')"
    },
    "grade": {
      "type": "integer",
      "minimum": 0,
      "maximum": 12,
      "description": "Grade level (0=Kindergarten, 1-12)"
    },
    "course": {
      "type": "string",
      "description": "Course slug (e.g., 'chemistry'). If omitted, shows history for all courses at subject+grade."
    }
  },
  "required": [
    "subject",
    "grade"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded8 tools
verifiedversion not recorded8 tools