プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

Scry

作者:epinnockバージョン 1.0.0i★ –iクラウドで動く
レジストリ名io.github.epinnock/scry-mcp

インストール

概要

作者による説明(英語の原文)

Search your team's Storybook components by text or image, so agents reuse what exists.

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: クラウドで動く
  • トランスポート: Streamable HTTP
  • カテゴリ: デザイン・画像・音声

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

  • 基本チェック:1項目中1項目に合格
  • 作者のサーバーで動きます。あなたが頼んだ内容は、作者のサーバーを通ります。
  • レジストリには、入力が必要なキーは載っていません。

必要なもの

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

ウェブ、デスクトップ、モバイルのClaudeで使えます:

  1. Settings → Connectors を開く
  2. Add custom connector を押す
  3. 下のアドレスを貼り付けて Add を押す
  4. サインインを求められたら、作者のサービスにサインインする
SettingsConnectors1+ Add2https://…3
https://mcp.scrymore.com/mcp

ターミナルでこれを実行します

claude mcp add --transport http scry https://mcp.scrymore.com/mcp

Cursorで開く

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

{
  "mcpServers": {
    "scry": {
      "url": "https://mcp.scrymore.com/mcp"
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

VS Codeで開く

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

{
  "servers": {
    "scry": {
      "type": "http",
      "url": "https://mcp.scrymore.com/mcp"
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

ChatGPTがつなげるのは、インターネット上のサーバーだけです:

  1. ウェブ版のChatGPTを開き → Settings → Connectors (Apps)
  2. Create または Add を押す(プランによっては、先に Advanced で Developer mode をオンにする必要があります)
  3. 下のアドレスを貼り付け、名前を付けて保存する
  4. サインインを求められたら、作者のサービスにサインインする
SettingsConnectors1+ Create2https://…3
https://mcp.scrymore.com/mcp

メニューの名前は、プランや時期によって少し違うことがあります。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

このサーバーのツール一覧はまだ読み取っていません。エンドポイントは順番にチェックしています。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント epinnock で確認済みです

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    エンドポイントが応答する

    まだチェックしていません。エンドポイントは順番にチェックしています

  • … 未チェック

    OAuthでサインイン

    まだチェックしていません。エンドポイントは順番にチェックしています

  • … 未チェック

    ツールの説明に隠れた指示がない

    まだチェックしていません。エンドポイントをチェックするときにツール一覧を読み取ります

デザイン・画像・音声のほかのサーバーとの比較i

  • このカテゴリのほかの2202件のうち0%よりスターが多い
  • このカテゴリのほかの2202件のうち33%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの2202件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

Scryは安全ですか?

当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。

パソコンで動きますか、それともクラウドですか?

作者のクラウドで動きます。インストール不要でインターネット経由でつながりますが、送った内容は作者のサーバーを通ります。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(1.0.0)がレジストリに届いたのは2 か月前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。URLでつながるので、リモートMCPサーバーに対応したアプリ(開発者モードのChatGPTなど)でも使えます。

代わりに使えるものは?

同じカテゴリには:Figma Context MCP, Claude Real Video, Figma MCP Server

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

Figma Context MCP

作者:GLips

Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.

パソコンで動く★ 16,165MIT5 か月前更新
インストール

Claude Real Video

作者:HUANGCHIHHUNGLeo

Let any LLM watch a video locally — and search everything it has ever watched.

パソコンで動く★ 2,284MIT2 か月前更新
インストール

Figma MCP Server

作者:figma

The Figma MCP server brings Figma design context directly into your AI workflow.

クラウドで動く★ 2,15213 か月前更新
インストール

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

Scry MCP Server

A spec-compliant remote MCP server on Cloudflare Workers that exposes multi-modal vector search over the Scry component database. Authenticates users via Firebase and issues its own OAuth tokens to MCP clients.

Compatible with Claude Desktop, ChatGPT, Cursor, and any MCP client via mcp-remote.

Architecture

Claude Desktop / ChatGPT / Any MCP Client

│ │ (stdio via mcp-remote) ▼ mcp-remote (local proxy) │ │ (Streamable HTTP + OAuth 2.1) ▼ Cloudflare Worker ──────────────► Firebase Auth (upstream IdP) ├─ OAuthProvider (token mgmt) ├─ FirebaseAuthHandler (login UI + token verify) └─ ScryMCP (Durable Object) │ ▼ Scry Search API (Next.js) ├─ POST /api/search — vector search (text, image, hybrid) ├─ GET /api/image/... — image proxy (CDN auth) └─ POST /api/image/presign — presigned URL generation

The Worker acts as both an OAuth server to MCP clients (issuing its own tokens) and an OAuth client to Firebase (authenticating users upstream). The MCP client never sees the Firebase token.

Tools

ToolDescription
search_componentsText-based semantic + keyword hybrid search over UI components. scope: "project" (default) never widens; scope: "org" also returns opted-in, readable sibling projects' rows, marked crossProject. versions: "latest" (default) returns one result per screen (the newest indexed copy, with versionCount and a Versions: N indexed line); versions: "all" lists every indexed version
search_by_imageVisual similarity search using base64 image input; same scope and versions semantics
get_component_screenshotFetch a component screenshot (returns image block + presigned URL)
generate_imageGemini image generation (fast / quality), billed in AI credits; routed through Cloudflare AI Gateway when LLM_GATEWAY_URL is set
whoamiReturns the authenticated user's info
get_more_toolsTell Scry what capability you needed that no tool offers (recorded for the team; nothing runs). Only with ANALYTICS_AGENT_ARGS="on" (staging and production)
Issue resolution tools (stage; ISSUE_TOOLS_ENABLED="1")

Design-drift issues a human has promoted in the dashboard, resolvable in code or in Figma. All six call the dashboard's /api/agent/issues/* with a signed X-Scry-Caller (audience scry-dashboard-agent, claims sub = uid and agent_client = the MCP client's name); the dashboard checks membership and role and records actor_kind: "agent". Needs SCRY_DASHBOARD_API_URL, SCRY_AGENT_ASSERTION_SECRET (a secret shared only with the dashboard, separate from the search secret; unset = SERVER_MISCONFIGURED) and, for the protected stage dashboard, the SCRY_DASHBOARD_BYPASS_TOKEN secret. Writes are capped at 30/min/user on top of the 60 req/min limit.

ToolDescription
list_design_issuesPromoted issues in a project, filterable by link, Figma node, story, fix side, status, side status, severity, assignee, changed_since
get_design_issueOne issue with both crops, Figma file key + node id, story + source files, expected value, tracks, last re-check, how to fix
claim_design_issueClaim (15-min lease) or release the code or design side
mark_design_issue_fixedRecord a fix with a PR URL / commit / Figma version
request_verifyRe-check now (free, 20/project/hour, 200/day) or rediff: true (10 credits)
comment_design_issueTimeline comment, optionally proposing a fix side
Snip capture tools (stage; CAPTURE_TOOLS_ENABLED="1")

Screenshots the user took with Scry Snip, read by an agent ("fix the screenshot I just took"). Four tools, no more. They call the dashboard's /api/agent/captures/* over the same signed X-Scry-Caller hop and the same env vars as the issue tools; the dashboard decides who may read a snip (the owner, or an audience the owner turned on) and writes nothing about it to a log. Production has no flag until the feature's Gate B. delete_capture is capped at 10/min/user.

Every result starts with a text block (capture id, how old, who took it, size), then the picture (WebP, long edge at most 1280 px, about 70 KB, inlined only up to 75,000 bytes (about 100k base64 characters); both numbers live in src/captures/constants.ts as CAPTURE_AGENT_IMAGE), and a signed link to the original that expires in one hour. A picture that is over budget or cannot be fetched degrades to the link only. The Sync app produces the rendition; this server does no image processing.

ToolDescription
latest_captureThe caller's own newest capture in one project. Use once when the user says they just snipped something; never in a loop. maxAgeMinutes (default 15) widens the window
get_captureOne capture by id (own, or shared with the caller)
list_capturesText list, newest first. scope mine (default) or shared, project_id, limit (max 50), before. Surfaces projectsTruncated and its note when the unscoped shared list hit the 50-project cap
delete_capturePermanently delete a capture the caller took (owner only)
latest_clipboard/sc: the newest item on the caller's shared clipboard from Scry Sync (a Scry Copy or the newest snip, whichever is newer). Optional project_id picks the snip's project

latest_clipboard (feature mcp-clipboard) is registered only when SYNC_CLIPBOARD="on" as well (stage on, production "off" until the release; off or unset, the tool is not listed). It calls the dashboard's GET /api/agent/clipboard/latest, which answers 404 while the caller's sync-clipboard switch is off (CLIPBOARD_OFF, "Clipboard sharing is not on for your account.") and reads nothing else. The result is a text block (one-line summary, then the content labelled as untrusted data from the user's clipboard: text, else HTML, else RTF, cut at 60 000 characters, or 8 000 when a picture is attached, so the whole result stays under Claude Code's 25k-token tool-output cap: CLIPBOARD_TEXT in src/captures/constants.ts), then the picture (PNG, JPEG, WebP or GIF; any other type, an SVG say, is link-only; redirects are not followed) inline only up to the capture tools' budget (CAPTURE_AGENT_IMAGE.inlineMaxBytes, 75,000 bytes), else a line with its signed link (valid 5 minutes); a snip over the budget also says get_capture returns its agent picture. A snip item names its capture id for get_capture. An empty clipboard is a normal result; a dashboard 429 is RATE_LIMITED.

Errors are JSON {error, message, retryable} with isError: CAPTURE_STALE (newest is older than the window; carries its id and age), AMBIGUOUS_PROJECT (the message lists the projects), CAPTURE_NOT_READY (still uploading), CAPTURE_NOT_FOUND (a missing capture and one the caller may not see are byte-identical), CAPTURE_NOT_OWNER (delete), plus the generic RATE_LIMITED, SERVER_MISCONFIGURED, TIMEOUT, DASHBOARD_UNREACHABLE. The note a user typed is returned quoted and labelled as untrusted data. No log line carries a capture id, note, app name or URL.

Stock picture search (stage; STOCK_TOOLS_ENABLED="1")

One tool, search_stock(query, type?, provider?, limit?): a live search of free stock libraries (Pixabay, Unsplash, Openverse; Pexels when the service enables it) through the scry-stock Worker (STOCK_SERVICE_URL, secret STOCK_SERVICE_TOKEN). The call carries the service bearer, a 60-second X-Scry-Caller assertion with audience scry-stock (signed with SCRY_CALLER_ASSERTION_SECRET, the secret the stock Worker verifies) and the call's request id, and is abandoned after 3 s. Each result has provider, title, creditLine, creditParts (the credit as ordered {text, href?} parts), pageUrl, providerUrl, previewUrl, type, licenseLabel and licenseUrl, plus a status per provider. The text output prints the credit as markdown with its links (Unsplash photographer and Unsplash links carry the utm_source=scry pair), the licence as a link when the service gives a deed URL, a Sources: line, and the provider notices the terms require (Openverse: "made with Openverse, not endorsed or certified by Openverse"; Pexels: "Photos provided by Pexels"); the same notices are in structuredContent.notices. The tool description tells the agent to show the credit exactly as given, links included, and to open pictures on the provider's site. Nothing is stored, and the query is never logged: it travels only in the POST body, and the tool does not get the injected analytics context / conversation_id arguments (NO_AGENT_ARGS_TOOLS). Staging only; production sets neither variable, so the tool is absent there until the feature's Gate B. Source: src/stock/.

Errors are JSON {error, message, retryable} with fixed text per status (never the service's body): RATE_LIMITED, VALIDATION_ERROR, STOCK_TIMEOUT, STOCK_UNREACHABLE, STOCK_SERVICE_ERROR, STOCK_PROVIDERS_UNAVAILABLE, SERVER_MISCONFIGURED.

Usage analytics

Each tool handler invocation records one Workers Analytics Engine data point for use by the dashboard's staff-only KPI page. The only recorded values are the tool name (blob1), environment (blob2), and Firebase uid (blob3 and index1), plus double1 = 1 for counting. Missing environment/uid values become unknown and anonymous. No query text, prompts, image data, tokens, or other tool data is sent to Analytics Engine. Internal diagnostic logs do not add usage points. Missing or failing analytics bindings never affect tool responses.

The MCP_USAGE binding writes to scry_mcp_usage in production and scry_mcp_usage_staging in staging. Query production with the Analytics Engine SQL API (substitute the staging dataset name for staging):

SELECT blob1 AS tool, count() AS n FROM scry_mcp_usage WHERE timestamp > NOW() - INTERVAL '30' DAY GROUP BY tool

Analytics

Feature mcp-analytics. Every tool call produces ONE vendor-neutral event, mcp_tool_call.v1 (src/analytics/event.ts), built from an allow-list. The event goes to the sinks named in ANALYTICS_SINKS (comma-separated). The log sink is always on, whatever the value says (none, off and unset all mean log only), so keep it listed; an unknown name is ignored and logs one warning line.

SinkWhat it doesWhere
logOne schema-v1 line msg:"mcp_tool_call" (route = tool, status, ms, err_code, uid_hash, client = name/version). Joins the msg:"request" line by request_id. Default.R2 log store (scry-logs.py --request-id)
posthog$mcp_tool_call, $mcp_initialize, $mcp_tools_list, $mcp_missing_capability and $exception through PostHog's MCP analytics SDK. No-op without the POSTHOG_PROJECT_TOKEN secret, and it refuses to start (one warning line) without the SCRY_LOG_SALT secret, because every event would be anonymous. A failed SDK load is retried after 60 s, one warning line per failure.PostHog project 625583 (staging). Production sends nothing until Gate B

What is collected: tool name, outcome, latency, error code, the confirmed project id, a salted hash of the user id (uid_hash, never the uid or email), MCP client name/version/protocol, the calling model when the client states it (Codex only), argument NAMES, the response SIZE, and a session id (the Durable Object id). PostHog also gets the agent's optional context sentence, scrubbed of emails, URLs and key-shaped strings and capped at 300 characters. Logs never carry it.

What is never collected: argument values, response bodies, image data, queries, raw uid, email, tokens.

Client labels (client name/version, protocol version, model) are sent only when they are a short safe token (letters

冒頭だけを表示しています。続きはリポジトリで読めます

PopNxに聞く