canal の作成から、grok.com のカスタムコネクタ登録、接続の許可、動作確認まで。 実際の画面のスクリーンショットで、1 ステップずつ丁寧に解説します。
お手元(社内)のマシンで動いている MCP サーバーを、受信ポートを開けずに Grok から使えるようにします。 流れは「WireCanal で canal を作る → Agent を起動する → Grok にコネクタを登録する → 接続を許可する」の 4 つです。
http://localhost:9310/mcp)ダッシュボードの「新しい canal を作成」を押し、種類でMCPを選んで「次へ」。

使う AI を選ぶだけで、その AI 用の接続設定が自動で用意されます。ここではGrokにチェックを入れます。

公開アドレス(ホスト名)は「おまかせサブドメイン」で OK。好きな名前の予約や独自ドメインも選べます。

転送先には、手元で動いている MCP サーバーのアドレス(例localhost:9310)を入れます。


作成直後の「MCP 接続」タブに、Grok 接続用のクライアント IDとクライアントシークレットが表示されます。 シークレットが表示されるのはこの一度だけ。あとで Grok 側に貼るので、控えておきます。

「セットアップ」タブから設定ファイルwirecanal.jsonをダウンロードし、tools.allowに外の AI に見せてよいツール名だけを書きます(既定は全拒否)。書き方と全オプションはwirecanal.json 設定リファレンスをご覧ください。

{
"access_key": "ck_...",
"forward_target": "localhost:9310",
"mode": "mcp",
"tools": { "default": "deny", "allow": ["get_time", "echo"] }
}同じマシンで Agent を起動します。受信ポートの開放は不要です。エージェント本体の導入がまだの場合や、常駐(自動起動)のさせ方は、OS 別のセットアップガイドをご覧ください。
wirecanal.exe -config wirecanal.json起動ログに「canal <ID>: https://<ホスト名> へのアクセスをローカルの転送先 <転送先> に届けます」と出れば接続確立です。
grok.com の左メニュー「スキルとコネクタ」→「新しいコネクタ」を開き、「カスタム(独自のカスタムコネクターを追加)」を選びます。

名前(任意)とMCP サーバー URL(canal の公開 URL +/mcp・例https://<ホスト名>/mcp)を入れて「追加」を押します。

Grok が自動検出を実行し、「OAuth 認証情報が必要です」の入力画面になります。次の 2 点だけ設定します。
client_secret_postを選ぶ認証方法の既定はnone (PKCEのみ、推奨)になっていますが、WireCanal はクライアントシークレットを検証するため、必ずclient_secret_postに変更してください。それ以外(認証エンドポイント・トークンエンドポイント・スコープ)は自動検出値のままで OK です。

WireCanal の「接続の許可」画面が開きます。内容を確認して「許可する」を押すだけ。許可できるのは canal のオーナーだけです。
Grok と WireCanal は同じブラウザ(同じプロファイル)でログインしておいてください。分かれていると、許可画面の代わりにログイン画面が開きます。

「スキルとコネクタ」のインストール済みに、作ったコネクタがConnectedと表示されれば接続完了です。

チャットでコネクタ名を挙げてツールを呼ぶだけです。 例えば「get_time で今の日本時間を教えて」と頼むと、手元の MCP サーバーが返した実データが Grok の答えに使われます。

tools.allowに入れていないツールは、AI が呼ぼうとしても手元の Agent がその場で断り、呼び出しは社内の MCP サーバーに届きません。この動作は Grok との実際の接続でも確認済みです(two-key)。