pdg6 avatar

BC Curriculum

pdg6/bc-curriculum-mcp-server

Gives BC teachers and curriculum designers structured access to the entire K-12 British Columbia curriculum through 12 tools that query Big Ideas, Curricular Competencies, Content standards, and Core Competencies. Crawls curriculum.gov.bc.ca into a SQLite database and exposes operations like bc_get_course_curriculum, bc_get_grade_progression, bc_get_competency_connections, and bc_search_cross_curricular. Runs as a hosted HTTP endpoint on Fly.io or locally via stdio. Reach for this when building lesson plans, analyzing how concepts build across grades, finding cross-subject connections, or grounding curriculum questions in official BC Ministry of Education data without manually navigating the JavaScript-heavy government site.

tools
8
transport
STDIO, HTTP
last updated
Mar 27, 2026

Install

From registry metadata
$ npx add-mcp https://bc-curriculum-mcp.fly.dev/mcp --name bc-curriculum

Run in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.

Review the command, arguments and environment values before installing. MCP servers run with your local permissions.

Other ways

Claude Code

$ claude mcp add --transport http bc-curriculum https://bc-curriculum-mcp.fly.dev/mcp

Run in your terminal. Add --scope user to make it available in every project.

Tools

Verified live · 8 tools

Verified live against the running server on Nov 6, 2026.

search_curriculumSearch 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 comp...5 params

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 comp...

Parameters* required
content_typestring
Type of curriculum content to filter byone of big_idea · competency · content_item · elaboration · assessment · instructional_sampledefault: all
gradeinteger
Grade level (0=Kindergarten, 1-12)
limitinteger
Maximum results to return (default 10)default: 10
query*string
Natural language search query (e.g., 'empathetic design thinking')
subjectstring
BC curriculum subject slug (e.g., 'adst', 'science')one of adst · arts-education · career-education · english-language-arts · languages · mathematics
get_course_curriculumGet 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'...3 params

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'...

Parameters* required
coursestring
Course slug (e.g., 'technology-explorations'). If omitted, returns all courses for subject+grade.
grade*integer
Grade level (0=Kindergarten, 1-12)
subject*string
BC curriculum subject slug (e.g., 'adst', 'science')one of adst · arts-education · career-education · english-language-arts · languages · mathematics
get_grade_progressionShow 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 thre...

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 thre...

No parameters. Call it with no arguments.

get_competency_connectionsFind 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): Wher...2 params

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): Wher...

Parameters* required
competency_text*string
A competency description to find connections for
scopestring
Where to search for related competenciesone of same_subject · cross_subject · alldefault: all
list_coursesList 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)...2 params

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)...

Parameters* required
gradeinteger
Grade level (0=Kindergarten, 1-12)
subjectstring
BC curriculum subject slug (e.g., 'adst', 'science')one of adst · arts-education · career-education · english-language-arts · languages · mathematics
search_cross_curricularFind 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.,...5 params

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.,...

Parameters* required
focusstring
Which curriculum element to compare across subjectsone of big_ideas · competencies · content · alldefault: all
grade*integer
Grade level (0=Kindergarten, 1-12)
limitinteger
Maximum connections to return (default 20)default: 20
querystring
Optional: narrow to a specific concept (e.g., 'evidence', 'design thinking')
subjects*array
Two or more subject slugs to compare (e.g., ['science', 'adst'])
get_curriculum_changesShow 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:...5 params

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:...

Parameters* required
change_typestring
Filter by type of changeone of added · removed · modified · alldefault: all
gradeinteger
Grade level (0=Kindergarten, 1-12)
limitinteger
Maximum changelog entries to return (default 50)default: 50
sincestring
ISO date string — show changes detected after this date (e.g., '2026-01-15'). Defaults to last 30 days.
subjectstring
BC curriculum subject slug (e.g., 'adst', 'science')one of adst · arts-education · career-education · english-language-arts · languages · mathematics
get_course_historyShow 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) -...3 params

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) -...

Parameters* required
coursestring
Course slug (e.g., 'chemistry'). If omitted, shows history for all courses at subject+grade.
grade*integer
Grade level (0=Kindergarten, 1-12)
subject*string
BC curriculum subject slug (e.g., 'adst', 'science')one of adst · arts-education · career-education · english-language-arts · languages · mathematics

Sponsors

Readme

BC Curriculum MCP Server

An MCP (Model Context Protocol) server that gives BC teachers structured access to the entire BC Ministry of Education K–12 curriculum. Connect with one line of config — no installs, no accounts, no technical setup.

Author: Paul de Groot — Vancouver, BC

What It Does

This server crawls curriculum.gov.bc.ca and makes the full BC K–12 curriculum queryable through 12 MCP tools. Teachers and curriculum designers can ask natural-language questions about Big Ideas, Curricular Competencies, Content standards, grade progressions, cross-subject connections, and more — grounded in the actual published curriculum data.

Data Coverage


View the full README on GitHub

Details

Repository
github.com/pdg6/bc-curriculum-mcp-server
Package
bc-curriculum-mcp-server
Transport
STDIO, HTTP
Registry
MCP registry, active
Tools verified
Nov 6, 2026