HasData Facebook について
HasData Facebook は、公開 Facebook ページやプロフィールを調べる MCP クライアント向けのホスト型読み取り専用サービスです。ページ情報と投稿フィードを、反応データとともに構造化 JSON で返します。
主な機能
- 01ハンドルまたは ID による公開ページ検索
- 02ページ情報と連絡先の取得
- 03投稿とエンゲージメント情報の取得
- 04ページネーショントークンでフィードを継続
活用シーン
- 01ブランドページのいいね数と情報の確認
- 02公開ページから連絡先を取得
- 03投稿ごとの反応の比較
- 04ページの過去の投稿を続けて閲覧
MCP 対応
ホスト型リモートサーバーとして、公開ページやプロフィールとそのフィードを取得する読み取り専用ツールを MCP クライアントに提供します。言語の値を示すリソースもあります。非公開アカウントとグループは対象外です。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.hasdata.com/mcp?apis=facebookclaude mcp add --transport http com-hasdata-facebook https://mcp.hasdata.com/mcp?apis=facebook{"mcpServers":{"com-hasdata-facebook":{"type":"http","url":"https://mcp.hasdata.com/mcp?apis=facebook"}}}Cursor で開く{"servers":{"com-hasdata-facebook":{"type":"http","url":"https://mcp.hasdata.com/mcp?apis=facebook"}}}VS Code で開く{"mcpServers":{"com-hasdata-facebook":{"type":"http","url":"https://mcp.hasdata.com/mcp?apis=facebook"}}}{"mcpServers":{"com-hasdata-facebook":{"serverUrl":"https://mcp.hasdata.com/mcp?apis=facebook"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://mcp.hasdata.com/mcp?apis=facebook認証が必要ツール
2| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| pets | number | いいえ | ペットの数。 |
| neLat | number | いいえ | 地図のバウンディングボックスの北東角の緯度。4 つの境界ボックス座標をすべて指定すると、場所ではなくボックス内でリスティングを検索します。 |
| neLng | number | いいえ | 地図のバウンディングボックスの北東角の経度。 |
| swLat | number | いいえ | 地図のバウンディングボックスの南西角の緯度。 |
| swLng | number | いいえ | 地図のバウンディングボックスの南西角の経度。 |
| adults | number | いいえ | 大人の人数。 |
| checkIn | string | はい | リスティングのチェックイン日。 |
| infants | number | いいえ | 乳幼児の人数。 |
| checkOut | string | いいえ | リスティングのチェックアウト日。 |
| children | number | いいえ | 子どもの人数。 |
| location | string | いいえ | リスティングを検索する場所。完全な地図バウンディングボックス(neLat、neLng、swLat、swLng)を指定しない場合は必須です。 |
| nextPageToken | string | いいえ | 次のページの結果を取得するためのトークン。 |
詳細
Facebook MCP Server
Claude、Cursor、Windsurf など、あらゆる MCP クライアントに、読み取り専用の Facebook ツールを1つ提供する、ホスト型の Model Context Protocol(MCP)サーバーです。公開ページまたはプロフィールをハンドルで検索し、正確ないいね数、連絡先、所有者を含むページレコードに加えて、リアクション、コメント、シェアを含む投稿フィードを、すべて構造化 JSON として取得できます。Meta の開発者アプリも、ホストするものも必要ありません。
ログアウト状態の訪問者が閲覧できる公開 Facebook ページを読み取ります。グループと非公開の個人アカウントは対象外です。
毎月1,000クレジットが無料で、カードも不要です。10クレジットのレートで、Facebook を100回呼び出せます。
https://mcp.hasdata.com/mcp?apis=facebook
目次
必要なもの
MCP クライアントと、ダッシュボードから取得できる HasData API キーが必要です。カード不要で無料で作成でき、無料枠では10クレジットのレートで月に約100回呼び出せます。これはリモートサーバーなので、最も簡単な方法は URL と x-api-key ヘッダーを使うことです。コンテナーを実行する必要はありません。stdio のみで通信するクライアントからは、npm で @hasdata/facebook-mcp、PyPI で hasdata-facebook-mcp として公開されている軽量なランチャーを介して接続します。設定例は以下のとおりです。
クイックスタート
サーバー URL はどのクライアントでも同じです。Claude Code と Claude Desktop では、実際に動作させる手順を紹介します。その他のブロックは、各クライアントがリモートサーバー向けにドキュメントで定めている形式に従います。
| 項目 | 値 |
|---|---|
| URL | https://mcp.hasdata.com/mcp?apis=facebook |
| トランスポート | HTTP、ストリーミング可能 |
| 認証ヘッダー | x-api-key: HASDATA_API_KEY |
OAuth に対応しているクライアントでは、同じ URL をコネクターとして追加してサインインすれば、設定ファイルにキーを記載せずに利用できます。
Claude Code
claude mcp add --transport http facebook "https://mcp.hasdata.com/mcp?apis=facebook" \
--header "x-api-key: HASDATA_API_KEY"
Claude Desktop
「設定」から「コネクター」、「カスタムコネクターを追加」の順に選択し、https://mcp.hasdata.com/mcp?apis=facebook を貼り付けてサインインします。
設定ファイルを使う方法では、Claude Desktop が読み込むのはローカル(stdio)サーバーのみのため、stdio ランチャーを介してリモートサーバーに接続します。@hasdata/facebook-mcp パッケージがそのランチャーであり、キーを環境変数から読み込みます。claude_desktop_config.json に以下を追加します。
{
"mcpServers": {
"facebook": {
"command": "npx",
"args": ["-y", "@hasdata/facebook-mcp"],
"env": { "HASDATA_API_KEY": "YOUR_KEY" }
}
}
}
Node の代わりに Python を使う場合は、ランチャーを PyPI パッケージに置き換えます。これは手動でインストールせずに uvx で実行できます。
{
"mcpServers": {
"facebook": {
"command": "uvx",
"args": ["hasdata-facebook-mcp"],
"env": { "HASDATA_API_KEY": "YOUR_KEY" }
}
}
}
Cursor
すべてのプロジェクトに適用する場合は ~/.cursor/mcp.json、1 つのプロジェクトに適用する場合は .cursor/mcp.json を使用します。
{
"mcpServers": {
"facebook": {
"url": "https://mcp.hasdata.com/mcp?apis=facebook",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}
Windsurf
~/.codeium/windsurf/mcp_config.json を使用します。Windsurf ではフィールド名は url ではなく serverUrl です。
{
"mcpServers": {
"facebook": {
"serverUrl": "https://mcp.hasdata.com/mcp?apis=facebook",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}
VS Code
ワークスペース内の .vscode/mcp.json を使用します。
{
"servers": {
"facebook": {
"type": "http",
"url": "https://mcp.hasdata.com/mcp?apis=facebook",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}
プロンプトの例
- Nike ページに「いいね!」している人は何人で、今週話題にしている人は何人ですか?
- この Facebook ページの連絡先情報と、確認済みの所有者を取得してください。
- このページの最新 10 件の投稿を読み、最もシェアされた投稿を教えてください。
- このブランドの投稿へのリアクションの内訳を、競合他社の投稿と比較してください。
- この Facebook ページは認証済みですか?また、どのカテゴリが登録されていますか?
- このページのフィードを月初までさかのぼり、動画付きの投稿を一覧表示してください。
1 回の呼び出しで、ページのレコードと最新の投稿が返されます。フィードをたどるには追加の呼び出しが必要です。前のレスポンスで返されるトークンを使い、投稿 3 件ごとに 1 回呼び出します。
ツール
| ツール | 返される内容 |
|---|---|
hasdata_facebook_profile_getFacebookProfile | ハンドル(ユーザー名、@username、または数値のプロフィール ID)で公開 Facebook ページまたはプロフィールを取得し、ページ ID、名前、ユーザー名、カテゴリ、自己紹介、正確な「いいね!」数などを返します。1 回の呼び出しにつき 10 クレジット |
ツールは 1 つで、成功した呼び出し 1 回につき 10 クレジットです。
Facebook プロフィールを取得する
hasdata_facebook_profile_getFacebookProfile
フィードを含む公開ページまたはプロフィールです。
| パラメーター | 型 | 必須 | 備考 |
|---|---|---|---|
handle | string | はい | @ の有無を問わないユーザー名、または profile.php?id=… URL 内の数値 ID |
language | string | ページの表示言語。en、de、pt、zh-hans など 32 種類のコードから指定します | |
nextPageToken | string | 次の 3 件の投稿を読み込むための、前のレスポンスからのカーソル |
最初の呼び出しでは 4 つのブロックが返されます。profile はページのレコード、posts は最新の投稿、photos は最近の画像の一覧、pagination は postsPerPage、nextPage、および次のページに進むための nextPageToken を含みます。
トークンを指定した呼び出しでは、フィードが終わってトークンがなくなるまで、1 回につき投稿 3 件分の posts と pagination のみが返されます。トークンは呼び出しのたびに更新されます。
{
"profile": {
"id": "100044541544829",
"pageId": "15087023444",
"name": "Nike",
"username": "nike",
"url": "https://www.facebook.com/nike",
"category": "Sportswear Store",
"biography": "Just Do It.",
"likesCount": 39545204,
"talkingAboutCount": 173971,
"checkInsCount": 18299,
"followersCount": "39M followers",
"followingCount": "24 following",
"verified": true,
"website": "nike.com",
"websiteUrl": "http://nike.com/",
"phone": "+48 58 881 27 61",
"owner": { "name": "NIKE, Inc.", "isConfirmed": true },
"profilePicUrl": "https://scontent.fmex5-1.fna.fbcdn.net/v/t39.30808-1/284964043_10159903868513445_7696353984967674128_n.jpg",
"coverPhotoUrl": "https://scontent.fmex25-1.fna.fbcdn.net/v/t39.30808-6/285211224_10159903868008445_5477337468887983165_n.png"
},
"posts": [
{
"id": "1393461115481927",
"url": "https://www.facebook.com/reel/2166091230582141/",
"text": "Leave your limits at the surface. #JustDoIt",
"hashtags": ["#JustDoIt"],
"timestamp": "2025-09-15T16:01:59.000Z",
"reactionsCount": 7885,
"commentsCount": 2461,
"sharesCount": 1124,
"reactions": [{ "type": "Like", "count": 6491 }],
"media": [{ "id": "2166091230582141", "type": "Video" }]
}
],
"photos": [{ "id": "1095811278580247", "type": "Photo", "image": "https://scontent.fmex22-1.fna.fbcdn.net/v/t39.30808-6/471313661_18515827156020081_2460706748949541958_n.jpg" }],
"pagination": { "postsPerPage": 3, "nextPage": 2, "nextPageToken": "eyJjdXJzb3IiOiJDZzhPYjNKbllXNXBZMTlqZFhKemIzS…" }
}
プロンプトとリソース
サーバーは、固定リストから選択する単一のパラメーターで受け付けられる値を示すリソースを1つ公開しています。拒否された呼び出しから語彙を学ぶよりも、このリソースを読むほうが低コストで、クレジットも消費しません。
| パラメーター | 値の数 | 選択する内容 |
|---|---|---|
language | 32 | ページの表示言語です。Facebook はリクエストの言語でページを配信するため、この値によってローカライズされた文字列(followersCount、followingCount、category)が変わります。一方、正確な数値(likesCount、talkingAboutCount)は、どの言語でも数値のままです。 |
URI は hasdata://facebook/language です。
このリストは API キーなしで配信されるため、クライアントはユーザーがサインアップする前に読み取ることができます。
エラーと失敗時の処理
正常に動作する場合だけを想定せず、次の点に備えてください。
3つのカウントは数値で、2つは文字列ですが、これはバグではありません。 likesCount、talkingAboutCount、checkInsCount は、Facebook が公開している正確な数値です。followersCount と followingCount は、ページに表示される丸められたローカライズ済みテキストで、英語では "39M followers"、language が de の場合は "39 Mio. Follower" となります。比較には数値を使い、表示には文字列を使ってください。
language によって変わるのは文字列であり、数値ではありません。 de では category が Sportswear Store から Sportbekleidungsgeschäft に変わりましたが、likesCount は数値のままでした。計算のためではなく、読む人に合わせて言語を選んでください。
存在しないページ、削除されたページ、または非公開のページでも、200 が返ります。 その場合、レスポンスには profile の代わりに error が含まれ、呼び出しには料金が発生します。読み取る前に profile の有無を確認してください。グループや個人の非公開アカウントも同様です。
フィードの最初のページに含まれる投稿は、3件ではなく1件です。 postsPerPage は3を示し、2ページ目以降には実際に3件ずつ返されますが、最初のレスポンスにはプロフィールと写真とともに最新の投稿だけが含まれます。フィールドの値を当てにせず、実際に取得した件数を数えてください。
後続ページでは profile と photos が返されません。 nextPageToken を指定した呼び出しで返るのは posts と pagination のみです。再び返されることを期待せず、最初のレスポンスからプロフィールを保持してください。
次に進む方法はトークンだけです。 nextPage は独自の記録用のページ番号であり、それを受け取るパラメーターはありません。前回の nextPageToken を変更せずに渡し、レスポンスに含まれなくなったら終了してください。
連絡先情報は、正規の記録ではなく、リクエストに対してページが表示する内容です。 グローバルブランドのページに地域の電話番号が表示されることがあり、website は表示テキスト、websiteUrl はリンクです。オーナー名を確認済みとして扱う前に、owner.isConfirmed を確認してください。
画像 URL は、署名付きパラメーターを含む Facebook CDN のリンクです。 有効期限があります。必要な画像はすぐに取得し、URL ではなくファイルを保存してください。
データを含む結果には、サポートへの問い合わせで伝える価値のある requestMetadata.id も含まれます。
料金、無料枠、制限
Facebook ツールは、呼び出しの成功ごとに10クレジットかかります。レスポンスのサイズによって料金は変わらず、フィードの1ページ分は最初の呼び出しと同じ料金なので、投稿を30件読むには1回と、その後に10回の呼び出しが必要です。
無料枠はカード登録不要で毎月1,000クレジット、基本料金でFacebookを100回呼び出せます。請求サイクルごとに更新されるため、呼び出し頻度の低いエージェントなら、無料枠だけで使い続けられます。
有料プランは、200,000クレジット(20,000回の呼び出し)が含まれる月額59ドルから始まります。利用量が増えるほど単価は下がり、エントリープランでは呼び出し1,000回あたり2.95ドル、Basicでは1.19ドル、Growth各プランでは0.83ドルです。最新の料金は料金ページをご覧ください。
同時実行数もプランによって異なります。無料枠では一度に1件、Startupでは5件、Basicでは15件、Growth各プランでは50~500件のリクエストを同時に処理できます。無人で動かす場合は、429が返されたらバックオフを設定して再試行してください。ページのリストを拡充するエージェントは、あなたが気づく前に上限に達する可能性があります。
200以外のステータスコードで返されたリクエストは課金されません。ページが見つからなかった場合でも、呼び出しが成功していれば課金対象です。
比較
MetaのGraph APIは、ページデータを取得するための公式な方法ですが、想定されている用途は異なります。
| Meta Graph API | このサーバー | |
|---|---|---|
| 利用条件 | Meta開発者アプリ、アクセストークン、自分が管理していないページの場合はアプリレビュー | APIキー |
| 読み取れるページ | 自分のページはすべて、他のページはレビュー済みの権限で許可されたもののみ | 公開されている任意のページまたはプロフィール |
| セットアップ | アプリの作成、権限の設定、トークンの管理、レビュー | ヘッダーを1つ設定 |
| 投稿へのリアクション | 管理しているページのリアクション種別ごとの件数 | 公開されている任意のページのリアクション種別ごとの件数 |
| データの言語 | アプリのロケール | 1回の呼び出しごとに32言語から選択 |
| 料金 | レート制限内であれば無料 | 無料枠を超えると有料。1回の呼び出しにつき10クレジット |
判断の決め手となるのは、読み取れるページです。自分が管理するページにはGraph APIが適しています。それ以外のページにアクセスするには、Page Public Content Access権限が必要で、ビジネス認証と用途を明記したレビューが求められます。自分のページを読み取る場合はGraph APIを使ってください。無料で、必要なデータをすべて取得できます。
FAQ
Facebookの公式MCPサーバーはありますか?
Metaは、公開ページを読み取るためのMCPサーバーを公開していません。このMCPサーバーはHasDataが保守しており、公開Facebookページを読み取ります。
Facebook MCPサーバーとは何ですか?
MCPサーバーは、AIクライアントが呼び出せるツールを提供します。このMCPサーバーは、公開Facebookページとそのフィードを、ブラウザーやスクレイピングライブラリをスタックに追加せずに、エージェントが推論できるJSONに変換します。
FacebookアカウントやMeta開発者アプリは必要ですか?
いいえ。必要な認証情報はHasDataキーだけです。
個人プロフィールやグループを読み取れますか?
公開されている個人プロフィールは、ページと同じ方法で読み取れます。非公開アカウントやグループには対応しておらず、利用できないことを示すエラーが返されます。
ユーザー名の代わりに数値IDを渡せますか?
はい。idとレスポンスで返されるpageIdはどちらもhandleとして解決されるため、最初に名前でアクセスしたページを、以降はIDで追跡できます。
フィード全体を読み取るにはどうすればよいですか?
最初にハンドルを指定して呼び出し、その後は各レスポンスのnextPageTokenを使って、トークンのないレスポンスが返るまで呼び出しを続けます。各トークンで投稿が3件返されます。
followersCountはテキストなのに、likesCountは数値なのはなぜですか?
Facebookがそのように公開しているためです。「いいね!」の数と「話題にしている人」の数はページに正確な値が表示されますが、フォロワー数は丸められ、ローカライズされた形式で表示されます。レスポンスでは、どちらもそのまま返します。
他のHasData APIと一緒に使えますか?
はい。1つのキーですべてのAPIを利用でき、apisパラメーターを使えば1つのエンドポイントですべてにアクセスできます。クライアントを?apis=facebook,instagramに接続すると、1つの接続で両方のツールセットを取得できます。または、全カタログを利用するにはmcp.hasdata.com/mcpに接続してください。
HasData は Meta または Facebook と提携していますか?
いいえ。HasData は独立したサービスであり、Meta との提携、承認、または後援を受けていません。Facebook はそれぞれの所有者の商標です。ツールは公開されているデータのみを扱います。結果を Meta の利用規約および適用される法律に従って使用する責任は、お客様にあります。
コンプライアンスと個人データ
ビジネスのページレコードはビジネス記録ですが、公開個人プロフィールは、名前、写真、自己紹介、公開フィードを含む、まさに個人データです。このツールは両者を区別しないため、用途に応じた判断が必要です。ユースケースに必要な範囲にとどめ、業務上の関係がない個人のプロフィールを作成せず、データを保存する前に GDPR、CCPA、Meta の利用規約に基づく義務を確認してください。ページに掲載されている連絡先情報は顧客向けに公開されたものであり、それらに対するマーケティングには別途規制が適用されます。
HasData のリンク
- Facebook Profile API のドキュメント。このツールの基盤となる REST エンドポイントです
- MCP サーバーのドキュメント
- 料金
- ダッシュボード
その他の HasData MCP サーバー:Instagram、TikTok、YouTube、Google Search、Google Images、Google Scholar、Google Maps、Google Trends、Google Flights、Bing、DuckDuckGo、Amazon、Walmart、Shopify、Yelp、Yellow Pages、Zillow、Redfin、Airbnb、Booking.com、Indeed、Glassdoor、Web Scraping。
開発
ランチャーはリモートサーバーへの薄い stdio ブリッジであるため、ビルドは不要です。
npm install
HASDATA_API_KEY=your_key_here npm test
test/ のテストでは、ここでコミットしなくても変更される可能性があるツールの契約を検証します。?apis=facebook が想定どおり 1 つのツールを返すこと、ツール名が変更されていないこと、引き続き handle が必須で説明が付いていること、language がこの README に記載されたコードを引き続き提供すること、そして使用中のキーが実際に受け付けられることを確認します。
1 つのテストでは実際のページを読み込み、この README の前提となる 2 点を検証します。likesCount が表示テキストではなく数値であることと、pagination.nextPageToken が返されることです。このトークンがなければ、この README で説明しているフィードの巡回は実現できません。この呼び出しには 10 クレジットかかります。これは適切な理由で失敗しうるカナリアテストの料金です。
上流のツール一覧はこのリポジトリに変更を加えなくても変わる可能性があるため、契約テストスイートは週次のスケジュールでも実行されます。
コントリビューション
ツールの表、レスポンスのサンプル、または実際の挙動と異なるドキュメントを見つけた場合は、イシューを作成してください。そのためのテンプレートがあります。同じ内容のプルリクエストも歓迎します。ランチャーに関するものも歓迎します。
ライセンス
MIT です。LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。