GetSales: Outreach MCP Server について
GetSales Outreach MCP Serverは、GTMチームや代理店がAIエージェントを使って自社のGetSalesワークスペースとアウトリーチ業務を操作するためのサーバーです。ホスト型エンドポイントでツール群を提供し、危険として指定された操作はプレビューと確認を求めます。
主な機能
- 01人物・企業のテーブルとレコードの操作
- 02エンリッチメント列とワークフローの管理
- 03受信トレイ、下書き、タスクへのアクセス
- 04ウェブサイトのシグナルとWebhookの処理
- 05危険な操作のプレビューと確認
- 06OAuthまたはAPIキーで接続
活用シーン
- 01対象となる連絡先の検索と整理
- 02実行前にエンリッチメント費用を見積もる
- 03返信待ちスレッドとAI SDRの下書きを確認
- 04公開前に確認できるワークフロー案の作成
MCP 対応
ホスト型MCPサーバーが単一エンドポイントでGetSalesワークスペースに接続し、テーブル、人物、企業、エンリッチメント、ワークフロー、受信トレイ、タスク、シグナル、Webhookのツールを提供します。streamable HTTPに対応し、npmランチャーとDockerイメージも用意されています。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp2.getsales.io/mcp/publicclaude mcp add --transport http io-getsales-outreach https://mcp2.getsales.io/mcp/public{"mcpServers":{"io-getsales-outreach":{"type":"http","url":"https://mcp2.getsales.io/mcp/public"}}}Cursor で開く{"servers":{"io-getsales-outreach":{"type":"http","url":"https://mcp2.getsales.io/mcp/public"}}}VS Code で開く{"mcpServers":{"io-getsales-outreach":{"type":"http","url":"https://mcp2.getsales.io/mcp/public"}}}{"mcpServers":{"io-getsales-outreach":{"serverUrl":"https://mcp2.getsales.io/mcp/public"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
GetSales:アウトリーチ MCP サーバー
GetSales は、代理店や GTM チーム向けの LinkedIn およびメールでのアウトリーチを、1 つのアプリで提供します。販売対象を説明すると、GetSales が該当する人々とその仕事用メールアドレスを見つけてスコアを付け、最初のメッセージを書き、すべての返信をチームの受信トレイに集約します。
この MCP サーバーを使うと、AI エージェントが GetSales ワークスペース上で作業できます。Claude、Cursor、ChatGPT、その他の MCP クライアントは、ホストされた単一のエンドポイント https://mcp2.getsales.io/mcp/public に接続し、4 つのメタツールを通じて、人や会社のテーブル、エンリッチメント列、ワークフロー、AI SDR の下書きがある受信トレイ、タスク、ウェブサイトのシグナル、ウェブフックにアクセスします。
サーバーはホストされているため、このリポジトリには構成一式のみが含まれ、サーバーコードはありません。URL 用のクライアント設定、npx と Docker のセットアップ、npm ランチャーとそのイメージ、MCP Registry のエントリー、Claude Code と Cursor のプラグインマニフェスト、エージェントスキルが含まれています。
アウトリーチ MCP サーバーとは何ですか?
アウトリーチ MCP サーバーは、アウトリーチ製品のオブジェクトを Model Context Protocol のツールとして利用できるようにします。これにより、AI エージェントは、適切な人々のリストを作成し、データをエンリッチメントし、シーケンスに追加して、返信に対応するといった、アプリで人が行う作業をチャットから実行できます。MCP は、Claude、Cursor、ChatGPT などのクライアントがサーバー上のツールを呼び出すために使うオープンプロトコルです。
このサーバーは、お使いの GetSales ワークスペース内のオブジェクトを操作します。1 文から作成したテーブル、実行前に料金を確認できる仕事用メールアドレスの列、条件に合う人向けに下書きしたワークフロー、または対応待ちのスレッドを依頼すると、エージェントが呼び出しを連携させます。削除ツールやキャンセルツールなど、サーバーが危険と判断するツールは、プレビューを表示し、確認後にのみ実行されます。有料の作業にはこのプレビューが適用されないため、このリポジトリのスキルでは、エージェントが見積もりを提示し、作業を開始する前にユーザーの承認を待つようにしています。
対応しているクライアントは何ですか?
ストリーミング可能な HTTP に対応しているか、コマンドを起動できる MCP クライアントであれば、どれでも利用できます。
- Claude:claude.ai、Claude Desktop、Claude Code
- Cursor
- ChatGPT:カスタムコネクター経由
- VS Code、Codex、その他のエージェントランタイム
MCP を利用しない場合は、各ツールが GetSales REST API のエンドポイントに対応しています。ドキュメントは docs.getsales.io にあり、両方で同じ API キーを使用できます。
GetSales を Claude、Cursor、または ChatGPT に接続するには?
| セットアップ | 対象 | サインイン | 必要なもの |
|---|---|---|---|
URL https://mcp2.getsales.io/mcp/public | ストリーミング可能な HTTP に対応するクライアント:claude.ai、Claude Desktop、Claude Code、Cursor、ChatGPT、VS Code | ブラウザーでの OAuth、または API キーヘッダー | インストール不要 |
npm ランチャー @getsales/outreach-mcp | コマンドの起動のみ可能なクライアント | OAuth、または GETSALES_API_KEY | Node.js 18 以降 |
Docker イメージ getsalesio/outreach-mcp | Node.js がないホスト | GETSALES_API_KEY のみ | Docker |
1. アカウントを取得します。 GetSales に登録するか、すでにお使いのワークスペースを使用します。
2. サーバーをクライアントに追加します。 Claude Desktop と Cursor は、設定ファイルからそのままの URL を読み込みます(examples/claude_desktop_config.json、examples/cursor_mcp.json)。
{
"mcpServers": {
"getsales": { "url": "https://mcp2.getsales.io/mcp/public" }
}
}
Claude Code では、コマンドを 1 つ実行するだけです。
claude mcp add --transport http getsales https://mcp2.getsales.io/mcp/public
claude.ai では、Settings、Connectors、Add custom connector の順に開き、同じ URL を貼り付けます。
キーを貼り付ける必要はありません。最初の呼び出しでは WWW-Authenticate チャレンジが返され、クライアントが自身を登録(動的クライアント登録)すると、GetSales の同意画面がブラウザーで開きます。サインインし、クライアントが操作できるワークスペースを選んで、Allow をクリックします。
ブラウザーを使えないクライアント(CI、サーバー、スクリプトなど)は、代わりにアプリの Settings、API keys で作成した API キーを送信します。
claude mcp add --transport http getsales https://mcp2.getsales.io/mcp/public --header "Authorization: Bearer gs_live_..."
接続ごとに、いずれか一方の方法を使用してください。OAuth を実行しながら固定ヘッダーも送信するクライアントは、リクエストのたびに OAuth トークンをそのヘッダーで上書きします。
コマンドの起動しかできないクライアントでは、ランチャーを実行します(examples/claude_desktop_config.npx.json)。同じ OAuth フローを実行するか、キーを env に設定すれば GETSALES_API_KEY を使用します。キーはベアラーとしてサーバーに送信され、コマンドラインには表示されません。そのため、プロセス一覧やクライアントのランチャーログにも表示されません。
{
"mcpServers": {
"getsales": {
"command": "npx",
"args": ["-y", "@getsales/outreach-mcp"]
}
}
}
Docker イメージは同じランチャーを実行し、キーのみでサインインします(examples/claude_desktop_config.docker.json)。-e と変数名だけを指定すると、Docker はクライアントの env からコンテナーにキーを渡すため、キーは Docker のコマンドラインに表示されません。
{
"mcpServers": {
"getsales": {
"command": "docker",
"args": ["run", "-i", "--rm", "-e", "GETSALES_API_KEY", "getsalesio/outreach-mcp"],
"env": { "GETSALES_API_KEY": "gs_live_..." }
}
}
}
コンテナー内では OAuth を完了できません。同意ページの後、ブラウザーは localhost(お使いのマシン)に戻りますが、mcp-remote はコンテナー独自のループバックでその応答を待つためです。そのため、キーがない場合、コンテナーは理由を示してすぐに停止します。OAuth を使う場合は、クライアントに URL を設定するか、npm ランチャーを実行してください。
3. 普段の言葉で依頼します。
「ドイツの SEO 代理店のマーケティング責任者の一覧表を作成し、仕事用メールアドレスの列を追加して、実行前に費用を教えてください。」
エージェントがツールを見つけて連携します。一覧表を作成し、情報源として AI 検索を行い、メールアドレスの列を追加して、見積もりを提示します。その後、あなたの指示を待ちます。ChatGPT、VS Code、Codex も含め、各クライアントの詳しい手順については、CONNECT.md をご覧ください。
Claude Code または Cursor のプラグインとしてインストールできますか?
はい。このリポジトリはどちらにも対応したプラグイン(.claude-plugin/plugin.json、.cursor-plugin/plugin.json)で、次の2つが含まれています。
.mcp.jsonに記載されている、ホスト型サーバーhttps://mcp2.getsales.io/mcp/public。getsalesスキルと、実際のワークフロー例。このスキルは、ツールを呼び出す前に調べること、有料の作業については料金を提示して承諾を待つこと、危険なツールを実行する前にプレビューを表示して確認を得ること、再試行する前にエラーを読むことをエージェントに教えます。
Claude Code では、このリポジトリをクローンし、1回のセッションでプラグインを読み込みます。
claude --plugin-dir <path to the clone>
Cursor の場合は、クローンからプラグインファイルを Cursor のローカルプラグインフォルダーにコピーします。
mkdir -p ~/.cursor/plugins/local/getsales
cp -R .cursor-plugin .mcp.json skills assets ~/.cursor/plugins/local/getsales/
次に、Developer: Reload Window を実行します。スキルとサーバーが Customize に表示されます。
このプラグインはキーを保持せず、設定も求めません。最初のツール呼び出し時に同意ページが開きます。
エージェントは何ができますか?
サーバーはワークスペースのツールをツールセットにまとめており、エージェントはタスクに必要なものだけを読み込みます。対象とアクションを平易な言葉で search_tools に指定し、選ばれた定義(describe_tool、または detail: "full" を指定した search_tools)を読み取ってから、call_tool でツールを実行します。list_toolsets は一覧です。
ワークスペースのツールセットは、次の領域に分かれています。
Playtables:テーブル、人物、エンリッチメント、ワークフロー
| ツールセット | エージェントが操作する対象 |
|---|---|
playtables.tables | テーブル、保存済みビュー、各テーブルの状況 |
playtables.columns | エンリッチメント列と AI 列、セル、実行、コスト見積もり |
playtables.rows | 人物、企業、それぞれに起きたことのフィード |
playtables.crm | パイプラインのステージ、メモ、タグ、連絡拒否リスト |
playtables.sources | 行の取得元:AI 検索、CSV インポート、Webhook |
playtables.workflows | ワークフロー:作成、検証、公開、一時停止、再開 |
playtables.workflow-records | ワークフローにおける各人物の進捗状況とタスク |
受信トレイ、送信者プロフィール、AI SDR
| ツールセット | エージェントが操作する対象 |
|---|---|
inbox | スレッド、メッセージ、AI SDR の下書き、タスク、人物のタイムライン、スレッドの相手 |
sender-profiles | 送信者プロフィール、その変数、今日および日ごとの実績 |
ai-sdr.agents | チームの AI SDR エージェント、そのシナリオ、計画、実行 |
ai-sdr.training | AI SDR の回答とそのソースドキュメント、および学習内容:例、ヒント、修正、テスト |
シグナル
| ツールセット | エージェントが操作する対象 |
|---|---|
signals | セッションと訪問者、人物または企業として特定された情報、テーブルのデータに反応するプレイ |
ワークスペース:設定パネルと管理パネル
| ツールセット | エージェントが扱う内容 |
|---|---|
workspace.team | アカウント、ワークスペース、メンバーと招待、通知フィード、オンボーディング用のウェブサイト閲覧 |
workspace.access | 有効な API キーと、ユーザーが接続したアプリ |
workspace.billing | サブスクリプション、請求書、支払い方法、クレジット残高と利用額 |
workspace.website-tracking | トラッキング設定:サイト、重要なページ、トラッキング対象イベント、設定 |
workspace.integrations | データプロバイダーとその価格、自分の接続と HTTP ツール、呼び出しログ |
workspace.webhooks | Webhook のサブスクリプションと配信 |
workspace.whitelabel | ホワイトラベルブランド、クライアントワークスペース、証明書 |
接続後に尋ねられること:
- 「今月、Berlin agencies テーブルの状況はどうですか?人々はどこで離脱していますか?」
- 「私の対応待ちのスレッドはどれですか?それぞれについて AI SDR が作成した下書きは何ですか?」
- 「今週、料金ページを訪問したものの、まだ返信していない人は誰ですか?」
- 「Q4 ビュー向けに、メールを送信し、2 日待ってからフォローアップするワークフローを作成してください。公開する前に見せてください。」
- 「残りのクレジットはいくつですか?先週のデータ補完にはいくら使いましたか?」
- 「新しい返信を受信したときに、エンドポイントへ通知を送るよう登録し、テストイベントを発火してください。」
最初に確認を求めるツールはどれですか?
サーバーが危険とマークしたツールです。最初の呼び出しでは何も変更せず、実行した場合に起きることのプレビューと commit_token を返します。同じ呼び出しをそのトークンとともにもう一度行うと、実行されます。このトークンは、そのツール、引数、ワークスペースの組み合わせで一度だけ使用でき、300 秒後に期限切れになります。現在、危険とマークされているのは、削除またはキャンセルを行う各ツール、会話の統合、スレッドの相手のストップリストへの追加、サイトキーまたは取り込みキーのローテーション、サブスクリプションの変更、接続済みアプリの取り消し、Webhook の作成・変更・再実行、ワークフローの公開または再開、ワークフローでの個人の再開・再起動・除外、テーブルからの会社の除外、ウェブサイト訪問者と個人のリンク解除、AI SDR エージェントの変更、そのシナリオのリセット、またはサンプルの削除です。
以下はプレビューなしで最初の呼び出し時に実行されます。
- 有料の処理。 テーブル実行(タイプ
enrichのcreate_playtable_run)は、処理の進行に応じてクレジットを消費します。estimate_creditsで事前に費用を見積もり、max_budgetで上限を設定できますが、max_budgetを指定せずに実行すると上限はありません。AI 検索ソース(create_data_source)は、見積もりも上限もなく、結果ページの取得にクレジットを消費します。config.auto_run: trueの列は、新しく追加される各行を処理します。この処理は実行予算の対象外で、列に日次クレジット上限が設定されている場合にのみ、その上限が適用されます。 - 一括編集。 タイプ
bulkのcreate_playtable_runは、1 回の呼び出しで多数の行を変更します。操作には、行の削除や別のテーブルへの移動も含まれます。 - 会社の統合。
merge_companiesは、ある会社のリードを別の会社へ移動します。この操作を元に戻すツールはありません。
このスキルでは、エージェントにこのような操作の内容と、費用がある場合はその金額を説明させ、ユーザーの承認を待たせます。サーバーが受け付けるのは、ワークスペースあたり毎分最大 600 回の呼び出しと 120 回の書き込みです。
呼び出しに失敗するとどうなりますか?
拒否は、error.code に16種類のコードのいずれかが入った型付きエンベロープとして返されます。これは isError: true のツール結果として返され、解析が必要な文章ではありません。validation_failed ではフィールドとルールが示され、forbidden では不足している権限が示されます。payment_required は、ワークスペースのサブスクリプションが保留中であるか、プランの上限によりそのステップを実行できないことを意味します。
429には2種類あります。一方は context.retry_after を含み、呼び出しが多すぎるか、バックエンドが一時停止を求めている場合に返されます。指定された時間だけ待ってください(エッジでは秒数、バックエンドが独自の時計を示す場合はタイムスタンプです)。その後、呼び出し回数が少なくなるように作業をまとめてください。もう一方は context.resource を含み、context.retry_after は含みません。これはプランや同時実行数の上限を示します。たとえば、チームが同時に実行できる実行数などです。待っても解消されません。実行中の実行が終了するなど、リソースが空くと解消されます。
各応答にはトレース ID が含まれます。問題を報告する際は、その ID を伝えてください。
キーと権限の仕組みを教えてください。
- OAuth(対話型クライアント向け)。 ユーザーは GetSales の同意画面でサインインし、クライアントが操作できるワークスペースを選んで「許可」をクリックします。パスワードがクライアントに渡ることはなく、クライアントは独自のトークンを更新します。ワークスペースの[Settings]の[Connected apps]から接続を取り消せます。
- API キー(ヘッドレスクライアント向け)。 アプリの[Settings]の[API keys]で作成した
gs_live_...キーを、Authorization: Bearer gs_live_...として送信します。シークレットが表示されるのは一度だけです。キーは1つのワークスペースに属し、有効期限なしで作成しない限り3年後に期限切れになります。キーは同じ場所でローテーションされます。デフォルトでは古いシークレットも24時間(grace_seconds)使えるため、ダウンタイムなしで設定を変更できます。 - 認証情報には権限が含まれます。 キーには、
can_view_playtablesやcan_manage_workflowsなど、明示的な権限トークンのリストが含まれます。作成したユーザーに付与されている権限の範囲内でのみ有効で、特定の送信者プロファイルやテーブル(account_sids)に絞り込むこともできます。送信者プロファイルとは、チームが送信元として使用する ID で、LinkedIn アカウントとメールボックスが含まれます。付与された権限の範囲外の呼び出しには、必要な権限を示す403forbiddenが返されます。
1つのキーで REST API とこのサーバーの両方を利用できます。詳細はdocs.getsales.io/authenticationをご覧ください。
費用はいくらですか?
2026-11-03時点で、料金ページには、API、webhook、MCP、CLIが無料の Playtables & Data プランに含まれていると記載されています。そのため、サーバーへの接続に費用はかかりません。有料の作業では、ワークスペースの残高からデータクレジットを消費します。対象には、メールアドレスの検索や検証などのエンリッチメント列、AI 列、「Find people」列、AI 検索ページが含まれます。料金ページには、独自のプロバイダーキーを使用する方法についても記載されています。estimate_credits では、テーブルの実行を開始する前に実行コストの範囲を確認でき、list_provider_catalog には各プロバイダーとモデルの価格が掲載されています。
REST API の呼び出しとは何が違いますか?
どちらも同じ契約に基づいており、各ツールは同じ形式の1つの REST エンドポイントに対応しています。API キーを作成するエンドポイントなど、ツールが用意されていないエンドポイントも一部あります。これにより、シークレットがモデルを経由するのを防ぎます。
| MCP サーバー | REST API | |
|---|---|---|
| 呼び出すユーザー | チャットまたはエージェント実行環境からの AI エージェント | 独自のコード |
| アドレス | 1つのエンドポイント、https://mcp2.getsales.io/mcp/public | API リファレンスに記載された、サービスごとのベース URL |
| 呼び出しの検索 | 実行時にカタログを対象として search_tools を使用 | API リファレンス |
| 削除、キャンセル、その他の危険なツール | まずプレビューし、その後 commit_token を使って確定 | 即時に実行 |
| サインイン | ブラウザーでの OAuth、または API キー | API キー、または OAuth アクセストークン |
| エラー | 16種類のコードを持つエンベロープ。isError: true のツール結果として返されます | 同じエンベロープが HTTP ステータスとともに返されます |
このリポジトリの内容
| パス | 内容 |
|---|---|
server.json | MCP Registry のエントリー:リモートエンドポイントと npm パッケージ |
npm/ | @getsales/outreach-mcp。mcp-remote を使用する stdio ランチャーと、依存関係のロックファイル |
Dockerfile | 同じランチャーをイメージ化したもの。キーのみでサインインし、ロックファイルからインストールします |
examples/ | URL、npx、Docker のセットアップ用クライアント設定と、Claude Code のコマンド |
.claude-plugin/、.cursor-plugin/、.mcp.json、assets/logo.png | Claude Code と Cursor のプラグイン |
skills/getsales/ | エージェントスキルと、その使用例 |
lhm.plugin.json | LobeHub の掲載情報 |
kit.json | 上記のファイルで繰り返し使われている名前をまとめて記載したファイル |
tests/、scripts/ | キットのチェック。npm test はオフラインで実行されます |
サーバーでのトークンの取り扱いと問題の報告方法については、SECURITY.md をご覧ください。
リンク
- サインアップ:getsales.io/signup
- API リファレンス:docs.getsales.io
- キーと OAuth:docs.getsales.io/authentication
- Webhook の受信:docs.getsales.io/guides/receive-webhooks
- AI セールスアシスタント:getsales.io/ai-sales-assistant
- 料金:getsales.io/pricing
- Model Context Protocol:github.com/modelcontextprotocol
GetSales は独立した製品であり、LinkedIn Corporation との提携、承認、スポンサー関係はありません。LinkedIn および LinkedIn のロゴは、LinkedIn Corporation の商標です。GetSales の利用は自己責任であり、適用される第三者プラットフォームの利用規約に従うものとします。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。