Context7
Up-to-date docs for AI agents
作者提供的说明(英文原文)
Search German open educational resources (OER) via AMB/schema.org metadata, open licenses only.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
适用于网页版、桌面版和手机版 Claude:
https://mcp.edufeed.org/mcp在终端中运行这条命令
claude mcp add --transport http nope https://mcp.edufeed.org/mcp粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"nope": {
"url": "https://mcp.edufeed.org/mcp"
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"nope": {
"type": "http",
"url": "https://mcp.edufeed.org/mcp"
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
ChatGPT 只能连接互联网上的服务器:
https://mcp.edufeed.org/mcp菜单名称可能因套餐和版本不同而略有差异。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
我们还没有读取这个服务器的工具列表;我们会轮流检查各个端点。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过域名 edufeed.org 验证(注册中心会核实域名所有权)
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
尚未检查;我们会轮流检查各个端点
尚未检查;我们会轮流检查各个端点
尚未检查;我们会在检查端点时读取工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在作者的云端运行。通过互联网连接,无需安装,但你发送的内容会经过作者的服务器。
GitHub 仓库最后更新于–,最新版本(0.4.0)于35天前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。它通过 URL 连接,所以接受远程 MCP 服务器的应用也可以使用,例如开启开发者模式的 ChatGPT。
同一分类中有:Context7, Codebase Memory, Exa
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Up-to-date docs for AI agents
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.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
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
只显示了开头部分;其余内容请在仓库中阅读