bluesky-daily-mcp について
bluesky-daily-mcp は、Bluesky のフォロー先の投稿から話題を見つけるための MCP サーバーです。日ごとに投稿をキャッシュし、投稿分析用のサンプルプロンプトも含みます。
主な機能
- 01指定日のフォロー先投稿を取得
- 02投稿分析用のサンプルプロンプト
- 03日ごとの投稿キャッシュ
- 04投稿者と投稿情報を統合
活用シーン
- 01昨日のフォロー先投稿を確認
- 02指定日の Bluesky 投稿を分析
- 03ローカルタイムゾーンで日付を指定
MCP 対応
日付を指定してフォロー先の投稿を取得するツールと、分析用プロンプトを MCP クライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
bluesky-daily-mcp
Bluesky のフォロー中のアカウントから、毎日最も興味深いトピックを見つけるための MCP サーバーです。
使用例については、「Building an MCP Server to Explore My Bluesky Feed」をご覧ください。
機能
- 指定した日のフォロー中のアカウントの投稿をすべて取得するツール
- 投稿を分析するためのサンプルプロンプト
- 指定した日の投稿をキャッシュします
フォロー中のアカウントと投稿は、bsky-tldr npm パッケージを使用して取得します。このパッケージは、(a)情報を主要なフィールドだけに絞り込み、(b)指定した日の投稿だけを効率的に取得します。
この MCP サーバーでは、より説明的なフィールド名を追加し、投稿者と投稿の情報をまとめて、LLM が簡単に利用できるようにしています。
type StandalonePost = {
urlToOriginalPost: string;
authorIdentifier: string;
authorNameOrHandle: string;
content: string;
links: string[];
isRepost: boolean;
};
制限事項
-
指定した日のフォロー中のアカウントの投稿をすべて取得します。そのためデータ量が大きくなり、MCP クライアントや LLM のコンテキストウィンドウによって切り詰められた投稿が失われる可能性があります。この問題に対処するには、追加の戦略が必要です。
-
数週間前や数か月前など、過去の日付の投稿を取得しようとすると、Bluesky API のレート制限やタイムアウトに達する可能性があります。
bsky-tldrパッケージは指定した日より古い投稿の取得を停止しますが、過去の日付に到達するまでに、それより新しい投稿をすべて取得する必要があります。
インストール
Claude Desktop などの MCP クライアントに、この MCP サーバーをインストールします。
手順は以下のとおりです。
👉 1. 設定します。 Claude Desktop の場合、以下を ~/Library/Application\ Support/Claude/claude_desktop_config.json(MacOS の場合)に追加すると、この MCP サーバーをインストールできます。
オプション A:NPM パッケージから実行する
注:NVM を使用して Node.js のバージョンを管理している場合に限り、npx の実行場所である /bin フォルダーの絶対パスを指す PATH が必要です。設定しない場合、「Header not set」という原因不明のエラーが表示されることがあります。which npx コマンドでパスを確認してください。
{
"mcpServers": [
"bluesky-daily-mcp": {
"command": "npx",
"args": ["-y", "bluesky-daily-mcp"],
"env": {
"PATH": "/absolute/path/to/npx/bin:/usr/bin:/bin",
"BLUESKY_HANDLE": "",
"BLUESKY_APP_PASSWORD": "",
"TIMEZONE_OFFSET": "-8",
"REQUEST_TIMEOUT_MS": "120000"
}
}
]
}
オプション B:リポジトリをクローンして、ソースから実行する
クローンしたリポジトリで、まず MCP サーバーをビルドします。
npm install
npm run build
注:NVM を使用して Node.js のバージョンを管理している場合、node に /absolute/path が必要です。設定しない場合、「Header not set」という原因不明のエラーが表示されることがあります。which node コマンドでパスを確認してください。
{
"mcpServers": [
"bluesky-daily-mcp": {
"command": "/absolute/path/to/node",
"args": ["/absolute/path/to/this/dist/index.js"],
"env": {
"BLUESKY_HANDLE": "",
"BLUESKY_APP_PASSWORD": "",
"TIMEZONE_OFFSET": "-8",
"REQUEST_TIMEOUT_MS": "120000"
}
}
]
}
これらの環境変数について:
BLUESKY_HANDLEは、@ 記号を除いた Bluesky のハンドルです。例:your_handle.bsky.socialまたはcustomdomain.com。BLUESKY_APP_PASSWORDは Bluesky のアプリパスワードです。Bluesky App Passwords Settings page から生成できます。TIMEZONE_OFFSETは UTC からのタイムゾーンのオフセットを時間単位で指定します。たとえば、PST は-8、CST は+8です。これにより、「1日」の範囲を UTC に固定せず、自分のタイムゾーンに合わせて定義できます。REQUEST_TIMEOUT_MSは、投稿を取得するリクエストの最大タイムアウト時間です。設定しない場合、デフォルトは約 60 秒(60000 ms)です。2 分(120000 ms)に設定することをおすすめします。
👉 2. Claude Desktop を再起動して、新しい MCP サーバーを読み込みます。
試してみる
- Claude Desktop を起動して、新しい会話を始めます
- 「昨日の Bluesky の投稿を取得して」または「4月2日の Bluesky の投稿を取得して」(あるいは任意の日付)と入力します
コントリビューター向けガイド
開発用にローカルで実行する
以下の内容でローカルの .env ファイルを設定します。
BLUESKY_HANDLE=
BLUESKY_APP_PASSWORD=
TIMEZONE_OFFSET=
MCP Inspector でデバッグします。
npm install
npm run build && npx @modelcontextprotocol/inspector -e BLUESKY_HANDLE=XXX -e BLUESKY_APP_PASSWORD=XXX -e TIMEZONE_OFFSET=XXX node dist/index.js
```
Debug by viewing logs
```bash
tail -n 20 -F ~/Library/Logs/Claude/mcp-server-bluesky-daily-mcp.log
テストまたはカバレッジレポートを実行する
npm test
npm run coverage
投稿を手動で取得する
.env を使って投稿取得コードが正常に動作することを確認するには、以下を実行します。
npm run retrieve-posts
NPM にパッケージを公開する手順
最新のコードを main ブランチにマージした後:
- ローカルで、
git checkout main && git pull npm version patch# or minor, or majorgit push --follow-tags- GitHub リリースが自動的に作成され、公開されます
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。