{
  "markdown": "# BC Curriculum MCP Server\n\nAn 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.\n\n**Author:** Paul de Groot — Vancouver, BC\n\n## What It Does\n\nThis server crawls [curriculum.gov.bc.ca](https://curriculum.gov.bc.ca/curriculum) 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.\n\n### Data Coverage\n\n- **Grades K–12** (Kindergarten through Grade 12)\n- **9 English-stream subjects:** ADST, Arts Education, Career Education, English Language Arts, Languages, Mathematics, Physical & Health Education, Science, Social Studies\n- **Big Ideas, Curricular Competencies, and Content** (the three-column KDU structure) with elaborations\n- **Core Competencies** (Communication, Thinking, Personal & Social)\n- **First Peoples Principles of Learning** (FPPL)\n- **Assessment resources** and **Instructional samples**\n- **Full-text search** across all curriculum content\n\n## Quick Start\n\n### Option 1: Remote server (no install needed)\n\nAdd this to your MCP config:\n\n```json\n{\n  \"mcpServers\": {\n    \"bc-curriculum\": {\n      \"type\": \"http\",\n      \"url\": \"https://bc-curriculum-mcp.fly.dev/mcp\"\n    }\n  }\n}\n```\n\nOr via Claude Code CLI:\n\n```bash\nclaude mcp add bc-curriculum --transport http --url https://bc-curriculum-mcp.fly.dev/mcp\n```\n\n### Option 2: Run locally via npx\n\n```bash\nnpx bc-curriculum-mcp-server\n```\n\nThis runs the server in stdio mode — compatible with any MCP client. You'll need a local `bc-curriculum.sqlite` database (clone the repo, install Playwright, and run the crawler — see [For Developers](#for-developers) below).\n\n### Option 3: Install globally via npm\n\n```bash\nnpm install -g bc-curriculum-mcp-server\nbc-curriculum-mcp\n```\n\nOnce connected, ask things like:\n\n- \"What are the Big Ideas for ADST grade 10?\"\n- \"Show me how science competencies build from grade 3 to 7\"\n- \"Find curriculum connections between math and ADST for grade 9\"\n- \"What are the First Peoples Principles of Learning?\"\n- \"What are the curricular competencies for Kindergarten math?\"\n\n## Available Tools\n\n| Tool | What it does |\n|---|---|\n| `bc_search_curriculum` | Full-text search across all curriculum data |\n| `bc_get_course_curriculum` | Get Big Ideas, Competencies, and Content for a course |\n| `bc_list_courses` | List all available courses (filter by subject/grade) |\n| `bc_get_grade_progression` | Trace how curriculum builds across grade levels |\n| `bc_get_competency_connections` | Find competencies shared across subjects |\n| `bc_get_core_competencies` | Get Communication, Thinking, Personal/Social competencies |\n| `bc_get_fppl` | Get First Peoples Principles of Learning |\n| `bc_get_assessment_resources` | Get assessment practices and guidance |\n| `bc_get_crawl_status` | Check data freshness and completeness |\n| `bc_search_cross_curricular` | Find curriculum connections shared between two or more subjects at a grade |\n| `bc_get_curriculum_changes` | Show what changed in curriculum since a given date |\n| `bc_get_course_history` | View crawl history and change timeline for a course |\n\n## Architecture\n\n```\n┌──────────────────────┐       ┌─────────────────────────┐\n│  Your Machine        │       │  Fly.io (free tier)     │\n│                      │       │                         │\n│  Playwright crawler  │──────▶│  Express + SQLite       │\n│  builds SQLite DB    │ SFTP  │  read-only MCP server   │\n│                      │       │  256MB RAM              │\n└──────────────────────┘       └─────────────────────────┘\n                                        │\n                                        ▼\n                               Claude Desktop / Cowork / VS Codee / Antigravity\n                               connects via MCP over HTTPS\n```\n\nThe crawler runs locally using Playwright + headless Chromium to render the JavaScript-heavy curriculum.gov.bc.ca pages. It produces a SQLite database that gets uploaded to Fly.io. The deployed server is lightweight and read-only — no browser, no crawler, just serves pre-built data over MCP.\n\n## For Developers\n\n### Prerequisites\n\n- Node.js 18+\n- npm\n\n### Setup\n\n```bash\ngit clone https://github.com/pdg6/bc-curriculum-mcp-server.git\ncd bc-curriculum-mcp-server\nnpm install\nnpx playwright install chromium\nnpm run build\n```\n\n### Crawl\n\n```bash\n# Quick test — just ADST\nnpm run crawl -- --subject adst\n\n# Full K–12 crawl (~60-90 minutes)\nnpm run crawl:all\n\n# Re-crawl everything (overwrites existing data)\nnpm run crawl:all -- --force\n```\n\n### Run Locally\n\n```bash\n# stdio transport (for local MCP clients)\nnpm start\n\n# HTTP transport (for remote connections)\nTRANSPORT=http npm start\n```\n\n## How It Works\n\nThe BC curriculum is organized in a three-column structure for every course:\n\n1. **Big Ideas** — High-level conceptual understandings\n2. **Curricular Competencies** — What students can *do* (grouped by domain)\n3. **Content** — What students should *know* (the KDU items)\n\nEach element can have **elaborations** — expandable details that clarify scope and provide examples. This server captures all three columns plus elaborations for every course across all 9 subjects and all grades K–12.\n\nThe **Core Competencies** (Communication, Thinking, Personal & Social) and **First Peoples Principles of Learning** are cross-cutting frameworks that apply across all subjects and are stored separately.\n\n## Data Source\n\nAll curriculum data is sourced from [curriculum.gov.bc.ca](https://curriculum.gov.bc.ca/curriculum), the official BC Ministry of Education curriculum website. The crawler respects the site with 1.5-second delays between requests.\n\n## License\n\nMIT — see [LICENSE](./LICENSE).\n\nThe curriculum content itself is published by the [BC Ministry of Education](https://curriculum.gov.bc.ca). This project provides structured access to that publicly available data.\n",
  "bytes": 6140,
  "sha": "c3a83c344eb856ed6b972ff1fb30809ac1a7c6e39490a3346677a4422075286c",
  "repo_slug": "pdg6/bc-curriculum-mcp-server",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_pdg6_bc_curriculum_fa80ca7d/readme"
}