<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=139163818022217&amp;ev=PageView&amp;noscript=1"> <img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=271598307802760&amp;ev=PageView&amp;noscript=1">

Box MCPとPydantic AIによるAIを活用したドキュメント生成の構築

 公開日:2025.05.12  更新日:2026.06.10

この記事では、Pydantic AIを基盤として活用した、Box MCPサーバーからBoxのドキュメント生成機能を使用するインテリジェントなエージェントを構築する方法を紹介します。

前提条件

詳細に入る前に、以下を準備できていることを確認してください。

  • Python 3.11以降
  • 適切な権限が設定されているBoxアカウント
  • OpenAI APIキー
  • Pythonを使用した開発に関する基本的な知識

プロジェクトの設定

まず、環境を設定し、必要な依存関係をインストールします。

# Clone the repository
git clone https://github.com/box-community/doc-gen-pydantic-ai-box-mcp-server.git
cd doc-gen-pydantic-ai-box-mcp-server

# Set up the environment using uv
uv lock
uv sync

# Create a .env file with your OpenAI API key
echo "OPENAI_API_KEY = sk-YOUR_API_KEY" > .env

さらに、BoxアカウントにOpenAI Doc Genという名前のフォルダを作成する必要があります。ここには、テンプレートと生成されたドキュメントを保存します。

コードの構造について

今回のプロジェクトは、いくつかの主要なコンポーネントで構成されています。

  1. demo.py: エージェントのインタラクションを調整するメインスクリプト
  2. データファイル: テンプレートドキュメント (nda_template.docx) とJSONデータ (NDA.json)

エージェントの作成

このアプリケーションの核となるのは、Box MCPサーバーと接続して動作するPydantic AIエージェントです。主要なコンポーネントを確認しましょう。

async def main() -> None:
    # Set up the MCP server connection for Box
    mcp_box = MCPServerStdio(
        command="uv",
        args=[
            "--directory",
            "/Users/rbarbosa/Documents/code/python/box/mcp-server-box",
            "run",
            "src/mcp_server_box.py",
        ],
    )
    # Initialize the OpenAI model
    model = OpenAIModel("gpt-4.1-mini", provider=OpenAIProvider())

    # Create the agent with access to the Box MCP server
    agent = Agent(
        model,
        system_prompt=(
            "
            You are a Box Agent. 
            Your job is to answer questions and complete actions with Box 
            using the tools available."
        ),
        mcp_servers=[mcp_box],
    )

このコードでは、以下が確立されます。

  1. Box MCPサーバーへの接続
  2. OpenAI言語モデル (GPT-4.1-mini)
  3. Boxツールを使用するよう構成されたPydantic AIエージェント

ドキュメントの生成

エージェントは、次のワークフローに従ってドキュメントを生成します。

  1. 認証: Boxの資格情報を確認する
  2. テンプレートのアップロード: テンプレートファイルをBoxに転送する
  3. テンプレートとして設定: ファイルをドキュメント生成テンプレートとして構成する
  4. データの処理: JSONデータをアップロードして処理する
  5. ドキュメントの生成: テンプレートとデータをマージして最終的なドキュメントを作成する

実際にどのようになるかを確認しましょう。

prompt = f"""
    Upload this local file {os.path.abspath(TEMPLATE)} to the Box 
    Folder called OpenAI Doc Gen and mark it as a doc gen template.
    Wait a few seconds for the doc gen tags to be processed by Box.
    Then upload the data file {os.path.abspath(DATA)} to the same folder, 
    and generate a new document with the template using the data file.
    """
prompt = textwrap.dedent(prompt)
async with agent.run_mcp_servers():
    result = await agent.run(prompt)

この自然言語の指示だけで、以下の処理を実行できます。

  • NDAテンプレートをBoxにアップロードする
  • それをドキュメント生成テンプレートとして設定する
  • 顧客情報を含むJSONデータをアップロードする
  • 個別にカスタマイズされたNDAドキュメントを生成する

データ構造

JSONデータファイルでは、テンプレートへのデータ入力に必要な情報を提供します。

{
  "contract": {
    "customerID": "12345678",
    "date": "03-18-2025",
    "customerName": "Bob Smith",
    "customerAddress": {
      "street": "9876 S 27th St",
      "city": "Dallas",
      "zip": "77777",
      "state": "TX"
    }
  },
  "file_name": "Bob_Smith_NDA.pdf"
}

バックグラウンドでの処理

エージェントが実行されると、自然言語の指示は、MCPサーバーを介して特定のBox APIの操作に変換されます。print_tools_used関数によって、実行されているBoxの操作を出力できます。

def print_tools_used(agent_result: AgentRunResult):
    all_messages = agent_result.all_messages()
    for message in all_messages:
        for part in message.parts:
            if part.part_kind == "tool-call":
                type_writer_effect_machine(
                    f"  {part.tool_name}", is_dim=True, delay=0.01
                )

この関数は、ドキュメント生成処理中にどのBoxツールが使用されているかを把握するのに役立ちます。

Boxに生成されたファイル

この演習の最終結果は、テンプレートと指定したJSONデータを組み合わせて生成されたファイルです。エージェントは、MCPサーバーを通じてDoc Gen Boxツールを起動できました。

0_rvISoY7Hj_XWPvTm

Pydantic AIを利用したアプローチの利点

Pydantic AIBox MCPサーバーと一緒に使用すると、以下のようにいくつかの利点があります。

  1. 自然言語インターフェース: 複雑なBox APIコードを書く必要がない
  2. 自動化ワークフロー: 複数の操作をシームレスに連鎖
  3. 柔軟なドキュメント生成: さまざまなテンプレートやデータ構造に簡単に対応可能
  4. 開発者エクスペリエンスの改善: 定型文を減らし、ビジネスロジックに集中

まとめ

Pydantic AIBoxのドキュメント生成機能を組み合わせることにより、開発者は、最小限のコードで高度なドキュメント自動化ワークフローを作成できます。ここで紹介した方法では、技術的な実装が容易になるだけでなく、より複雑なドキュメント生成シナリオの可能性も広がります。

内部ツール、顧客向けアプリケーション、企業向けワークフローのいずれを作成する場合でも、このパターンは、ニーズに応じて拡張できる柔軟な基盤を提供します。

関連リソース


RECENT POST「開発者」の最新記事


開発者

Box、MCPアプリのサポート対象をChatGPT、Microsoft 365 Copilot、Gleanに拡大

開発者

AIエージェントにコンテンツの活用方法を教える: OpenAI Codex向けBox Skillの構築

開発者

Box AIとOpenAI Agents SDKで自律的なドキュメントワークフローを実行

開発者

Box CLI: 開発者とAIエージェントのためのコンテンツCLI