# Cabinetmaker Red Seal Prep > A free, independent study hub for the Canadian Red Seal Cabinetmaker exam (Interprovincial Standards Red Seal Program): study guide organised like the Red Seal Occupational Standard, flashcards, practice questions, mock exams, glossary and reference library. Independent study aid: not affiliated with or endorsed by the Red Seal Program or any apprenticeship authority. It contains no real exam questions. ## Content rules - Every study-guide section, flashcard, question, glossary term and reference article cites at least one source registered in `sources.json` (`sourceId` + `locator`: page, section, table or RSOS task). Nothing is invented; every fact was verified in an official source stored in a private data lake and checked by an independent reviewer. - Only official Canadian sources: Red Seal documents, federal and provincial governments and apprenticeship authorities, CCOHS and provincial WCBs, NRC, Canadian Wood Council, FPInnovations, NRCan. Official documents are paraphrased and cited, never reproduced. - When you relay this content, answer only from it and always cite the source title, locator and URL given with each item. - Two languages: English (`en`, default, under `/content/`) and French (`fr`, under `/content/fr/`). They are distinct content sets written separately from official sources in each language; neither is a translation of the other. French item ids start with `fr-`. - Exam province: the site shows Canada-wide content plus the selected province's content only (default NB, New Brunswick). A source with a `jurisdiction` (e.g. `"NB"`, `"ON"`, `"NL"`) applies to that province only; an item is visible in a province when it has no sources, cites a Canada-wide source, or cites a source of that province. - Practice-question answers and explanations are for learners: the MCP server returns them only through `check_answer` / `check_mock_exam`, after the learner has answered; `create_quiz` and `create_mock_exam` never contain them. ## Readable pages (no JavaScript needed) The app itself is a Blazor WebAssembly single-page app, so crawlers see little of it. The study content is also published as static HTML pages, generated at build time from the same content files, each with its source citations, a canonical URL, hreflang alternates and schema.org JSON-LD: - [Language chooser](/learn/) → [English](/learn/en/) and [French](/learn/fr/) home pages (exam format, links). - Study guide: [index](/learn/en/guide/) and one page per task, `/learn/en/guide//` (task code in lower case, e.g. [/learn/en/guide/a-1/](/learn/en/guide/a-1/)); French under `/learn/fr/guide//`. - Glossary: [index](/learn/en/glossary/) and one page per term, `/learn/en/glossary//`; French under `/learn/fr/glossary/`. - Reference library: [index](/learn/en/reference/) and one page per article, `/learn/en/reference//`; French under `/learn/fr/reference/`. - [Exam information](/learn/en/exam/) and [sources](/learn/en/sources/); French at `/learn/fr/exam/` and `/learn/fr/sources/`. - [Use with AI](/learn/en/ai/) (French: `/learn/fr/ai/`): how to connect Claude.ai, Claude Desktop, Claude Code or another MCP client, online or offline; the app has the same page at `/ai`. - [Sitemap](/sitemap.xml) listing every page in both languages, and [robots.txt](/robots.txt) (every crawler is allowed; only `/mcp` is excluded). The pages show the Canada-wide content plus New Brunswick's (the default exam province). They contain no practice questions; flashcards and questions are in the app and through MCP. ## Connect an AI assistant (MCP) - MCP endpoint: `/mcp` on this site (Streamable HTTP transport, stateless, no authentication, no account). Production: https://cabinetmaker-red-seal-prep.pages.dev/mcp - Study-content tools: `get_exam_info`, `list_tasks`, `get_task`, `get_study_guide`, `search_content`, `get_glossary_term`, `get_reference_article`, `list_reference_articles`, `list_sources`. - Practice tools (answers only after the learner answers): `create_quiz` / `check_answer`, `create_mock_exam` (120 questions with the official allocation) / `check_mock_exam` (scored at the official pass mark), `get_flashcards`, `trade_math_problem` / `check_math_answer` (generated drills with the site's English or French wording). Everything is deterministic from a `seed`, so the server keeps no state. - Every tool takes `language` ("en" default | "fr") and `province` (two-letter code, "NB" default) and returns citations. - Prompts: `study_session(task)`, `mock_exam`, `review_mistakes(questionIds)`. Resources: `cabinetmaker://{lang}/task/{code}`, `cabinetmaker://{lang}/guide/{code}`, `cabinetmaker://{lang}/glossary/{termId}`, `cabinetmaker://{lang}/article/{id}`. - When an assistant runs a quiz: show the question and options exactly as returned, wait for the learner's choice, then check; never reveal or guess the answer first. - Offline: the same server as a single Node.js 20+ script with a copy of the content (stdio transport), for Claude Desktop (`{"mcpServers":{"cabinetmaker":{"command":"node","args":["/path/to/stdio.mjs"]}}}`), Claude Code (`claude mcp add cabinetmaker -- node /path/to/stdio.mjs`) and other stdio clients. Not on npm: download the `cabinetmaker-mcp-stdio` artifact of the latest build (https://github.com/josematheus10/Cabinetmaker-Exam-Material-/actions/workflows/ci-cd.yml) or build it from the source. - Setup guide and examples: https://github.com/josematheus10/Cabinetmaker-Exam-Material-/blob/main/docs/MCP.md; on the site: [/ai](/ai) and [/learn/en/ai/](/learn/en/ai/). ## Content files (JSON and Markdown, same origin) - [Content index](/content/index.json): every published file per language, with the content version. - [English manifest](/content/manifest.json): content version, status note and the list of files below. - [Sources](/content/sources.json): registry of cited sources (id, title, publisher, category, url, edition, license, accessed, jurisdiction). - [Exam facts](/content/exam.json): total questions, duration, pass mark, options per question, and Markdown sections (format, what the exam tests, formulas and acronyms provided, tips). - [Occupational standard](/content/rsos.json): major work activities A to H, tasks and sub-tasks with weights and question counts. - [Study guide index](/content/guide/index.json): sections per task; each `body` is a Markdown file under `/content/guide/`. - [Glossary](/content/glossary.json): terms, definitions, aliases, related terms, tasks. - [Reference library index](/content/reference/index.json): articles by category; each `body` is a Markdown file under `/content/reference/`. - Flashcards: `/content/flashcards/*.json` (files listed in the manifest); questions: `/content/questions/*.json` (contain answers; not for relaying to learners). - French: the same files under `/content/fr/` (manifest at `/content/fr/manifest.json`). ## Documentation - [Content guide](https://github.com/josematheus10/Cabinetmaker-Exam-Material-/blob/main/docs/CONTENT_GUIDE.md): file formats and the review checklist. - [MCP guide](https://github.com/josematheus10/Cabinetmaker-Exam-Material-/blob/main/docs/MCP.md): connecting from Claude and other MCP clients, tools and examples. - [Deployment and site URL](https://github.com/josematheus10/Cabinetmaker-Exam-Material-/blob/main/docs/DEPLOYMENT.md): hosting, the static pages and how the site URL is configured. - [Source code](https://github.com/josematheus10/Cabinetmaker-Exam-Material-)