A side-by-side look at the Nope Mcp — Open Educational Resources search and Brightspace 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 Brightspace 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.BRIGHTSPACE_API_TOKEN, BRIGHTSPACE_USERNAME, BRIGHTSPACE_PASSWORD, BRIGHTSPACE_TOTP_SECRET, BRIGHTSPACE_COOKIE, BRIGHTSPACE_NO_UPDATE_CHECK.check_auth, list_my_courses, get_my_grades.Rows where the two servers differ are marked.
| Spec | N Nope Mcp — Open Educational Resources search | |
|---|---|---|
| Category | Education | Education |
| Quality signal | 52/100 · Good | 55/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 | BRIGHTSPACE_API_TOKENBRIGHTSPACE_USERNAMEBRIGHTSPACE_PASSWORDBRIGHTSPACE_TOTP_SECRETBRIGHTSPACE_COOKIEBRIGHTSPACE_NO_UPDATE_CHECK |
| Verified owner | Community listing | Community listing |
| GitHub stars | 1 | 13 |
| Directory activity | 0 views 0 installs 0 upvotes | 1 views 0 installs 0 upvotes |
| Tools | 18 | 29 |
| Full listing | View Nope Mcp — Open Educational Resources search | View Brightspace |
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.check_authVerify authentication and show the active user identitylist_my_coursesList all enrolled coursesget_my_gradesGet grades for a courseget_assignmentsList assignments and dropbox foldersget_assignment_filesDownload and read instructor-posted assignment filesget_upcoming_due_datesList assignments due in the next N daysget_feedbackRead the grade, instructor comments and per-criterion rubric results for an assignmentget_assignment_rubricShow an assignment's grading rubric (criteria, levels, points, descriptions)get_my_submissionsList and download the files you (or your group) submitted, even after the folder closesget_syllabusFetch the course syllabusget_course_contentBrowse modules and topics (includes topic IDs)get_topic_fileDownload and read a content topic file (DOCX, PDF, HTML, plain text)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": {
"brightspace": {
"command": "npx",
"args": [
"-y",
"brightspace-mcp@latest"
],
"env": {
"BRIGHTSPACE_API_TOKEN": "YOUR_BRIGHTSPACE_API_TOKEN_HERE",
"BRIGHTSPACE_USERNAME": "YOUR_BRIGHTSPACE_USERNAME_HERE",
"BRIGHTSPACE_PASSWORD": "YOUR_BRIGHTSPACE_PASSWORD_HERE",
"BRIGHTSPACE_TOTP_SECRET": "YOUR_BRIGHTSPACE_TOTP_SECRET_HERE",
"BRIGHTSPACE_COOKIE": "YOUR_BRIGHTSPACE_COOKIE_HERE",
"BRIGHTSPACE_NO_UPDATE_CHECK": "YOUR_BRIGHTSPACE_NO_UPDATE_CHECK_HERE"
}
}
}
}