# BC Curriculum (remote · bc-curriculum-mcp.fly.dev)

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

- Trust score: 71/100 (medium)
- Change this week: +6
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `bc-curriculum-mcp.fly.dev`: 71/100 (this document), [markdown](https://verifymcp.io/servers/pdg6-bc-curriculum/bc-curriculum-mcp.md), [page](https://verifymcp.io/servers/pdg6-bc-curriculum/bc-curriculum-mcp)
- npm · `bc-curriculum-mcp-server`: 35/100, [markdown](https://verifymcp.io/servers/pdg6-bc-curriculum/bc-curriculum-mcp-server.md), [page](https://verifymcp.io/servers/pdg6-bc-curriculum/bc-curriculum-mcp-server)

## Channel facts

- Endpoint: `https://bc-curriculum-mcp.fly.dev/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.1.1`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 74/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 64/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1685 tokens (~210/item across 8 items; 8 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http pdg6-bc-curriculum https://bc-curriculum-mcp.fly.dev/mcp
```

### Codex

```toml
[mcp_servers.pdg6-bc-curriculum]
url = "https://bc-curriculum-mcp.fly.dev/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "pdg6-bc-curriculum": {
      "type": "remote",
      "url": "https://bc-curriculum-mcp.fly.dev/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add pdg6-bc-curriculum --url https://bc-curriculum-mcp.fly.dev/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  pdg6-bc-curriculum:
    url: "https://bc-curriculum-mcp.fly.dev/mcp"
```

### Other

```json
{
  "mcpServers": {
    "pdg6-bc-curriculum": {
      "type": "http",
      "url": "https://bc-curriculum-mcp.fly.dev/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 71, +1)

No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-31 (score 70, +3)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-29 (score 67, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-28 (score 66, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-27 (score 65, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 65)

First indexed and scored.

## MCP tools (8)

### `search_curriculum` (~275 tokens)

Search BC 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.

Input parameters:

- `content_type` (string): Type of curriculum content to filter by
- `grade` (integer): Grade level (0=Kindergarten, 1-12)
- `limit` (integer): Maximum results to return (default 10)
- `query` (string, required): Natural language search query (e.g., 'empathetic design thinking')
- `subject` (string): BC curriculum subject slug (e.g., 'adst', 'science')

### `get_course_curriculum` (~211 tokens)

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.

Input parameters:

- `course` (string): Course slug (e.g., 'technology-explorations'). If omitted, returns all courses for subject+grade.
- `grade` (integer, required): Grade level (0=Kindergarten, 1-12)
- `subject` (string, required): BC curriculum subject slug (e.g., 'adst', 'science')

### `get_grade_progression` (~200 tokens)

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.

### `get_competency_connections` (~116 tokens)

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.

Input parameters:

- `competency_text` (string, required): A competency description to find connections for
- `scope` (string): Where to search for related competencies

### `list_courses` (~128 tokens)

List BC 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.

Input parameters:

- `grade` (integer): Grade level (0=Kindergarten, 1-12)
- `subject` (string): BC curriculum subject slug (e.g., 'adst', 'science')

### `search_cross_curricular` (~276 tokens)

Search Cross-Curricular Connections

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

- `focus` (string): Which curriculum element to compare across subjects
- `grade` (integer, required): Grade level (0=Kindergarten, 1-12)
- `limit` (integer): Maximum connections to return (default 20)
- `query` (string): Optional: narrow to a specific concept (e.g., 'evidence', 'design thinking')
- `subjects` (array, required): Two or more subject slugs to compare (e.g., ['science', 'adst'])

### `get_curriculum_changes` (~289 tokens)

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.

Input parameters:

- `change_type` (string): Filter by type of change
- `grade` (integer): Grade level (0=Kindergarten, 1-12)
- `limit` (integer): Maximum changelog entries to return (default 50)
- `since` (string): ISO date string — show changes detected after this date (e.g., '2026-01-15'). Defaults to last 30 days.
- `subject` (string): BC curriculum subject slug (e.g., 'adst', 'science')

### `get_course_history` (~190 tokens)

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.

Input parameters:

- `course` (string): Course slug (e.g., 'chemistry'). If omitted, shows history for all courses at subject+grade.
- `grade` (integer, required): Grade level (0=Kindergarten, 1-12)
- `subject` (string, required): BC curriculum subject slug (e.g., 'adst', 'science')

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/pdg6-bc-curriculum/bc-curriculum-mcp#diagnostics

## Score history

- 2026-08-03: 71
- 2026-08-02: 71
- 2026-08-01: 70
- 2026-07-31: 70
- 2026-07-30: 67
- 2026-07-29: 67
- 2026-07-28: 66
- 2026-07-27: 65
- 2026-07-26: 65

## Links

- Remote endpoint: https://bc-curriculum-mcp.fly.dev/mcp
- Repository: https://github.com/pdg6/bc-curriculum-mcp-server
- Changelog RSS feed: https://verifymcp.io/servers/pdg6-bc-curriculum/bc-curriculum-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/pdg6-bc-curriculum/bc-curriculum-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/pdg6-bc-curriculum/bc-curriculum-mcp
