メインコンテンツへスキップ
MCP(Model Context Protocol)ツールは、拡張機能のためのMCPサーバーとの統合を可能にします。これらのツールを使用すると、ローカル(stdio)とリモート(Streamable HTTP)の両方のMCPサーバーに接続し、サーバーが公開するツール一覧を取得し、1つを選んで入力を渡して実行できます。呼び出し自体はMCP Python SDKを使ってPythonサンドボックス内で実行されます。

ツール

MCP_LOCAL_RUN

  • ローカルMCPサーバーをサブプロセス(stdioトランスポート)として起動し、そのツールの1つを呼び出します
  • 入力は mcp オブジェクト1つ(ステップエディタで設定)。command(既定値 npx)、args(既定値 ["-y"])、任意の env、取得済みの tools 一覧、選択したツールIDの selectedTool、そのツールへの入力 toolInputs を持ちます
  • 実行時には command、selectedTool、toolInputs が必須です。不足していると Missing required fields: command, selectedTool, or toolInputs でステップが失敗します

MCP_REMOTE_RUN

  • Streamable HTTPでリモートMCPサーバーに接続し、そのツールの1つを呼び出します
  • 入力は mcp オブジェクト1つ。server_url、任意の headers(Authorization ヘッダーなど)、取得済みの tools 一覧、selectedTool、toolInputs を持ちます
  • 実行時には server_url、selectedTool、toolInputs が必須です。不足していると Missing required fields: server_url, selectedTool, or toolInputs でステップが失敗します
どちらのツールにも設定(config)項目はありません。セットアップは対話的に行います。エディタでステップを開き、サーバーのツール一覧を取得し、1つを選んで入力を記入します。選択したツールと入力はステップに保存されます。

認証

MCPツール自体には config がありません。資格情報は mcp 入力経由で渡します。ローカルサーバーには env(サーバーが環境変数から読むAPIキーなど)、リモートサーバーには headers を使います。シークレットはFlowのシークレットとして保存し、{{secrets.NAME}} で参照してください。

ローカルMCPサーバーのツールを呼び出す

your-mcp-server-package、read_document、toolInputs は、ステップエディタで取得したMCPサーバーのパッケージ名、ツール名、入力スキーマに置き換えてください。

リモートMCPサーバーのツールを呼び出す

結果を読む

result にはMCPツールが返した内容が入ります。
  • ツールが structuredContent を返す場合、result はそのオブジェクトです。
  • それ以外の場合、result はツールのコンテンツブロックのテキストです。ブロックが1つなら文字列、複数なら文字列の配列になります。そのテキストがJSONであればパースされるため、result はオブジェクトや配列になることがあります。
  • ツールがコンテンツを返さない場合、result は null です。
後続ステップでネストしたフィールドを参照する前に、使用するサーバーで steps.<id>.result の実際の値を確認してください。

エラーハンドリング

  • フィールド不足: command / server_url、selectedTool、toolInputs が未設定の場合は MissingFieldsError になります。ステップを開いてツール一覧を取得し、セットアップを完了してください。
  • サーバーまたはツールのエラー: サーバーへの接続やツール呼び出し中に例外が発生すると、ステップのエラーに An error occurred while the tool was executing: ... が記録されて失敗します(MCP_REMOTE_RUN では詳細なしの An error occurred while the tool was executing. になります)。

使用例

  • データ処理: 高度なデータ変換と分析
  • 文書処理: 複雑な文書解析と抽出
  • AI/ML統合: 機械学習モデルの実行
  • カスタムワークフロー: ドメイン固有のビジネスロジック実行
  • 外部API統合: 外部サービスのラッパー
  • バッチ処理: 大規模データ処理操作
  • 専門ツール: 業界固有の処理ツール
  • 研究ツール: 学術・科学計算ツール

ベストプラクティス

パフォーマンス最適化

  • 頻繁な操作にはローカルサーバーを使用
  • 計算集約的なタスクにはリモートサーバーを使用
  • toolInputs は小さく保ち、サーバーが対応していればファイル内容ではなくファイルURLを渡す

セキュリティ考慮事項

  • egress ポリシーが設定された組織では、ローカル MCP サーバーも Python コードと同じ種類のロックダウン済みサンドボックスで動きます。sudo と npm install -g は使えず、外部への通信は許可されたホストへの HTTP(S) だけです。npm レジストリが許可ホストに含まれていれば、npx -y <package> はこれまでどおり使えます。詳しくは Python Sandbox を参照してください。
  • 認証トークンを安全に保護し、Flowのシークレットから env または headers 経由で渡す
  • すべての入力と出力を検証
  • リモート接続にはHTTPSを使用
  • 適切なエラーハンドリングを実装

開発ガイドライン

  • カスタムMCPツールを徹底的に文書化
  • 適切なログと監視を実装
  • 一貫した入力/出力スキーマを使用
  • デプロイ前にツールを徹底的にテスト