Context7
Up-to-date docs for AI agents
作者による説明(英語の原文)
Search worklore stories and x-ray any skill or story capability tier (T0-T4) before you run it.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
ウェブ、デスクトップ、モバイルのClaudeで使えます:
https://worklore.dev/mcpターミナルでこれを実行します
claude mcp add --transport http worklore https://worklore.dev/mcpプロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"worklore": {
"url": "https://worklore.dev/mcp"
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"worklore": {
"type": "http",
"url": "https://worklore.dev/mcp"
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
ChatGPTがつなげるのは、インターネット上のサーバーだけです:
https://worklore.dev/mcpメニューの名前は、プランや時期によって少し違うことがあります。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
このサーバーのツール一覧はまだ読み取っていません。エンドポイントは順番にチェックしています。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント worklore で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
まだチェックしていません。エンドポイントは順番にチェックしています
まだチェックしていません。エンドポイントは順番にチェックしています
まだチェックしていません。エンドポイントをチェックするときにツール一覧を読み取ります
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
作者のクラウドで動きます。インストール不要でインターネット経由でつながりますが、送った内容は作者のサーバーを通ります。
GitHubリポジトリの最終更新は–、最新バージョン(0.9.0)がレジストリに届いたのは10 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。URLでつながるので、リモートMCPサーバーに対応したアプリ(開発者モードのChatGPTなど)でも使えます。
同じカテゴリには:Context7, Codebase Memory, Exa
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況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) connector for worklore.dev — it lets any MCP-capable agent (Claude, ChatGPT, Cursor, …) search worklore's developer stories, read one with its capability disclosure attached, x-ray any skill or story before running it — all without an account — and, once you've signed in, record how a reproduction went, publish a story of your own, or revise one you published.
https://worklore.dev/mcp (Streamable HTTP, JSON-RPC over POST)io.github.worklore/worklore, and Smitheryworklore stories are text your agent *executes*. This connector brings them — and their capability tier — into your agent, so you can find relevant work and see what it can touch before you run it. Tiers describe reach (blast radius), not virtue, and this is never a "safe" verdict. See the write-up: Stop asking "is this skill safe?" — ask "what can it do?" and the tool it wraps, skill-xray.
Capability tiers: T0 inert · T1 local · T2 network · T3 elevated (secrets / persistence / privilege) · T4 opaque (fetches/runs code at runtime).
Read-only — no sign-in needed (public stories only; check_capability with a url needs sign-in, because the server fetches it for you):
| Tool | Arguments | Returns |
|---|---|---|
check_capability | text or url | tier (T0–T4) + sha256 + findings (file:line) + endpoints, plus behavioral red flags — capability disclosure |
get_story | slug | the story's full markdown (narrative + "Reproduce this" contract) with its capability tier + findings |
search_stories | query *(optional)* | matching stories (title/summary/tags/stack), each with its capability string |
suggest_for_project | context | up to 3 stories worth reproducing here, with why + tier |
Write — these act as you, and need your authenticated session:
| Tool | Arguments | Returns |
|---|---|---|
report_reproduction | slug, result (worked/partial/failed), note *(optional)* | the recorded reproduction. failed is a useful report and must never be inflated |
report_check | slug, result (has_problem/no_problem), note *(optional)* | the recorded result of a story's read-only "Check if this applies to you" section, run in your project. Only for stories that have one (get_story says has_check: true). Never record "not applicable" — when your project does not match the check's preconditions, don't call it. One result per person per story; the latest replaces the earlier one |
publish_story | markdown, or the parts (title, narrative, reproduce, tags, type, stack) | the published story's slug + URL. Only ever call this with the author's explicit approval of the full draft |
edit_story | slug, markdown (the full revised story), kind (rephrase/addition/correction, default rephrase), note *(required for a correction)*, source *(optional https URL)* | the slug, URL, the recorded revision (at, kind, note, source) and how many reproducers were notified. Only the story's author can edit it. Show the author a before/after diff and get their approval first. The story's date never changes. If something in the story was wrong, it is a correction — which tells everyone who reproduced it — never a rephrase |
suggest_edit | slug, markdown (the complete story as you propose it), rationale (one or two lines: what was wrong or outdated, what you changed) | the suggestion id, its status (open), the story URL and a note. For a story by SOMEONE ELSE — worklore's pull request. Show the user the before/after diff and get their approval first. The story does not change: its author is notified and either accepts it as a credited revision or declines it, optionally handing the text back as a draft of the user's own. One open suggestion per person per story; sending another replaces it. For the user's own story use edit_story |
All eight carry MCP annotations (readOnlyHint / openWorldHint / idempotentHint) so a client can tell the user what a call will do before they approve it, and all eight declare an outputSchema and return structuredContent, so a consuming agent can rely on shape instead of parsing prose.
Every result carries a human capability string (e.g. T0 · inert — touches nothing) so a tier code is never shown bare.
Since 0.6.0 resources/list is a fixed list of three documents — the same for everyone, every day — all readable without an account:
| URI | What it is |
|---|---|
worklore://guide | How to use worklore through MCP: search, read a story with the user before acting, reproduce it, report honestly (failed is useful), x-ray unfamiliar skills and prompts with check_capability, publish or edit only with the user's approval |
worklore://story-format | The story format: frontmatter fields, the narrative, the "Reproduce this" contract (prerequisites / your agent will need from you / steps / verify), the optional read-only check, fail stories, proposals, sanitising, the exact-references rule. Read it before drafting a story |
worklore://access | What answers without a token and what needs sign-in — rendered from the one access table the server enforces |
Stories are reached through one resource template, worklore://story/{slug} (resources/templates/list). Public stories read without a token; a private story reads only for its author and answers like a missing one to everyone else. Every worklore://story/… URI that resources/list handed out before 0.6.0 still reads. To *find* a story, use search_stories / suggest_for_project.
Why the stories left the list: a list that changes whenever someone publishes cannot be part of a surface fingerprint — the fingerprint would "break" every day without anything breaking, and teach clients to ignore a mismatch. The contents of the three documents may change between releases; the list entries may not without a new version.
A version number is a promise that nothing a client depends on changed without it. Since 0.6.0 worklore publishes its surface fingerprint in the shared form `mcp-surface/1` (SPEC, by Sidney Bissoli), so you check worklore exactly the way you check every other server that publishes it. The registry entry carries it in server.json under _meta → io.modelcontextprotocol.registry/publisher-provided → io.github.sidneybissoli/mcp-surface:
declared.sha256 — the sha256 of what a client sees before it calls anything: the initialize result (protocol version, capabilities, instructions, serverInfo without its version) and the four lists (tools, resources, resource templates, prompts), normalised and serialised as the SPEC says;anonymous — which methods answer without a token (plus one named, harmless tools/call: check_capability on inline text), and its sha256.The fastest check is Sidney's dependency-free verify.mjs (Node 18+). It reads the registry entry for the version, makes sure the endpoint can say "no" to a method that does not exist, captures the live surface, and compares:
curl -sO https://raw.githubusercontent.com/SidneyBissoli/mcp-br-commons/main/packages/mcp-surface/exemplos/verify.mjs
node verify.mjs io.github.worklore/worklore 0.7.0
Or in Python, with nothing installed (the declared hash only):
python3 - <<'PY'
import hashlib, json, urllib.request EP = "https://worklore.dev/mcp" def rpc(method, params=None): body = {"jsonrpc": "2.0", "id": 1, "method": method, **({"params": params} if params else {})} req = urllib.request.Request(EP, data=json.dumps(body).encode(), headers={"Content-Type": "application/json", "Accept": "application/json, text/event-stream"}) return json.load(urllib.request.urlopen(req)).get("result") def canon(v): # SPEC §3: keys by UTF-16 code unit, no whitespace, JSON.stringify strings if isinstance(v, dict): return "{" + ",".join(json.dumps(k, ensure_ascii=False) + ":" + canon(v[k]) for k in sorted(v, key=lambda s: s.encode("utf-16-be"))) + "}" if isinstance(v, list): return "[" + ",".join(canon(x) for x in v) + "]" return json.dumps(v, ensure_ascii=False) def listed(method, key): # this server answers each list in one page res = rpc(method) return res.get(key) if isinstance(res, dict) else None def by(items, key): return None if items is None else sorted(items, key=lambda x: str(x.get(key)).encode("utf-16-be")) init = rpc("initialize", {"protocolVersion": "2025-06-18", "capabilities": {}, "clientInfo": {"name": "verify", "version": "1"}}) version = init"serverInfo" surface = {"initialize": {"protocolVersion": init.get("protocolVersion"), "capabilities": init.get("capabilities"), "instructions": init.get("instructions"), "serverInfo": {k: v for k, v in init["serverInfo"].items() if k != "version"}}, "tools": by(listed("tools/list", "tools"), "name"), "resources": by(listed("resources/list", "resources"), "uri"), "resourceTemplates": by(listed("resources/templates/list", "resourceTemplates"), "uriTemplate"), "prompts": by(listed("prompts/list", "prompts"), "name")} live = hashlib.sha256(canon(surface).encode()).hexdigest() entry = json.load(urllib.request.urlopen( "https://registry.modelcontextprotocol.io/v0.1/servers/io.github.worklore%2Fworklore/versions/" + version)) published = entry"server""io.modelcontextprotocol.registry/publisher-provided""declared" print("version", version, "| live", live[:12], "| registry", published[:12], "| match" if live == published else "| DIFFERS") PY
If the version is the same and the hash differs, the server changed without saying so. Tell me in an issue. 0.5.1 published worklore's own per-section hashes under a surface key; 0.6.0 replaced them with this one shared format. The idea of publishing the fingerprint with each release came from a comment by @_firelinks under Sidney Bissoli's Your MCP server changed. Its version didn't.
Since 0.5.0 one rule decides it, everywhere — the site, the REST API and this server alike. It lives as a single table in worklore's backend (access.py, rendered as docs/ACCESS.md); the summary below is generated from it.
The rule. Anyone can search and read all public stories without signing in — site, REST API and MCP alike. Private stories and every write (publish, edit, report a reproduction or a check, visibility, per-user d
冒頭だけを表示しています。続きはリポジトリで読めます