BC Curriculum
Query the full BC K-12 curriculum: Big Ideas, Competencies, Content, and more.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
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
1.1.1stdioRemote endpoints
https://bc-curriculum-mcp.fly.dev/mcpstreamable-httpWhat it can do
Tool inventory
Tools (8)
🟢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
Evidence