Skip to main content
Glama
shandanawerkx

WorkForceAI MCP Server

WorkForceAI MCP サーバー

これは「内部ボットのツールボックス」です。チャット/音声ボットがWorkForceAIプラットフォーム(エージェント、キャンペーン、電話番号、通話ログ、統計)の情報を検索・更新できるようにする、小さなスタンドアロンサーバーです。メインアプリが使用するのと同じバックエンドを呼び出します。

これは**healthai-frontend リポジトリとは完全に別物です** — ここにあるものはそこにプッシュされることはありません。これは MCP(Model Context Protocol)と呼ばれる標準プロトコルを使用します。これにより、AI(Claude、ElevenLabsのエージェントなど)が「自分に許可されている操作はこれだ」と発見し、会話中にそれらを呼び出すことができます。

MCPの内部を理解する必要はありません。以下の手順に従うだけです。


現在できること

読み取り専用(安全な参照ツール):

  • list_voice_agents — CallFlow音声エージェントの一覧表示

  • list_campaigns — キャンペーンの一覧表示、または1つのキャンペーンの詳細情報の取得

  • list_phone_numbers — プロビジョニング済みのTwilio番号の一覧表示

  • get_call_logs — 最近の通話記録/文字起こしの取得

  • get_dashboard_stats — 通話量/使用統計の取得

  • get_current_account — ボットがログインしているアカウントの確認

1つのアクションツール(実際のデータを変更):

  • update_campaign — キャンペーンのシステムプロンプト、挨拶、名前、目的などを更新。campaignId が必要です。渡したフィールドのみが変更されます。

これらはすべて、.env に入力したアカウントのログイン情報に基づいてスコープされます — ボットはそのアカウントがプラットフォームで見えるものだけを正確に見ることができ、それ以上は見えません。


Related MCP server: @davoxi/mcp-server

初回セットアップ

1. 依存関係のインストール

このフォルダ(E:\aiconnecthub\workforceai-mcp)でターミナルを開き、以下を実行します:

npm install

(Node.jsはこのマシンにすでにインストールされています — 他にインストールするものはありません。)

2. .env ファイルの設定

.env ファイルはすでにここにあり、ログイン情報が入力され、実際のWorkForceAIバックエンド(https://workforceai.zapto.org)を指しています。ボットがログインするアカウントを変更する必要がある場合は、.env を直接編集してください:

BACKEND_BASE_URL=https://workforceai.zapto.org
BOT_ACCOUNT_EMAIL=your-login-email
BOT_ACCOUNT_PASSWORD=your-login-password
MCP_PORT=8787

このファイルを共有したり、どこかにコミットしたりしないでください — 実際のパスワードが含まれています。.gitignore はすでにこれを除外しているため、後でこのフォルダをgitリポジトリにしても、.env が誤ってコミットされることはありません。

3. サーバーの起動

npm start

次のように表示されるはずです:

workforceai-mcp listening on http://localhost:8787
  MCP endpoint: http://localhost:8787/mcp
  Health check: http://localhost:8787/health

テスト中やボットを使用している間は、これを専用のターミナルウィンドウで実行したままにしてください。停止するには Ctrl+C を押します。

4. 動作確認

クイックチェック(追加ツール不要): ブラウザで http://localhost:8787/health を開きます — {"ok":true} と表示されるはずです。

完全チェック(実際のツールを確認して1つ試す): 公式のMCP Inspectorを使用します — MCPサーバーを手動で操作するためのブラウザベースのツールです。2つ目のターミナルで(1つ目ではサーバーを実行したままにします):

npx @modelcontextprotocol/inspector

これでブラウザタブが開きます。その中で:

  1. Transport Type を Streamable HTTP に設定

  2. URL を http://localhost:8787/mcp に設定

  3. Connect をクリック

  4. Tools タブに移動し、list_voice_agents などのツールをクリックし、Run をクリック — 実際のエージェントがJSONで返ってくるはずです。

これが機能すれば、サーバーは完全に検証され、ボットに接続する準備ができています。


認証の仕組み(驚かないように)

現在、バックエンドには別の「ボットAPIキー」システムはありません — ボットはウェブサイトのログインフォームとまったく同じように、通常のメールアドレス/パスワードでログインし、すべてのリクエストに添付するJWTトークンを取得します。トークンはメモリ内に保持され(ディスクには保存されません)、トークンの有効期限が切れたり、リクエストが未承認で返されたりすると自動的に再ログインします。これはフロントエンドアプリの utils/apiClient.js が行うことを、ブラウザなしで再現したものです。

このため、ボットはそのログインで見えるものだけを見て/変更できます — 自身のエージェント、キャンペーン、番号、通話ログのみです。他のユーザーのアカウントを見たり触ったりすることはできません。


プロジェクト構成

workforceai-mcp/
├── .env              ← your real credentials (gitignored, never share)
├── .env.example       ← template, safe to share
├── src/
│   ├── config.js      ← reads .env
│   ├── backendClient.js ← logs in, attaches auth token, retries on expiry
│   ├── tools.js        ← the actual tool definitions (add new ones here)
│   └── server.js       ← the MCP server itself (Express + Streamable HTTP)
└── README.md          ← this file

後で新しいツールを追加するには: src/tools.js の tools 配列に既存のパターンに従ってエントリを追加します(名前、説明、入力フィールド、バックエンドに対して http.get/post/put を呼び出すハンドラー)、サーバーを再起動して完了です。


まだ完了していないこと(次のフェーズ)

このサーバーは現在、自分のマシン(localhost)でのみ実行されています — インターネットからは到達できません。ElevenLabsの音声エージェントに接続するには、ElevenLabsのサーバーがインターネット経由でこのMCPエンドポイントに到達できる必要があります。つまり、次のいずれかが必要です:

  • トンネル(例: ngrok)で一時的に公開する、または

  • 実行し続ける場所にデプロイする(小さな常時稼働サーバー/VPS/ホスティングサービス)

それに加えて、実際のElevenLabsエージェント設定は、意図的に別の次のステップです — このビルドの一部ではありません。

Related MCP Connectors

Related MCP Servers