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

Bluesky MCP Server

作者:cyanheadsバージョン 0.7.0i★ –iパソコンでもクラウドでも
レジストリ名io.github.cyanheads/bluesky-mcp-server

インストール

概要

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

Search Bluesky posts and feeds; read profiles, threads, and trends. STDIO or Streamable HTTP.

PopNx MCPの3つの柱

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

できること

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

  • 接続方法: パソコンでもクラウドでも
  • トランスポート: stdio, Streamable HTTP
  • カテゴリ: マーケティング・SNS
  • 入力が必要なもの:BLUESKY_APP_PASSWORD

インストール

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

インストールの前に

「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。

必要なもの

  • クラウドで動くインストール不要。インターネット経由でつながります
  • npmNode.jsのインストール(npxコマンドに必要)

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

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

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

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

または、パソコンで動かす

Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます

{
  "mcpServers": {
    "bluesky": {
      "command": "npx",
      "args": [
        "-y",
        "@cyanheads/bluesky-mcp-server"
      ],
      "env": {
        "BLUESKY_CLAMP_READ_LIMITS": "your-value",
        "BLUESKY_IDENTIFIER": "your-value",
        "BLUESKY_APP_PASSWORD": "your-value",
        "MCP_LOG_LEVEL": "your-value"
      }
    }
  }
}

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

claude mcp add --transport http bluesky https://bluesky.caseyjhand.com/mcp

または、パソコンで動かす

claude mcp add bluesky --env BLUESKY_CLAMP_READ_LIMITS=your-value --env BLUESKY_IDENTIFIER=your-value --env BLUESKY_APP_PASSWORD=your-value --env MCP_LOG_LEVEL=your-value -- npx -y @cyanheads/bluesky-mcp-server

動かす前に、空欄の値を入力してください。

Cursorで開く

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

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

{
  "mcpServers": {
    "bluesky": {
      "url": "https://bluesky.caseyjhand.com/mcp"
    }
  }
}

または、パソコンで動かす

Cursorで開く

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

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

{
  "mcpServers": {
    "bluesky": {
      "command": "npx",
      "args": [
        "-y",
        "@cyanheads/bluesky-mcp-server"
      ],
      "env": {
        "BLUESKY_CLAMP_READ_LIMITS": "your-value",
        "BLUESKY_IDENTIFIER": "your-value",
        "BLUESKY_APP_PASSWORD": "your-value",
        "MCP_LOG_LEVEL": "your-value"
      }
    }
  }
}

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

VS Codeで開く

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

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

{
  "servers": {
    "bluesky": {
      "type": "http",
      "url": "https://bluesky.caseyjhand.com/mcp"
    }
  }
}

または、パソコンで動かす

VS Codeで開く

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

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

{
  "servers": {
    "bluesky": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@cyanheads/bluesky-mcp-server"
      ],
      "env": {
        "BLUESKY_CLAMP_READ_LIMITS": "your-value",
        "BLUESKY_IDENTIFIER": "your-value",
        "BLUESKY_APP_PASSWORD": "your-value",
        "MCP_LOG_LEVEL": "your-value"
      }
    }
  }
}

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

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

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

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

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

自分で入力する値

  • BLUESKY_CLAMP_READ_LIMITS env
    Clamp oversized read limits with a notice; false restores rejection.
  • BLUESKY_IDENTIFIER env
    Handle, DID, or email of the Bluesky account post search runs as. Optional: without it and BLUESKY_APP_PASSWORD, bsky_search_posts is not offered, since Bluesky refuses search without a signed-in acc…
  • BLUESKY_APP_PASSWORD 秘密 env
    App password for BLUESKY_IDENTIFIER (a standard, non-privileged one — Settings → Privacy and security → App passwords). Optional; required together with BLUESKY_IDENTIFIER to enable bsky_search_posts.
  • MCP_LOG_LEVEL env
    Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').

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

できること

ツールの名前と説明は、サーバーが2026年11月6日に返したそのままの内容です。書いたのは作者で、私たちではありません。プレーンテキストとして表示しています。

  • bsky_get_profile

    Fetch a Bluesky actor's public profile by handle (e.g. "bsky.app") or DID (e.g. "did:plc:z72i7hdynmk6r22z27h6tvur"). Returns displayName, handle, DID, bio, pronouns, website, ordered profile links, follower/following/post counts, associated list/feed/starter-pack counts and label

  • bsky_search_actors

    Find Bluesky accounts by name or handle fragment. Returns ranked profiles with handle, DID, displayName, bio, account creation timestamp, moderation labels with provenance, pronouns when the account set them, and Bluesky verification status — which tells a verified account from a

  • bsky_get_trending

    Fetch the current real-time trending topics on Bluesky. Returns topics with display name, Bluesky's one-sentence summary of the story, post count, category (politics, sports, pop-culture, etc.), status, start time, and the representative accounts driving each topic — so "who is t

  • bsky_search_feeds

    Search metadata in the provider’s public feed catalog, without credentials. This searches feed names and descriptions, not post text, and does not enumerate every feed. Returns feeds in provider order with generator AT-URIs and creator identities; pass a feedUri to bsky_get_feed

  • bsky_get_feed

    Read the posts a Bluesky feed generator serves, in the order the feed ranks them. Accepts the feed's AT-URI (at:// /app.bsky.feed.generator/ ) or its bsky.app page (https://bsky.app/profile/ /feed/ ). Feeds come from the "feedUri" of each bsky_get_trending topic — the way to read

  • bsky_get_author_feed

    Get a Bluesky user's recent feed ordered newest-first. Filter by post type: "posts_with_replies" (everything), "posts_no_replies" (excludes replies), "posts_and_author_threads" (posts the author started), "posts_with_media" (the actor's own posts with images or video — no link ca

  • bsky_get_post_thread

    Fetch the conversation for a post by AT-URI — the parent chain upward and the reply tree downward. Enter the thread at any point and traverse the discussion. AT-URIs have the format "at:// / / " and are returned in the "uri" field of every post the other post-returning tools emit

  • bsky_get_post_quotes

    Read the quote posts behind a Bluesky post's "quoteCount" — the posts that embed it with commentary of their own. Sort latest (default) is newest first; top is descending like count as ordered by Bluesky. On Bluesky this is where much of the reaction to a post lives; bsky_get_pos

  • bsky_get_post_interactions

    List the accounts behind a post’s likes or reposts without credentials, in provider order. Accepts a post AT-URI or bsky.app post URL; a handle authority costs one extra resolution request. Returns actor summaries with account creation and label provenance when supplied, and a se

  • bsky_get_follows

    Fetch the social graph edges for a Bluesky account — who follows them, or who they follow. Returns paginated actor profiles (handle, DID, displayName, bio, account creation timestamp, moderation labels with provenance, pronouns when set, and Bluesky verification status) plus a su

基本チェックi

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

  • ✓ 合格

    作者とリポジトリが一致

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

  • … 未チェック

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

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

  • … 未チェック

    ライセンスがある

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

  • ✓ 合格

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

    575ミリ秒で応答(HTTP 200)

  • – 対象外

    OAuthでサインイン

    サインイン不要

  • ✓ 合格

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

    10件のツールの説明を読み、AIへの隠れた指示は見つかりませんでした

マーケティング・SNSのほかのサーバーとの比較i

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

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

よくある質問

Bluesky MCP Serverは安全ですか?

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

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

入力が必要なもの:BLUESKY_APP_PASSWORD

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

どちらでも使えます。パソコンにインストールしても、クラウド版につないでもかまいません。

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

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

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

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

代わりに使えるものは?

同じカテゴリには:MCP YouTube Transcript, Google Analytics MCP, BibiGPT YouTube Video Summarizer

代わりの候補

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

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

Google Analytics MCP

GA4 MCP server for AI agents: schema discovery, server-side aggregation, analysis-ready defaults.

作者:surendranb成長中↓ 1088/週★ 24411 日前更新

パソコンで動く

作者のREADME

READMEを開く

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

@cyanheads/bluesky-mcp-server Search Bluesky posts and feeds; read profiles, threads, and trends. STDIO or Streamable HTTP. 11 Tools • 1 Profile Resource • 1 Guide

Public Hosted Server: https://bluesky.caseyjhand.com/mcp


Overview

Read Bluesky without an account: profiles, feed catalog searches, trending topics and the feeds behind them, custom and author feeds, threads, and quote posts. Paste a bsky.app link or @handle anywhere one is asked for, and add an optional app password to unlock full-text post search.

Tools
ToolDescription
bsky_search_postsFull-text search across public Bluesky posts, with author, mention, language, tag, domain, URL, date, and sort filters — offered only when an app password is configured
bsky_get_profileFetch a Bluesky actor's public profile by handle or DID — the handle↔DID resolver
bsky_get_feedRead a feed generator's posts — a trend's feed, Discover, or any custom feed — by AT-URI or bsky.app URL
bsky_get_author_feedA user's recent posts ordered newest-first, filterable by post type
bsky_get_post_threadFetch the conversation for a post by AT-URI or bsky.app URL — parent chain upward and reply tree downward, with what Bluesky counted but did not return
bsky_get_post_quotesRead the quote posts behind a post's quoteCount, newest first or by like count — where much of the reaction to a post lives
bsky_get_post_interactionsList the accounts that liked or reposted a post, with optional account creation and separate like timestamps
bsky_search_actorsFind Bluesky accounts by name or handle fragment
bsky_search_feedsSearch public feed catalog names and descriptions, then read a returned feedUri with bsky_get_feed
bsky_get_followsPaginated social graph edges — who a user follows or who follows them
bsky_get_trendingReal-time trending topics on Bluesky with a story summary, post count, category, status, the accounts driving each topic, and the feed that collects its posts
Resources
ResourceDescription
bsky://profile/{actor}A Bluesky actor's public profile, addressable by handle or DID

Use bsky_get_profile for programmatic access or bsky://profile/{actor} to inject profile context directly.

Agent guide

bluesky-guide covers topic research, account attribution, and reactions to a post, including identifier chains and coverage checks. It ships with plugin installs and is readable over MCP at skill://bluesky-guide/SKILL.md without credentials.

Capability reference

bsky_search_posts tool
  • Bluesky refuses post search without a signed-in account, so this tool is registered only when BLUESKY_IDENTIFIER and BLUESKY_APP_PASSWORD are set — without them it is absent from tools/list (see Post search)
  • Searches run as that account through its PDS; the first search logs in, the session is reused and refreshed, and a rejected login is not retried. Failures surface as search_auth_failed (the login or its renewal was rejected), search_login_limited (the account's daily login limit is used up — the error names when searching resumes), or search_refused (Bluesky refused the search)
  • Filters: author and mentioned account (handle or DID, also as @handle or a bsky.app profile URL — mentions matches rich-text mentions only), two-letter language code, hashtag (with or without #), linked domain (bare hostname, leading www. dropped) or exact url (in text links or link cards), since/until, and top/latest sort; up to 100 results per call via opaque cursor pagination
  • since/until compare against each post's sort time — the earlier of createdAt and indexedAt — to the whole second, inclusive; a date alone is 00:00:00 UTC, so until: "2026-01-01" covers all of 2025-12-31
  • Identifier, language, domain, URL, and date inputs are pattern-validated locally before the upstream call. A three-letter language code ("fil", "eng") is rejected, since Bluesky search ignores one and returns unfiltered results; the code is sent lowercased, and later subtags are accepted but ignored upstream (en-US filters as en)
  • When Bluesky rejects a parameter, its own explanation is surfaced via the upstream_rejected_filter error reason instead of a bare status code; a cursor it can't decode fails as invalid_cursor, after one request
  • hitsTotal is Bluesky's estimate, never an exact count: below 10,000 it is an upper bound on what paging returns (Bluesky counts before dropping posts it won't return), and exactly 10,000 — the cap — means "at least that many"; truncated/shown/cap are keyed on the returned cursor, which Bluesky omits once nothing more matches
  • A page that would pass the 48,000-byte response budget on either surface is searched again at the limit that fits and returned whole — budgetCapped: true, with hitsTotal and the cursor from that one response
  • Embeds normalize to a type-discriminated union (images, external, record, video, unknown); a quoted post carries its own attachments up to 3 nesting levels, with omittedEmbeds counting what went deeper and recordKind naming a quote that's deleted, blocked, detached, or not a post
  • Video embeds retain nonempty alt, including on quoted posts and media attached alongside a quote; multiline alt renders as literal quoted text, like image alt
  • Moderation labels are surfaced as-is, unfiltered

Post tools preserve optional rich-text facets separately from the original text: UTF-8 byte ranges (inclusive byteStart, exclusive byteEnd) and complete link URIs, mention DIDs, and tags. Unrecognized feature variants and additional upstream fields remain visible as literal metadata on both channels. Quoted posts retain their own facets within the existing embed-depth bound. Both response channels include this metadata in the response budget; bsky_get_post_quotes omits the queried target's facets together with its restated text.

bsky_get_feed tool
  • Takes a feed generator AT-URI (at:// /app.bsky.feed.generator/ ) or its bsky.app page (https://bsky.app/profile/ /feed/ , with any trailing /, ?…, or #… ignored); a trend's feedUri works as-is, and Discover is at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.generator/whats-hot
  • A handle owner costs one extra lookup (resolveHandle), a DID owner none; any other collection, such as a post AT-URI, is rejected before the upstream call
  • A post the feed pinned to its top carries pinned: true; a repost carries repostedBy/repostedAt
  • Up to 100 posts per call, paginated via cursor; truncation is disclosed on the cursor, since a feed can return fewer than limit with more behind it
  • A page that would pass the 48,000-byte response budget is asked for again at the limit that fits and returned whole, marked budgetCapped: true; a ranked feed reranks on every request, so its posts and cursor still come from one response
  • feed_not_found (no such feed or handle), feed_unavailable (the feed's generator did not answer — not retried, so a down feed fails fast), feed_requires_login (a personalized feed)
  • Always unauthenticated, even when search credentials are set

bsky_get_profile tool
  • Accepts a handle or DID, also as @handle or the account's bsky.app page (https://bsky.app/profile/ ); returns displayName, handle, DID, bio, pronouns, website, follower/following/post counts, avatar, moderation labels, and pinned post AT-URI
  • website and pronouns are absent when the account set neither; optional links carries ordered profile buttons separately from website, with each record's URI/CID, complete destination URL, optional title/icon, and moderation labels (val, src?, cts?). An omitted array stays omitted and an explicit empty array stays empty; the profile resource returns the same fields
  • Optional associated carries only supplied lists, feedgens, starterPacks, and labeler; zero counts, labeler: false, and an empty object stay distinct from absent metadata on both the tool and resource
  • verification carries Bluesky's full verification state — verifiedStatus and trustedVerifierStatus (valid, invalid, or none, passed through verbatim) and every verification a trusted verifier issued, with its issuer, validity, date, and record AT-URI; absent when Bluesky sent none
  • The bio renders as a markdown blockquote in content[], since it's account-authored text that can carry its own markdown structure
  • actor_not_found when the handle doesn't resolve — resolve the handle with bsky_search_actors first
  • The primary handle↔DID resolver — use before tools that require a DID or AT-URI when only a handle is known

bsky_get_author_feed tool
  • Takes a handle or DID, also as @handle or the account's bsky.app page
  • filter: posts_with_replies, posts_no_replies (default, excludes replies), and posts_and_author_threads include reposts; posts_with_media (the actor's own posts with images or video, no link cards) and posts_with_video return none
  • include_pins: true adds the profile's pinned post, marked pinned: true, first on the first page — in addition to limit, and whether or not it matches filter
  • Reposts carry repostedBy and repostedAt; author always names who actually wrote the post
  • Under the filters that include reposts, limit counts them too, so a heavily-reposting account can return far fewer of its own posts than the limit suggests; originalPosts/reposts report the actual split whenever a repost is present
  • Up to 100 posts per call, paginated via cursor; a page that would pass the 48,000-byte res

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

PopNxに聞く