mcpField
B
Bulkpublish

Bulkpublish

リモート
bulkpublish.comソーシャルメディア41 日前に更新
リポジトリ公式サイト

Bulkpublish について

Bulkpublish MCP ServerはBulkPublishのソーシャルメディア公開APIをツールとして公開し、AIアシスタントによる投稿、メディア、分析の管理を可能にします。ローカルのstdioとホスト型HTTPに対応し、ツール構成を選べます。

主な機能

  1. 01ソーシャル投稿の作成・編集・予約
  2. 02メディアと接続済みチャンネルの管理
  3. 03投稿指標と分析データの取得
  4. 04投稿・分析用のインタラクティブ画面
  5. 05構成可能なツールプロファイル

活用シーン

  1. 01複数のソーシャルチャンネルに投稿を予約
  2. 02投稿のエンゲージメント指標を確認
  3. 03画面で投稿を作成して送信
  4. 04ウェブクライアント向けにHTTPで公開

MCP 対応

このMCPサーバーはBulkPublish APIの操作をツールとして公開し、ローカルstdioとStreamable HTTPに対応します。一部のツールはMCP Apps対応クライアントでインタラクティブ画面を表示します。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://mcp.bulkpublish.com/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

パッケージ
npm@bulkpublish/mcp-server1.42.0

ツール

詳細

BulkPublish MCP Server

Claude などの AI アシスタントが BulkPublish のソーシャルメディア投稿 API を操作できるようにする、Model Context Protocol サーバーです。

できること

この MCP サーバーは、AI アシスタントが直接呼び出せるツールとして BulkPublish API の操作を公開します。自然な会話を通じて、投稿の予約、分析データの確認、メディアのアップロード、ラベルの管理などを Claude に依頼できます。

インストール

オプション 1:npx(推奨)
npx @bulkpublish/mcp-server
オプション 2:グローバルインストール
npm install -g @bulkpublish/mcp-server
bulkpublish-mcp
オプション 3:ソースからインストール
git clone https://github.com/azeemkafridi/bulkpublish-api.git
cd bulkpublish-api/mcp-server
npm install
npm run build
node dist/index.js

Node ≥ 20.19 が必要です。npm run build は Vite でコンポーザー UI をバンドル(build:ui)し、その後 tsc でサーバーをコンパイルします。

設定

API キーを環境変数として設定します。

export BULKPUBLISH_API_KEY=bp_your_api_key_here

API キーは app.bulkpublish.com/developer で取得できます。

Claude Desktop

次の内容を Claude Desktop の設定ファイルに追加します。

macOS:~/Library/Application Support/Claude/claude_desktop_config.json Windows:%APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "bulkpublish": {
      "command": "npx",
      "args": ["-y", "@bulkpublish/mcp-server"],
      "env": {
        "BULKPUBLISH_API_KEY": "bp_your_api_key_here"
      }
    }
  }
}

ソースからインストールした場合:

{
  "mcpServers": {
    "bulkpublish": {
      "command": "node",
      "args": ["/absolute/path/to/bulkpublish-api/mcp-server/dist/index.js"],
      "env": {
        "BULKPUBLISH_API_KEY": "bp_your_api_key_here"
      }
    }
  }
}
Claude Code

Claude Code の設定に MCP サーバーを追加します。

claude mcp add bulkpublish -- npx -y @bulkpublish/mcp-server

シェルのプロファイルまたは .env ファイルで環境変数を設定します。

export BULKPUBLISH_API_KEY=bp_your_api_key_here

リモート/ホスト型サーバー(HTTP)

上記の npx/stdio 構成では、サーバーはローカルで実行されます。ローカルプロセスを起動できない Web クライアント、つまり claude.ai のカスタムコネクター と Smithery のゲートウェイ は、ホスト型 HTTP エンドポイントに接続します。stdio 用の実行ファイルに加えて、このサーバーには Streamable HTTP トランスポート(dist/http.js。npm run start:http で起動)が含まれています。

エンドポイント用途
POST /mcpMCP Streamable HTTP(ステートレス)
GET /.well-known/mcp/server-card.jsonレジストリがスキャンを省略できるようにする静的メタデータ
GET /health稼働状態の確認

このサーバーはマルチテナントです。プロセスは API キーを保持しません。呼び出し元は、接続 URL(?key=bp_…)、Smithery の ?config= blob、または Authorization: Bearer bp_…/X-BulkPublish-Key ヘッダーを通じて、リクエストごとに各自の bp_… キーを指定します。initialize、tools/list、resources/* にはキーは不要です(スキャンとツールの検出が機能します)。キーなしの tools/call は 401 を返します。

Dockerfile が含まれています。

docker build -t bulkpublish-mcp . && docker run -p 8080:8080 bulkpublish-mcp

デプロイ後、claude.ai → Settings → Connectors → Add custom connector で https://<host>/mcp?key=bp_… として追加するか、https://<host>/mcp の URL を Smithery に公開します。

ツールプロファイル

サーバーには、BULKPUBLISH_TOOL_PROFILE で選択する3つのツールプロファイルが用意されています。

プロファイルツールデフォルトで使用される場所
core20 — チャンネル、投稿、メディア、分析、インタラクティブパネルホスト型 HTTP サーバー(dist/http.js)。Claude と ChatGPT のディレクトリに掲載されるのはこちらです
inbox27 — core のすべてに加え、受信トレイとコメント用ツール:list_conversations、get_conversation、reply_to_conversation、update_conversation、list_post_comments、reply_to_comment、moderate_commentホスト型デプロイでオプトイン(BULKPUBLISH_TOOL_PROFILE=inbox)。このプロファイルの core ツールは、core プロファイルのものと同一です
fullすべてのツール(受信トレイとコメント用ツール、ラベル、ハッシュタググループ、テンプレート、カレンダーメモ、レビューリンク、クライアント接続リンク、定期スケジュール、チャンネルセット、RSS フィード、分割アップロード、クォータを含む)ローカルの stdio サーバー(npx @bulkpublish/mcp-server)

ホスト型デプロイですべての機能を公開するには BULKPUBLISH_TOOL_PROFILE=full を設定し、ツール一覧を絞るにはローカルで core を設定します。パネルのボタンは create_post、publish_post、retry_post、update_post、delete_post、list_channels、list_media、get_post、create_media_upload、finalize_media_upload を呼び出すため、これらはすべて core に含まれます。

各ツールには title と、明示的な readOnlyHint、destructiveHint、idempotentHint、openWorldHint のブール値が設定されています。npm run check:annotations は、すべてのプロファイルでこれらを検証します(ディレクトリへの登録申請で使用する、ツールごとの根拠を記載した表を出力するには --table を追加します)。

利用可能なツール

★ が付いたツールは core プロファイルに含まれます(ツールプロファイルを参照)。✉ が付いたツールは inbox に含まれます(★ のツールもすべて含みます)。それ以外のツールを使用するには full が必要です。

ツール説明
投稿
create_post ★投稿を作成し、必要に応じて予約投稿します(postTypeOverrides を使って、リール、ストーリーズ、カルーセル、スレッドに対応)
compose_post ★インタラクティブな作成画面(MCP Apps)を開き、投稿を下書きまたは予約します。投稿は create_post で送信されます
update_post ★下書きまたは予約済みの投稿を更新します
get_post ★投稿の詳細をすべて取得します
list_posts ★フィルター(ステータス、検索、期間)を指定して投稿を一覧表示します
delete_post ★投稿を削除します
publish_post ★下書きの投稿をすぐに公開します
retry_post ★失敗した投稿を再試行します
approve_postチームの承認待ちの投稿を承認します(post:approve 権限を持つロールが対象)
reject_post承認待ちの投稿を任意の理由とともに下書きに戻します
get_post_metrics ★エンゲージメント指標(インプレッション、いいね、コメント、シェア)を取得します。各プラットフォームの項目には supportedMetrics が含まれます。このリストにないキーの値は、測定値ではなく保存された 0 です
publish_storyFacebook または Instagram にストーリーズとして公開します
bulk_posts複数の投稿をまとめて削除または再試行します
get_queue_slot ★チャンネルの次の最適な時間枠を取得します
チャンネル
list_channels ★接続済みのソーシャルメディアチャンネルをすべて一覧表示します
get_channel_healthチャンネルのトークンの状態を確認します
get_channel_optionsプラットフォーム固有のオプション(ボード、プレイリスト)を取得します
search_mentions@メンションするユーザーを検索します(X、Bluesky、Mastodon、LinkedIn Pages — LinkedIn の検索結果には、照合に使われた vanityName スラッグが含まれます)
チャンネルセット
list_channel_setsワンクリックで複数チャンネルを指定できる、保存済みチャンネルグループを一覧表示します
create_channel_setチャンネルの名前付きグループを保存します(組織あたり最大 50 個、名前は組織内で一意)
update_channel_setセットの名前を変更するか、チャンネルを変更します
delete_channel_setチャンネルセットを削除します
RSS 自動投稿
list_rss_feeds15 分ごとに取得される RSS/Atom フィードを一覧表示します(新しい項目は投稿になります)
create_rss_feedフィードを追加します(組織あたり最大 20 個)。mode は draft(デフォルト。項目は下書きになります)または publish(自動公開)です。任意の fieldMapping で、項目の表示方法(キャプションテンプレート、メディアの選択、切り詰め、チャンネルごとの上書き)を指定できます
update_rss_feedフィードを変更、一時停止、または別の URL に切り替えます(feedUrl を変更すると基準がリセットされます。過去の項目が一斉に投稿されることはありません)
delete_rss_feedフィードを停止して削除します
メディア
upload_media ★URL(または stdio サーバー上のローカルパス)からメディアファイルをアップロードします
get_mediaID でメディアファイルを取得します
list_media ★アップロード済みのメディアファイルを一覧表示します
delete_mediaメディアファイルを削除します
create_media_upload ★ブラウザーから直接アップロードするための署名付き R2 URL を確保します(投稿作成画面で使用)
finalize_media_upload ★ブラウザーからの PUT 後に、アップロード済みオブジェクトをメディアファイルとして登録します(投稿作成画面で使用)
create_multipart_upload大容量メディア(最大 1GB の動画)向けの分割アップロードを開始します。固定サイズ 10MB の各パート用に署名付き URL を発行します
complete_multipart_uploadアップロード済みの各パート(それぞれの partNumber と ETag)を結合し、メディアファイルとして登録します
abort_multipart_upload進行中の分割アップロードをキャンセルし、保存済みのパートを削除します
ラベル
create_label新しいラベルを作成します
list_labelsすべてのラベルを一覧表示します
update_labelラベルの名前または色を更新します
delete_labelラベルを削除します
分析
get_analytics ★期間を指定して分析の概要を取得します
スケジュール
list_schedules繰り返しスケジュールを一覧表示します
create_schedule繰り返しスケジュールを作成します
update_scheduleスケジュールを更新します
delete_scheduleスケジュールを削除します
受信トレイとコメント
list_conversations ✉ダイレクトメッセージ、レビュー、コメントスレッドを、最新のアクティビティ順に、フィルターとページ指定を使って一覧表示します(Pro プランと Business プラン)
get_conversation ✉1 件の会話のメッセージを古い順に読み込みます。既読にはなりません
reply_to_conversation ✉プラットフォーム上で相手にすぐ返信します。送信した返信は取り消せません
update_conversation ✉会話を既読または未読にする、アーカイブまたは再開する、スヌーズする、または担当者を割り当てます。メッセージは送信されません
list_post_comments ✉公開済みの投稿に付いたコメントとリアクションをチャンネルごとに一覧表示します。返信ツールとモデレーションツールで使う ID も含まれます
reply_to_comment ✉投稿を公開したチャンネルとして、コメントに公開返信をすぐに投稿します
moderate_comment ✉プラットフォーム上のコメントに「いいね」する、いいねを取り消す、非表示にする、非表示を解除する、または削除します(削除は元に戻せません)
アカウント
get_quota_usage現在のアカウント使用状況を確認します(BULKPUBLISH_HIDE_BILLING=1 の場合は非表示)
インタラクティブ UI(MCP Apps)
compose_post ★インタラクティブな投稿作成画面を開きます(上記にも記載)
view_analytics ★インタラクティブな分析ダッシュボードを開きます
view_posts ★インタラクティブな投稿一覧を開きます
view_channels ★インタラクティブなチャンネル表示を開きます
view_media ★インタラクティブなメディアギャラリーを開きます
view_quotaインタラクティブなアカウント使用状況の表示を開きます(BULKPUBLISH_HIDE_BILLING=1 の場合は非表示)

インタラクティブ UI(MCP Apps)

MCP Apps(Claude、ChatGPT、VS Code、Goose、Postman、Smithery のプレイグラウンド)をサポートするホストでは、compose_post ツールを使うと、会話内にインラインで表示されるインタラクティブな投稿作成画面が開きます。チャンネルを選択し、内容を入力し、必要に応じて予約投稿を設定してから送信します。送信時にはホストブリッジを介して create_post を呼び出すため、サンドボックス化された iframe に API キーが保持されることはありません。MCP Apps をサポートしていないホストにはプレーンテキストの概要が返されるため、問題は発生しません。

複数のツールが UI を表示します。compose_post(投稿作成画面)、view_analytics、view_posts、view_channels、view_media、view_quota です。それぞれが src/ui/<name>/ 内にある独立したウィジェットで、Vite によって単一の HTML ファイルにバンドルされ(各ウィジェットにつき、単一入力で 1 回実行します。scripts/build-ui.mjs を参照)、src/ui/widgets.generated.ts を介してサーバーにインライン化されます。BulkPublish ウェブアプリのデザイントークン(src/ui/tokens.css)を共有しているため、外観が統一されています。View は呼び出し元のツールの structuredContent からデータを受け取り、ホストブリッジを介してほかのツールを呼び出すことができます。そのため、サンドボックス化された iframe に API キーが保持されることはありません。MCP Apps をサポートしていないホストにはプレーンテキストの概要が返されます。

会話例

Claude で BulkPublish ツールを使用する例を示します。

あなた: 明日の午前 9 時(EST)に、「新機能を発表できることをうれしく思います!example.com でご確認ください」という投稿を、接続済みのすべてのチャンネルに予約投稿してください。

Claude: まず、接続済みのチャンネルを確認します。

[list_channels を呼び出す]

有効なチャンネルが 3 つあります。

  • X/Twitter:@yourcompany(ID:1)
  • LinkedIn:Your Company Page(ID:2)
  • Instagram:@yourcompany(ID:3)

それでは、明日の午前 9 時(米国東部時間)に投稿を予約します。

[コンテンツ、チャンネル、scheduledAt: "2025-01-16T14:00:00Z"、timezone: "America/New_York"、status: "scheduled" を指定して create_post を呼び出す]

完了しました。投稿を予約しました。

  • 投稿 ID:42
  • ステータス:scheduled
  • 予約日時:2025 年 1 月 16 日午前 9:00(EST)
  • チャンネル:X/Twitter、LinkedIn、Instagram

あなた: 今月の投稿のパフォーマンスを教えてください。

Claude: [from: "2025-01-01"、to: "2025-01-31" を指定して get_analytics を呼び出す]

1 月の分析概要はこちらです。

  • 投稿総数:28
  • 公開済み:25
  • 失敗:1
  • 予約済み(保留中):2
  • プラットフォーム別:X/Twitter(25 件中 24 件公開済み)、LinkedIn(20 件中 19 件公開済み)、Instagram(15 件すべて公開済み)
  • 最多投稿日:1 月 12 日(5 件)

あなた: この画像をアップロードして、画像を添付した下書き投稿を作成してください:https://example.com/product-launch.png

Claude: [url を指定して upload_media を呼び出す]

画像をアップロードしました(ID:15、1200x630px、245KB)。

[コンテンツと mediaFileIds を指定して create_post を呼び出す]

製品発表の画像を添付した下書き投稿を作成しました(ID:43)。準備ができたら、内容を確認して公開できます。

環境変数

変数必須デフォルト説明
BULKPUBLISH_API_KEYはい—API キー(bp_ で始まります)
BULKPUBLISH_BASE_URLいいえhttps://app.bulkpublish.comAPI のベース URL(セルフホスト型インスタンス用)
BULKPUBLISH_TOOL_PROFILEいいえfull(stdio) / core(ホスト型 HTTP)core、inbox、full のいずれか。 ツールプロファイルを参照してください
BULKPUBLISH_HIDE_BILLINGいいえ—1 を指定すると get_quota_usage と view_quota を除外します(full の場合のみ有効です。core には常に含まれません)

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。