mcpField
G
Google Forms MCP Server with CamelAIOrg Agents Integration

Google Forms MCP Server with CamelAIOrg Agents Integration

ローカル
github.com/adarshp14生産性781 週間前に更新

Google Forms MCP Server with CamelAIOrg Agents Integration について

Flask ベースの MCP サーバーと CamelAIOrg Agents を組み合わせ、自然言語の指示から Google Forms を作成・管理します。フォーム操作をツールとして提供し、リクエストの流れや結果を確認できる UI も備えています。

主な機能

  1. 01自然言語によるフォーム作成
  2. 02テキスト、段落、選択式、チェックボックスの質問追加
  3. 03フォーム回答の取得
  4. 04リクエストの流れと結果の表示

活用シーン

  1. 01文章による要件からフィードバックフォームを作成
  2. 02複数の質問形式を使ったアンケートの作成
  3. 03既存フォームの回答を取得

MCP 対応

Google Forms の操作を MCP ツールとして提供し、フォーム作成、質問管理、回答取得に対応します。CamelAIOrg Agents が指示を解釈してツールを呼び出します。

設定

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

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

CamelAIOrg エージェントと連携する Google Forms MCP サーバー

Google Forms API および CamelAIOrg エージェントと連携し、自然言語の指示を使ってフォームを作成、変更、取得する Model Context Protocol(MCP)サーバーです。

概要

このプロジェクトでは、自然言語によるリクエストを通じて Google Forms を作成、管理できます。主なコンポーネントは次の 2 つです。

  1. MCP サーバー:Model Context Protocol(MCP)を実装し、Google Forms の操作をツールとして公開する Flask ベースのサーバーです。
  2. CamelAIOrg エージェント:自然言語のリクエストを処理し、MCP ツールの呼び出しに変換する AI エージェントフレームワークです。

このシステムには、フロントエンド、エージェント、MCP サーバー、Google API 間のリクエストの流れをアニメーションで可視化する、ダークテーマの UI が備わっています。

機能

  • 自然言語のリクエストから Google Forms を作成
  • さまざまな種類の質問を追加(テキスト、段落、複数選択、チェックボックス)
  • フォームの回答を取得
  • リクエストとレスポンスの流れを可視化
  • アニメーション付きのダークテーマ UI
  • MCP(Model Context Protocol)に完全準拠
  • Docker でコンテナ化されており、簡単にデプロイ可能

アーキテクチャ

┌─────────────┐    ┌─────────────┐    ┌────────────┐    ┌────────────┐
│             │    │             │    │            │    │            │
│   Frontend  │◄──►│ CamelAIOrg  │◄──►│ MCP Server │◄──►│  Google    │
│    (UI)     │    │   Agents    │    │            │    │ Forms API  │
│             │    │             │    │            │    │            │
└─────────────┘    └─────────────┘    └────────────┘    └────────────┘
プロセスフローチャート

この図は、ユーザーのリクエストがシステム内をどのように流れるかを示しています。

graph TD
    subgraph "User Interface"
        A[Frontend UI]
    end
    
    subgraph "Processing Logic"
        B((CamelAIOrg Agent))
        C((MCP Server))
    end
    
    subgraph "External Service"
        D{{Google Forms API}}
    end
    
    A -->|"1. User enters: Create feedback form"| B
    B -->|"2. Interprets request, sends tool call"| C
    C -->|"3. Translates to API request"| D
    D -->|"4. Returns formId and URL"| C
    C -->|"5. Processes API response"| B
    B -->|"6. Formats final result to UI"| A
    
    style B fill:#f9d423,stroke:#333,stroke-width:2px,color:#333
    style C fill:#8ecae6,stroke:#333,stroke-width:2px,color:#333
各コンポーネントの役割
  • フロントエンド UI: 自然言語のリクエストを入力するためのユーザーインターフェースを提供し、プロセスと結果を可視化します。
  • CamelAIOrg エージェント(黄色で強調):
    • 役割: 解釈と計画。
    • 自然言語によるリクエストをそのまま受け取ります。
    • リクエストを解析してユーザーの意図を理解し、重要な詳細(フォームのタイトル、質問、種類など)を抽出します。
    • リクエストを実行するために必要な一連のアクション(MCP ツールの呼び出し)を決定します。
    • 定義済みのツールスキーマを使用して MCP サーバーと通信します。
  • MCP サーバー(青色で強調):
    • 役割: 実行と抽象化。
    • エージェントから構造化されたツールの呼び出しを受け取ります。
    • Google Forms API 専用のインターフェースとして機能します。
    • 抽象化されたツールの呼び出し(例:create_form)を、具体的な Google Forms API リクエストに変換します。
    • Google Forms API との認証、通信、エラー処理を行います。
    • Google Forms API からの結果を標準化された MCP 形式でエージェントに返します。
MCP サーバーが必要な理由

Model Context Protocol(MCP)サーバーは、いくつかの理由から重要な仲介レイヤーとして機能します。

  1. 抽象化: 基盤となる Google Forms API の複雑さを CamelAI エージェントから隠します。エージェントは、Google API の具体的なエンドポイント、認証方式、リクエスト/レスポンスの形式を把握する必要はありません。簡略化された MCP ツールスキーマ(例:create_form、add_question)を把握するだけで十分です。
  2. モジュール性と再利用性: エージェントは、MCP インターフェースを公開する任意のサービスと連携できるように設計できます。別のフォームサービス(例:Typeform)への対応を追加する場合、専用の MCP サーバーを作成すれば、エージェントは新しい MCP ツールスキーマを学習するだけで、最小限の変更で利用できる可能性があります。
  3. 標準化: MCP は、AI モデル/エージェントが外部のツールや API と連携するための標準的な方法を提供します。これにより相互運用性が促進されます。
  4. セキュリティと制御: MCP サーバーは、ポリシーの適用、API キーの安全な管理、レート制限の処理、外部 API へのアクセスを制御するゲートウェイの提供が可能です。機密性の高い認証情報や複雑なロジックをエージェント内に直接埋め込む必要はありません。
  5. 保守性: API との連携ロジック(MCP サーバー)を、自然言語の理解と計画のロジック(エージェント)から分離することで、システムを保守、更新しやすくなります。Google Forms API の変更時に必要なのは MCP サーバーの更新だけで、エージェント自体を変更する必要はありません。

前提条件

  • Docker と Docker Compose
  • Google Cloud Platform アカウント
  • Google Forms API が有効になっていること
  • Google Cloud Console から取得した OAuth2 認証情報

セットアップ手順

1. リポジトリをクローンする
git clone https://github.com/yourusername/google-form-mcp-server.git
cd google-form-mcp-server
2. Google Forms API をセットアップする
  1. Google Cloud Console にアクセスします
  2. 新しいプロジェクトを作成します
  3. Google Forms API と Google Drive API を有効にします
  4. OAuth2 認証情報を作成します
    • ウェブアプリケーションタイプ
    • 承認済みのリダイレクト URI を追加します:http://localhost:5000/oauth2callback
  5. 認証情報の JSON ファイルをダウンロードします
3. 環境変数を設定する

ルートディレクトリに .env ファイルを作成します。

# Google API Credentials
GOOGLE_CLIENT_ID=your_client_id_here
GOOGLE_CLIENT_SECRET=your_client_secret_here
GOOGLE_REFRESH_TOKEN=your_refresh_token_here

# Server Configuration
FLASK_ENV=development
PORT=5000
DEBUG=True

# CamelAIOrg Agents Configuration
AGENT_ENDPOINT=http://agents:5001/process
AGENT_API_KEY=your_agent_api_key_here

リフレッシュトークンを取得するには:

  1. OAuth 2.0 Playground を使用します:https://developers.google.com/oauthplayground/
  2. 認証情報を使ってセットアップします
  3. 必要なスコープを選択します:
  4. 認可コードをトークンと交換します
  5. リフレッシュトークンを .env ファイルにコピーします
4. Docker Compose でビルドして実行する
docker-compose up --build

これにより、MCP サーバー(ポート 5000)と CamelAIOrg エージェントサービス(ポート 5001)の両方が起動します。

使用方法

ウェブインターフェース

http://localhost:5000 でウェブインターフェースにアクセスします。

このインターフェースでは、以下の操作ができます。

  1. 自然言語でリクエストを入力する(例:「3 つの質問があるフィードバックフォームを作成する」)
  2. コンポーネント間のリクエストの流れを確認する
  3. 生成されたフォームの詳細とリンクを確認する
  4. 交換される MCP パケットを確認する
API エンドポイント
MCP サーバーのエンドポイント(ポート 5000)
  • GET /api/health - ヘルスチェック
  • GET /api/schema - MCP ツールのスキーマを取得
  • POST /api/process - MCP リクエストを処理
CamelAIOrg エージェントのエンドポイント(ポート 5001)
  • GET /health - ヘルスチェック
  • GET /schema - エージェントの機能を取得
  • POST /process - 自然言語のリクエストを処理

リクエスト例

以下は、試すことのできる自然言語リクエストの例です。

  1. 「1~5 の評価質問と、追加のコメント用のテキスト質問がある顧客フィードバックフォームを作成する」
  2. 「リモートワークの希望に関する、3 つの複数選択式質問があるアンケートを作成する」
  3. 「氏名、メールアドレス、出欠の選択肢があるイベントの出欠確認フォームを作成する」

MCP プロトコル形式

MCP サーバーは、次の形式のリクエストを受け付けます。

{
  "transaction_id": "unique_transaction_id",
  "tool_name": "create_form",
  "parameters": {
    "title": "Form Title",
    "description": "Form Description"
  }
}

次の形式で応答します。

{
  "transaction_id": "unique_transaction_id",
  "status": "success",
  "result": {
    "form_id": "form_id",
    "response_url": "https://docs.google.com/forms/d/form_id/viewform",
    "edit_url": "https://docs.google.com/forms/d/form_id/edit",
    "title": "Form Title"
  }
}

開発

プロジェクト構成
google-form-mcp-server/
├── server/                 # MCP Server
│   ├── app.py              # Main Flask application
│   ├── config.py           # Configuration
│   ├── forms_api.py        # Google Forms API integration
│   ├── mcp_handler.py      # MCP protocol handler
│   ├── requirements.txt    # Python dependencies
│   ├── static/             # Static assets
│   ├── templates/          # HTML templates
│   └── utils/              # Utility functions
├── agents/                 # CamelAIOrg Agents
│   ├── agent_integration.py # Agent implementation
│   ├── agent_server.py     # Agent API server
│   └── requirements.txt    # Python dependencies
├── Dockerfile              # MCP Server Dockerfile
├── docker-compose.yml      # Docker Compose configuration
├── .env.example            # Example environment variables
└── README.md               # Project documentation
Docker を使わずに実行する

Docker を使わずに MCP サーバーを実行するには:

cd server
pip install -r requirements.txt
python app.py

Docker を使わずにエージェントサービスを実行するには:

cd agents
pip install -r requirements.txt
python agent_server.py

ライセンス

MIT

謝辞

  • Google Forms API
  • エージェントフレームワークを提供する CamelAIOrg
  • Model Context Protocol(MCP)仕様

コメント

MCP は初めてですか?

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

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