mcpField
E
ElevenLabs Agents

ElevenLabs Agents

ローカル
github.com/mindstoneAI・エージェント13今日更新

ElevenLabs Agents について

この MCP サーバーは、MCP ホストから ElevenLabs Conversational AI の音声エージェントと通話ワークフローを管理します。エージェントの作成・テスト、会話の確認、電話番号の割り当て、発信や一括通話、ナレッジベース文書の管理に対応し、Conversational AI 対応の API キーが必要です。

主な機能

  1. 01音声エージェントの作成、確認、更新、テスト
  2. 02会話の文字起こしと録音の確認
  3. 03電話番号とエージェント割り当ての管理
  4. 04発信と予約一括通話の管理
  5. 05ナレッジベース文書の追加とインデックス作成
  6. 06エージェントツールの確認と会話フィードバック

活用シーン

  1. 01通話前に音声エージェントを作成してシミュレーション
  2. 02通話の文字起こしと録音を確認
  3. 03一括通話の予約、監視、キャンセル
  4. 04文書を追加して検索インデックスを確認

MCP 対応

ElevenLabs Conversational AI のエージェント、会話、通話、電話番号、ナレッジベース文書を管理する 31 個のツールを MCP ホストに公開します。Conversational AI 対応の `ELEVENLABS_API_KEY` が必要です。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"mindstone-mcp-server-elevenlabs-agents": {
"command": "npx",
"args": [
"-y",
"@mindstone/mcp-server-elevenlabs-agents"
],
"env": {
"ELEVENLABS_API_KEY": "<ELEVENLABS_API_KEY>",
"MCP_WORKSPACE_PATH": "<MCP_WORKSPACE_PATH>"
}
}
}
}
起動コマンドnpx -y @mindstone/mcp-server-elevenlabs-agents
設定が必要な環境変数
ELEVENLABS_API_KEYシークレットElevenLabs API key (starts with sk_)
MCP_WORKSPACE_PATHOptional workspace root for sandboxed knowledge-base file uploads

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@mindstone/mcp-server-elevenlabs-agents0.2.1

ツール

31

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
api_keystringはいElevenLabs API キー("sk_" で始まる)。

詳細

@mindstone/mcp-server-elevenlabs-agents

License: FSL-1.1-MIT

Model Context Protocol ホスト向けの ElevenLabs Conversational AI MCP サーバーです。音声エージェントの確認と作成、会話の文字起こしと録音のレビュー、電話番号の割り当て管理、発信、スケジュールされた一括通話の送信または監視、ElevenLabs ConvAI API を介したナレッジベースへの書き込みができます。

ステータス

  • バージョン: 0.2.1 · npm
  • 認証: API キー(ELEVENLABS_API_KEY)
  • ツール: 31(設定、エージェント、エージェントツール、会話、電話番号、発信、一括通話、ナレッジベース)
  • サーフェス: cloud-api
  • 機械可読: STATUS.json

要件

  • Node.js 20+
  • npm
  • Conversational AI にアクセスできる ElevenLabs API キー

ワンクリックインストール

Add to Cursor Add to VS Code Add to VS Code Insiders

ボタンをクリックすると、ホストから ELEVENLABS_API_KEY の入力を求められます。

Claude Desktop / Claude Code / Goose / Continue.dev の手動設定(ElevenLabs Agents)
{
  "mcpServers": {
    "ElevenLabs Agents": {
      "command": "npx",
      "args": [
        "-y",
        "@mindstone/mcp-server-elevenlabs-agents"
      ],
      "env": {
        "ELEVENLABS_API_KEY": ""
      }
    }
  }
}

クイックスタート

インストールとビルド
cd <path-to-repo>/connectors/elevenlabs-agents
npm install
npm run build
ローカル
node dist/index.js

設定

環境変数
  • ELEVENLABS_API_KEY — ElevenLabs API キー(sk_ で始まります)
  • MCP_WORKSPACE_PATH — ナレッジベースのファイルアップロード用の任意のサンドボックスルート
  • MCP_HOST_BRIDGE_STATE — 認証情報の管理に使用するホストブリッジ状態ファイルの任意のパス
  • MINDSTONE_REBEL_BRIDGE_STATE — MCP_HOST_BRIDGE_STATE と下位互換性のある別名

ホスト設定例

{
  "mcpServers": {
    "ElevenLabs Agents": {
      "command": "node",
      "args": ["<path-to-repo>/connectors/elevenlabs-agents/dist/index.js"],
      "env": {
        "ELEVENLABS_API_KEY": "your-api-key"
      }
    }
  }
}

ツール(31)

設定
  • configure_elevenlabs_agents_api_key — ElevenLabs API キーを保存します
エージェント
  • list_agents — ワークスペース内の音声エージェントを一覧表示します
  • get_agent — プロンプトやネストされた会話設定を含む、1つのエージェントを取得します
  • create_agent — ユーザーが使いやすい作成用インターフェイスから新しいエージェントを作成します
  • update_agent — PATCH のディープマージセマンティクスを使用して、1つのエージェントを部分的に更新します
  • duplicate_agent — 実験を始める前に既存のエージェントを複製します
  • delete_agent — エージェントを完全に削除します
  • simulate_conversation — 電話機能を使う前に、シミュレートされたユーザーメッセージでエージェントをテストします
エージェントツール(ワークスペースツール)
  • list_agent_tools — エージェントが利用できるWebhook/クライアント/システムツールを一覧表示します
  • add_agent_tool — ワークスペースにWebhookツールまたはクライアントツールを追加します
会話
  • list_conversations — 会話を一覧表示します。エージェント/日付/成功で絞り込むこともできます
  • get_conversation — 会話の完全な文字起こしと分析を取得します
  • get_conversation_audio — 会話の録音を一時ファイルにダウンロードします
  • submit_conversation_feedback — レビューした会話に「いいね」または「よくないね」のフィードバックを送信します
電話番号
  • list_phone_numbers — 設定済みの電話番号を一覧表示します
  • get_phone_number — 1 つの電話番号とそのラベル/割り当てを取得します
  • import_phone_number — Twilio または SIP トランクの電話番号をワークスペースにインポートします
  • update_phone_number — 1 つの電話番号のラベルや割り当て先エージェントを更新します
  • delete_phone_number — インポートした電話番号を完全に削除します
発信通話
  • make_outbound_call — 電話番号プロバイダーを自動的に判別したうえで、発信通話を 1 件行います
一括通話
  • submit_batch_call — 複数の宛先への一括通話を送信します。将来の日時にスケジュールすることもできます
  • list_batch_calls — ワークスペース内の最近の一括通話ジョブを一覧表示します
  • get_batch_call — 宛先ごとのステータスを含め、一括通話ジョブを 1 件確認します
  • cancel_batch_call — キューに登録済みまたはスケジュール済みの一括通話ジョブをキャンセルします
  • retry_batch_call — 以前に送信した一括通話ジョブを再試行します
ナレッジベース
  • list_knowledge_base_docs — ナレッジベースのドキュメントを一覧表示します
  • get_knowledge_base_doc — ナレッジベースのドキュメントを 1 件取得します(メタデータ+/content 本文、上限約 50 KB)
  • add_knowledge_base_document — テキスト、ファイル、または URL 形式でナレッジベースのドキュメントを追加します
  • delete_knowledge_base_document — オプションで強制削除を指定して、ナレッジベースのドキュメントを削除します
  • get_knowledge_base_rag_index_status — ドキュメントがインデックス化され、取得可能かどうかを確認します
  • rebuild_knowledge_base_rag_index — ナレッジベースのドキュメントのインデックス作成または再作成を開始します

セキュリティに関する注意事項

ElevenLabs API から返されるすべての外部テキストは、モデルに届く前に <untrusted-content> エンベロープで囲まれます。攻撃者が制御できる発信者の発話が含まれる可能性のある会話の文字起こしでは、これは特に重要です。エンベロープ化はデフォルトで拒否する方式です。認識済みの構造値(ID、列挙値、タイムスタンプ、電話番号)以外はすべてエンベロープで囲まれます。ルートがオブジェクトではなく、単独の JSON 値であるレスポンスも対象です。

同じ走査処理は、エージェント、会話、ナレッジベース、電話番号、シミュレーション、発信/一括通話など、すべてのレスポンス面で実行されます。どの面にも既知の文章フィールド名のリストはないため、エージェント名、ワークフローの分岐名、将来追加される要約など、上流で新たに追加されたテキストフィールドも、レスポンスに初めて現れた時点からエンベロープで囲まれます。

予期しない 形式 によってテキストが走査を回避することもありません。ルートが単独の JSON 値であるレスポンス、項目が単独の文字列であるリスト、想定されるターン配列の代わりに文字列やオブジェクトを含む文字起こしフィールドは、変更されずに返されるのではなく、すべて同じデフォルト拒否方式の走査処理を通ります。

読み取り結果はエンベロープで囲まれているため、エージェント編集ツールは、受け取った値からエンベロープを 1 つ取り除きます。そのため、get_agent から言語、モデル ID、プロンプト、または advanced_config の一部をコピーして update_agent に戻しても、エンベロープではなく元のテキストが上流に保存されます。 ウォークでの構造的なリテラル例外は、キー名ではなく、パスと値の形状に基づいています。任意の共同作業者が作成したマップ(webhook の request_headers、advanced_config のパススルー、JSON-Schema のパラメーターフラグメント、呼び出し開始時に送信される呼び出し元作成のオープンマップ(conversation_initiation_client_data、conversation_config_override、custom_llm_extra_body、overrides。ElevenLabs はこれらを会話、呼び出し、バッチ呼び出しの各サーフェスに反映します))では、キー名はスキーマではなくデータであるため、文字列がリテラルのまま残ることはありません。つまり、リクエストヘッダーマップ内の status というプロパティは、信頼できる列挙値ではなく共同作業者のテキストであり、値の形状にかかわらずエンベロープ化されます。advanced_config は上流へ送信する前に設定本文へディープマージされるため、反映後の構造には advanced_config という祖先がありません。そのため、エージェントおよびワークスペースツールのサーフェスでは、サーフェスのルートからすべての祖先キーが既知のスキーマ位置にある場合に限り、文字列がリテラルのまま残ります。したがって、フラット化されたパススルーフラグメント(たとえば tool_config.custom.status)は、キー名や値の形状がどれほど構造的に見えてもエンベロープ化されます。その他の信頼できるパスでは、id/status/role/type キーの下にある文字列がリテラルのまま残るのは、ID/列挙値の形式に沿っている場合(空白、:、/ を含まず、フレーズ形式でも、指示を形作る語で構成されてもいない場合)のみです(文字の形だけでは、IGNORE_PRIOR_INSTRUCTIONS のような空白を含まない作成者のテキストと識別子を区別できません)。timestamp の下では ISO-8601 形式の場合のみ、電話番号キーの下では E.164 形式の場合のみ、文字列がリテラルのまま残ります。認証情報形式のキー(token、sid、*_secret、*_password、*_api_key)の値は、渡されずに [redacted] に置き換えられます。また、import_phone_number は、成功ペイロードや上流エラーの詳細に反映される値から、送信された認証情報そのもの(Twilio の SID/トークンのペアや、トランクのユーザー名などの SIP トランク認証情報の値)も除去します。

コネクターが ElevenLabs にサーバー側で参照させる URL は、公開されている https:// アドレスでなければなりません。対象となるのは、add_agent_tool 経由の webhook ツール、URL モードのナレッジベース文書、エージェント作成ツールの advanced_config 内にある url キーのすべての文字列(create_agent/update_agent)です。ElevenLabs は会話の各ターンで custom_llm.url を取得し、platform_settings の webhook URL を参照するため、上流への呼び出しを行う前に、マージ後のエージェント本文を再帰的に検証します。非 HTTP スキーム、通常の HTTP、埋め込み認証情報、ループバック/プライベート/リンクローカル/CGNAT/マルチキャスト IP リテラル(クラウドメタデータアドレス 169.254.169.254 を含む)、IPv4 マップド/NAT64/6to4/Teredo および文書用 IPv6 範囲、localhost のようなホスト名、単一ラベルのホスト名は、上流への呼び出しを行う前に拒否されます。末尾のルートラベルのドットは分類前に取り除かれるため、localhost. のような DNS 上同等の表記も拒否されます。公開ホスト名でも、ElevenLabs が取得する際に内部アドレスへ解決されたり、リダイレクトされたりする可能性があります。この残存する DNS/リダイレクトの信頼境界は、サーバー側での参照に本質的なものであり、この検証では解消されません。add_agent_tool の advanced_config は最後にディープマージされますが、ファーストクラスフィールド(type、name、description、expects_response、api_schema.url、api_schema.method)は設定できません。また、マージ後のツール設定は送信前に再検証されます。

送信先電話番号は、課金に関わるサーフェスへの呼び出しを上流へ送信する前に、E.164 形式であることを検証されます。スケジュール済みバッチはクライアントアプリが閉じていても ElevenLabs のサーバー上で実行されるため、list_batch_calls/get_batch_call で監視し、必要に応じて cancel_batch_call で停止してください。

ライセンス

FSL-1.1-MIT — Functional Source License, Version 1.1。将来的に MIT ライセンスとなります。本ソフトウェアは 2030-04-08 に MIT ライセンスへ移行します。

コメント

MCP は初めてですか?

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

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