# BC Curriculum [Health: Active]

**Category:** 🎓 Education  
**Repository:** https://github.com/pdg6/bc-curriculum-mcp-server  
**GitHub Stars:** 0  
**npm Downloads (last month):** 194  
**Views:** 3  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/bc-curriculum

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

## Tools
Capabilities this server exposes over MCP:

- **bc_search_curriculum** — 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.
- **bc_get_course_curriculum** — 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.
- **bc_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.
- **bc_get_competency_connections** — 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.
- **bc_get_core_competencies** — Get BC Core Competencies (Communication, Thinking, Personal/Social) with proficiency profiles. These cross-cutting competencies are assessed across all subjects.

Args:
  - domain (string, optional): Filter by domain ('communication', 'thinking', 'personal_social', 'all'). Default 'all'.

Returns: Core competencies with descriptions and proficiency profile levels.
- **bc_get_assessment_resources** — Get BC assessment practices, classroom assessment resources, and reporting guidance.

Args:
  - subject (string, optional): Filter by subject slug
  - grade (integer, optional): Filter by grade level
  - resource_type (string, optional): Filter by type ('classroom-assessment', 'reporting', 'standards-based', 'all'). Default 'all'.

Returns: Assessment resources with content and type metadata.
- **bc_get_fppl** — Get the First Peoples Principles of Learning (FPPL) with descriptions and connections to curriculum areas. BC curriculum requires authentic integration of these principles.

Args:
  - subject (string, optional): Filter connections to a specific subject

Returns: FPPL principles with descriptions and subject-specific connections.
- **bc_list_courses** — 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.
- **bc_get_crawl_status** — Check when BC curriculum data was last crawled, data completeness, and any crawl errors. Use to verify data freshness before relying on results.

Args:
  - subject (string, optional): Check specific subject only

Returns: Crawl timestamps, record counts per subject, and recent errors.
- **bc_search_cross_curricular** — 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.
- **bc_get_curriculum_changes** — 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.
- **bc_get_course_history** — 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.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

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

## Documentation

## What the BC Curriculum MCP server does

The BC Curriculum MCP server makes published British Columbia K–12 curriculum data available to AI clients through MCP. Its coverage spans Kindergarten through Grade 12 and nine English-stream subject areas: ADST, Arts Education, Career Education, English Language Arts, Languages, Mathematics, Physical and Health Education, Science, and Social Studies.

Course records include the three main parts of the BC curriculum structure: Big Ideas, Curricular Competencies, and Content. The data also includes elaborations where published, along with Core Competencies, First Peoples Principles of Learning, assessment resources, and instructional samples. The project obtains this material from curriculum.gov.bc.ca rather than from a separate authored curriculum set.

## How it works

The BC Curriculum MCP server provides twelve read-oriented tools. Search can scan the collected curriculum text, while course and course-list tools return structured information for specific subjects or grades. Other tools compare progression between grade levels, identify competencies shared across subjects, retrieve cross-curricular links, and return the Communication, Thinking, and Personal and Social Core Competencies.

Additional tools expose First Peoples Principles of Learning, assessment guidance, crawl status, changes since a specified date, and the history of an individual course. These functions are useful when an agent needs to distinguish current collected data from older crawl results or inspect whether the dataset is complete.

A hosted deployment is available over MCP at `https://bc-curriculum-mcp.fly.dev/mcp`. For local operation, the server can use stdio or HTTP transport. The crawler runs separately with Playwright and headless Chromium, renders the JavaScript-heavy curriculum website, and writes the results to SQLite. The deployed service serves that prepared database without running the browser crawler.

## Setup and configuration

The simplest setup is an MCP client configuration that points to the hosted HTTP endpoint. No local package or database is needed for that option. Claude Code can also register the endpoint with its MCP command-line configuration.

For local stdio use, install Node.js 18 or newer and npm, install the package with `npx bc-curriculum-mcp-server` or globally with npm, and provide a local `bc-curriculum.sqlite` database. Running the repository from source requires cloning it, installing dependencies, installing Chromium through Playwright, and building the project. `npm run crawl -- --subject adst` performs a limited crawl; `npm run crawl:all` collects the full dataset, which the README estimates at roughly 60–90 minutes.

Set `TRANSPORT=http` when starting the source project in HTTP mode. Without that setting, `npm start` uses stdio transport.

## Limitations and notes

The hosted service is read-only and depends on its prebuilt SQLite data. The project’s local crawler is responsible for refreshing that data; it is not part of the lightweight deployed runtime. A full local dataset therefore requires running the crawl and uploading or otherwise using the resulting database.

Coverage is described as the nine English-stream subjects listed above, not every possible BC curriculum offering or language stream. Freshness and completeness should be checked with the crawl-status tool, while course history and curriculum-change tools provide context for updates. The software is MIT-licensed, but the curriculum content remains published by the BC Ministry of Education.

_Full upstream README: https://allmcps.com/mcp/bc-curriculum/readme_

