A side-by-side look at the Nope Mcp — Open Educational Resources search and BC Curriculum MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Nope Mcp — Open Educational Resources search for education work; choose BC Curriculum for education as a local process. You can also run both side by side in one mcpServers block.
SERVER_PRIVATE_KEY.search_resources, search_content, get_resource.bc_search_curriculum, bc_get_course_curriculum, bc_get_grade_progression.Rows where the two servers differ are marked.
| Spec | N Nope Mcp — Open Educational Resources search | |
|---|---|---|
| Category | Education | Education |
| Quality signal | 52/100 · Good | 52/100 · Good |
| Install command | Not confirmed yet | Confirmed |
| Transport | — | Local subprocess (stdio) |
| Auth | Not declared | Not declared |
| Pricing | Not declared | Not declared |
| Required env vars | SERVER_PRIVATE_KEY | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 1 | 0 |
| Directory activity | 0 views 0 installs 0 upvotes | 3 views 0 installs 0 upvotes |
| Tools | 18 | 12 |
| Full listing | View Nope Mcp — Open Educational Resources search | View BC Curriculum |
search_resourcesSearch for educational resources (learning materials, courses, videos, etc.) using full-text search and metadata filters. Returns resources matching the query from the AMB relay. Only openly licensed resources are returned (CC0, Public Domain, CC BY, CC BY-SA); NC/ND, all-rights-reserved and unlicensed resources are left out. NOTE: the metadata filters (publisherName, creatorName, subjectLabel, resourceTypeLabel, educationalLevelLabel) are EXACT full-string matches against the stored metadata (case-insensitive) — not fuzzy or substring searches. A guessed spelling silently returns 0 results; use resolve_publisher to find the canonical actor spelling first. On a zero-match actor filter the response includes actorCandidates with similar spellings to retry with.search_contentTopic search across ALL content types on the relay in one ranked call: educational resources (kind 30142), long-form articles/blogs (30023), wikis (30818), projects (30143), measures (30144), and NKBIP-01 publications (30040 indices + 30041 sections — scientific articles, books). Results are interleaved and ranked by semantic passage match, and each carries the matched passage ("snippet") when available — use it to answer the user, not just list links. Educational resources are returned only when openly licensed (CC0, Public Domain, CC BY, CC BY-SA); the other content types carry no license and are all included. This is the tool for DISCOVERY intent — the user wants materials to browse ("finde/suche/empfiehl Materialien zu X"): present the items. For QUESTION intent — the user wants an answer built from the content ("wie/warum/was hilft bei X?") — prefer search_passages, which returns quotable fulltext passages with citations; this tool then supplements the answer with browsable links. Each result carries eventAuthor (the Nostr signer who uploaded the event — often an aggregator) plus, for resources, creator/publisher (who actually made and published the resource); these can differ, so do not treat eventAuthor as the publisher. For full metadata (license, dates, complete entity lists) pass a result's naddr to get_resource. Publication facets ride inside the query string as NIP-50 field filters: append type:academic, doi:10.1234/abcd.5678, keywords:<term>, or partOf:30143:<pubkey>:<d> ("publications of a project") to the query — the relay resolves them server-side. When presenting results to the user, render each as a markdown link so they can open it directly — prefer sourcePage (the original external source page, present on most resources and on projects/measures/publications), then url, then naddr. For upcoming events on the same topic, follow up with search_calendar_events.get_resourceRetrieve a single piece of content by naddr (preferred — pass a search_content result's naddr), d-tag identifier, or event ID. naddrs of ANY content type from search_content work (resources, articles, wikis, projects, measures, publications); non-resource kinds return the same shape as their search results. Bare identifier/eventId lookups (no naddr) always resolve the full educational-resource metadata (kind 30142), including creator/publisher and educational properties. Lookups are not license-filtered: a learning resource carries openLicense (true for CC0, Public Domain, CC BY, CC BY-SA — the open licenses that search results are currently limited to). When presenting the resource, render a markdown link the user can open: prefer its sourcePage (the original source page); fall back to url (the edufeed viewer) only when sourcePage is absent.browse_subjectsList available subjects/topics in the educational resource collection. Returns subjects with their labels and resource counts.browse_resource_typesList available learning resource types (Video, Course, Worksheet, etc.) with resource counts.browse_educational_levelsList available educational levels (Primary, Secondary, Higher Education, etc.) with resource counts.relay_statsGet information about all selectable AMB relays (default and extra), including supported NIPs, relay name, and description.list_relaysList the configured AMB relays. defaultRelays are searched on every query; extraRelays hold different corpora (e.g. the OERSI aggregation) and are only searched when a search/get tool call passes them in its relays parameter.relay_list_getGet a user's NIP-65 relay list (kind 10002). Returns read and write relays for the specified pubkey. If no pubkey provided, uses the connected signer's pubkey.skos_get_vocabularyFetch and parse a SKOS vocabulary from its URI. Returns the concept scheme with all concepts organized hierarchically.skos_get_conceptGet details of a single SKOS concept by its URI, including broader, narrower, and related concepts.skos_searchSearch for concepts in a SKOS vocabulary. By default searches prefLabel, altLabel, hiddenLabel, and definition.bc_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 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_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', '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_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 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_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): Where to search ('same_subject', 'cross_subject', 'all'). Default 'all'.
Returns: Related competencies from other courses/subjects with similarity ranking.Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
No confirmed install command for Nope Mcp — Open Educational Resources search yet — follow the setup steps linked from its listing page rather than a guessed package name.
{
"mcpServers": {
"bc-curriculum": {
"command": "npx",
"args": [
"-y",
"bc-curriculum-mcp-server"
]
}
}
}
bc_get_core_competenciesGet 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_resourcesGet 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_fpplGet 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_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)
Returns: List of courses with subject, grade, name, and URL.bc_get_crawl_statusCheck 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_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., ['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_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: 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_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)
- 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.