Context7
Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.
Description from the maker (original English)
Search German open educational resources (OER) via AMB/schema.org metadata, open licenses only.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Works in Claude on the web, desktop and mobile:
https://mcp.edufeed.org/mcpRun this in your terminal
claude mcp add --transport http nope https://mcp.edufeed.org/mcpPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"nope": {
"url": "https://mcp.edufeed.org/mcp"
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"nope": {
"type": "http",
"url": "https://mcp.edufeed.org/mcp"
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
ChatGPT connects only to servers on the internet:
https://mcp.edufeed.org/mcpMenu names can differ slightly by plan and over time.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
We have not read this server’s tool list yet; we check endpoints in rotation.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified against the domain edufeed.org (the registry checks domain ownership)
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Not checked yet; we check endpoints in rotation
Not checked yet; we check endpoints in rotation
Not checked yet; we read the tool list when we check the endpoint
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs in the maker’s cloud. Connect over the internet with nothing to install, but what you send passes through the maker’s servers.
The GitHub repo last changed –, and the latest version (0.4.0) reached the registry 35 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.
In the same category: Context7, Codebase Memory, Exa
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Connect AI agents to Exa for web search, content fetching, and multi-step research.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
An MCP (Model Context Protocol) server for querying educational resources from AMB (Allgemeines Metadatenprofil für Bildungsressourcen) Nostr relays.
The canonical repository lives on Nostr (NIP-34) — browse it on gitworkshop.dev, or clone with the ngit remote helper:
git clone nostr://laoc.xyz/relay.ngit.dev/amb-mcp
Mirrors: git.edufeed.org/edufeed/nope-mcp · github.com/edufeed-org/nope-mcp. Issues and PRs are welcome on any of the three — Nostr PRs arrive as pr/* branches.
Releases are tagged (v0.1.0, …) and listed in CHANGELOG.md.
server.json is the manifest nope-mcp publishes to the official MCP Registry as org.edufeed/nope-mcp, pointing at the https://mcp.edufeed.org/mcp remote. Its version always matches package.json (enforced by test/server-json.test.ts).
Publishing is done with the registry's mcp-publisher CLI after DNS-based domain verification of edufeed.org (the registry proves ownership of the org.edufeed namespace via a TXT record, not a secret the CLI holds) — there is no key to manage and no command embeds one.
search_content) across educational resources, long-form articles, wikis, transferkiosk projects/measures, and NKBIP-01 scientific publications in one ranked callsearch_passages) — answers a question from the corpus's fulltext with citations, scoped by a grimoire spell (kind 777) or inline scope; requires the indexerresolve_author) for author-scoped queriesskos_*)extract_metadata(url | urls, variant, skosSchemes?) — fetch one or more public web pages, PDFs or office documents (docx/pptx/xlsx, odt/odp/ods, legacy doc/ppt; detected by content, not file name) and produce a complete AMB/EKW form-prefill payload. Returns OpenGraph fallback by default; with ANTHROPIC_API_KEY set, an LLM grounded in the configured SKOS vocabularies fills SKOS-typed fields with concept IDs and per-field evidence quotes. Concept ids follow NIP-VOCAB: the concept's i URI when it has one, else the canonical relay-less nostr:naddr1… of its kind-39738 event (never the raw 39738: : ). With several urls the first is authoritative; later sources that cannot be used (images, archives and other unreadable bodies → unsupported_type, fetch failures → fetch_failed, bodies over the size cap → page_too_large) are skipped and listed in skippedSources: [{url, code, reason}]. A failing first source fails the call with the same codes.import { extractMetadata } from 'nope-mcp/lib' for direct in-process use (e.g. SvelteKit server routes).bun install
Copy .env.example to .env and configure:
cp .env.example .env
| Name | Used by | Default | Description |
|---|---|---|---|
AMB_RELAYS | all transports | wss://relay.edufeed.org | Comma-separated AMB relay URLs. Queried by every content tool (search_content, search_resources, get_resource, browse_*, resolve_author, relay_stats) and used as default publish targets for the signing tools. |
AMB_EXTRA_RELAYS | all transports | _(empty)_ | Comma-separated AMB relay URLs that are *selectable but not searched by default*. search_content, search_resources, and get_resource accept a relays parameter naming relays from AMB_RELAYS ∪ AMB_EXTRA_RELAYS (anything else is rejected); list_relays advertises both groups as defaultRelays/extraRelays. Use this to expose alternative corpora (e.g. the OERSI and SODIX aggregation relays, wss://oersi.edufeed.org,wss://sodix.edufeed.org) on request without merging them into every search. Over HTTP this list also feeds the ?relays= connector parameter — see Choosing a connector's default relays. |
AMB_AUTHOR_SETS | all transports | _(empty)_ | Comma-separated naddr identifiers of NIP-51 follow sets (kind 30000). Loaded once at startup into the author directory served by list_known_authors; the returned pubkeys can then be passed to search_* tools as authors. |
CALENDAR_RELAYS | all transports | wss://relay.edufeed.org | Comma-separated NIP-52 calendar relay URLs for search_calendar_events. The AMB relay serves calendar events itself, so the default is the same relay; set this only for split deployments with a dedicated calendar relay. |
CALENDAR_AUTHOR_SETS | all transports | _(empty)_ | Same as AMB_AUTHOR_SETS, but for the calendar author directory served by list_calendar_authors. |
INDEXER_ENDPOINTS | search_passages | _(unset — tool disabled)_ | Comma-separated wss://relay=https://indexer pairs mapping each AMB relay to its amb-indexer base URL. Enables search_passages. |
INDEXER_API_TOKEN | search_passages | _(unset)_ | Bearer token for the indexer's /search_chunks (shared default for all endpoints). |
INDEXER_API_TOKENS | search_passages | _(unset)_ | Per-relay token overrides, comma-separated wss://relay=token pairs — each deployed indexer instance has its own token. Every INDEXER_ENDPOINTS entry must be covered by this or INDEXER_API_TOKEN; a partially tokened config fails at startup. |
LICENSE_FILTER_MAX | all transports | any | Ceiling for the learning-resource licenseFilter search parameter: open (CC0, Public Domain, CC BY, CC BY-SA, their DINI-AG-KIM license-type equivalents, and free software/documentation licenses: GPL, LGPL, AGPL, GFDL, MIT, Apache 2.0, BSD), cc-any (all of open plus every other Creative Commons license, incl. KIM non-commercial/no-derivatives) or any (also unlicensed and all-rights-reserved resources). A wider request is narrowed to the ceiling; search_resources, search_content and search_passages report the applied filter as licenseFilter and adds licenseFilterClamped: true when it narrowed. Other content kinds carry no license and are always included; get_resource is never filtered. An invalid value fails at startup. The legacy OPEN_LICENSES_ONLY=true still maps to open (false/0/no/off to any) when LICENSE_FILTER_MAX is unset, with a deprecation log line. |
RELAY_QUERY_TIMEOUT_MS | all transports | 25000 | Per-query timeout (milliseconds) for search_resources, search_content, and every other relay read. On a timeout the events already received are returned (not discarded) and the relay is reported in relaysIncomplete/timedOut diagnostics; the stalled subscription is closed rather than left open. Raise this if a relay routinely answers slower than the default (the amb-relay's own search budget is ~20s). An invalid (non-numeric or non-positive) value fails at startup. |
SPELL_RELAYS | search_passages | wss://relay.edufeed.org | Relays to fetch kind-777 spells (and kind-3 contact lists) from. |
LOG_LEVEL | all transports | info | Per-tool-call logging on stderr (stdout belongs to the stdio transport). Every call emits one JSON line: {"ts":"2026-09-14T12:00:00.000Z","tool":"search_passages","ms":412,"ok":true,"session":" ","args":{"question":"…","kinds":[30142]}} — ok is false for isError results, thrown errors, and text results whose JSON body carries an error code (typed failures such as relay_unreachable) — error then holds the message or code; strings in args are cut at 120 chars, arrays longer than five collapse to {length, head}. info (default) logs every call, warn/error log failures only, silent disables the lines. |
EDUFEED_APP_BASE_URL | all transports | _(unset)_ | Frontend base URL (no trailing slash, e.g. https://app.edufeed.org). When set, results from search_content, search_resources, get_resource, and search_calendar_events include a url field pointing at the edufeed-app viewer page ( / ) so LLM clients can render direct links. Unset means no url field. |
SERVER_PRIVATE_KEY | src/index.ts (+ discovery scripts) | required for Nostr transport | Nostr private key (nsec or hex) that is the server's own ContextVM identity. The derived pubkey is what clients connect to via cvmi use . Not read by the stdio or HTTP transports. |
RELAYS | src/index.ts (+ discovery scripts) | wss://relay.contextvm.org, wss://cvm.otherstuff.ai | Comma-separated relay URLs for ContextVM transport announcements and request/response traffic. Not read by the stdio or HTTP transports. |
ANTHROPIC_API_KEY | extract_metadata | _(unset)_ | Enables LLM-grounded SKOS field extraction. When unset the tool degrades gracefully to OpenGraph/JSON-LD-only output. |
ANTHROPIC_MODEL | extract_metadata | claude-sonnet-4-6 | Override the Anthropic model used for extraction. |
SKOS_SCHEMES | extract_metadata | _(unset)_ | JSON map { " ": " " } of default vocabularies used when the caller does not pass skosSchemes explicitly. |
VOCAB_RELAYS | extract_metadata | falls back to AMB_RELAYS | Relays used to resolve naddr1… SKOS scheme identifiers to relay-hosted vocabularies. |
SCHEME_NADDR_* | extract_metadata | _(unset)_ | Per-vocabulary naddr overrides (e.g. SCHEME_NADDR_HCRT, SCHEME_NADDR_SCHULFAECHER) mapping well-known scheme URIs to relay-hosted SKOS vocabularies. See .env.example for the full list. |
HTTP_*, OAUTH_* | src/http.ts only | see below | HTTP bind and OAuth resource-server settings — documented under Option 4. |
EMBED_TOKEN | docker-compose.yml only | _(unset)_ | Token for the embedding service used by the bundled local test relay. Not read by the server itself. |
claude mcp add nope-mcp -- bun run /path/to/nope-mcp/src/stdio.ts
This uses the default public relay (wss://relay.edufeed.org). To point at another relay — e.g. the local docker relay from Development — add -e AMB_RELAYS=ws://localhost:3337.
Start the server:
cvmi serve -- bun run src/stdio.ts
Connect from another machine:
cvmi use <server-pubkey>
bun run src/index.ts
For web-based MCP clients (Claude.ai connectors, MCP Inspector, custom browser apps):
bun run src/http.ts # dev
node dist/http.js # production (after npm run build)
| Variable | Default | Description |
|---|---|---|
HTTP_PORT | 3000 | Port to bind. |
| HTTP_HOST | 0.0.0.0
Only the beginning is shown; read the rest in the repo