mcpField
G
Google Docs MCP Server

Google Docs MCP Server

ローカル
github.com/lkm1developerメモリ・ナレッジ180 週間前に更新

Google Docs MCP Server について

Google Docs MCP Serverは、MCP対応アシスタントをGoogle Docsに接続し、文書を管理します。専用ツールで作成、検索、共有、更新、エクスポートを行えます。

主な機能

  1. 01文書の作成と削除
  2. 02文書内容の取得と更新
  3. 03文書の一覧表示と検索
  4. 04別形式へのエクスポート
  5. 05ユーザーとの文書共有
  6. 06API接続の確認

活用シーン

  1. 01アシスタントのワークフローで文書を作成
  2. 02タイトルや内容から文書を検索
  3. 03既存文書を更新して共有
  4. 04文書をPDFやテキスト形式で出力

MCP 対応

MCP対応アシスタント向けに、Google Docsの作成、取得、編集、検索、共有、エクスポートのツールを提供します。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

Google Docs MCP サーバー

AI アシスタントが Google Docs の作成、読み取り、更新、管理を行えるようにする、Google Docs API とシームレスに連携する強力な Model Context Protocol(MCP)サーバーの実装です。

機能

  • 任意のタイトルとコンテンツで Google Docs を新規作成
  • ドキュメントのコンテンツとメタデータを取得
  • 既存のドキュメントを新しいコンテンツで更新
  • アクセス可能なすべてのドキュメントを一覧表示
  • ドキュメントを削除
  • ドキュメントをさまざまな形式(PDF、プレーンテキストなど)にエクスポート
  • 特定のユーザーとドキュメントを共有
  • タイトルまたはコンテンツでドキュメントを検索
  • 接続と認証情報を確認

前提条件

  • Node.js 18 以降
  • Google Docs API が有効になっている Google Cloud プロジェクト
  • 認証情報(API キー、サービスアカウント、または OAuth2)

インストール

  1. このリポジトリをクローンします:

    git clone https://github.com/lkm1developer/google-docs-mcp-server.git
    cd google-docs-mcp-server
    
  2. 依存関係をインストールします:

    npm install
    
  3. Google Cloud の認証情報を記載した .env ファイルを作成します:

    # Required
    GOOGLE_CLOUD_PROJECT_ID=your-project-id
    
    # Choose one authentication method:
    
    # Option 1A: Service Account with file path (recommended for production)
    GOOGLE_APPLICATION_CREDENTIALS=path/to/your-service-account-key.json
    
    # Option 1B: Service Account with JSON content directly
    # Useful for environments where you can't create files
    GOOGLE_APPLICATION_CREDENTIALS_JSON={"type":"service_account","project_id":"...","private_key":"...","client_email":"..."}
    
    # Option 2: API Key (simpler for development)
    GOOGLE_API_KEY=your-api-key
    
    # Option 3: OAuth2 (required for user-specific operations)
    client_id=your-oauth-client-id
    client_secret=your-oauth-client-secret
    refresh_token=your-oauth-refresh-token
    

認証の設定

サービスアカウント認証
  1. Google Cloud Console に移動します
  2. 新しいプロジェクトを作成するか、既存のプロジェクトを選択します
  3. Google Docs API と Google Drive API を有効にします
  4. 「IAM & Admin」>「Service Accounts」に移動します
  5. 新しいサービスアカウントを作成します
  6. 必要なロール(例:「Docs API User」、「Drive API User」)を付与します
  7. サービスアカウント用の JSON キーを作成してダウンロードします
  8. .env ファイルで、この JSON ファイルのパスを設定します
OAuth2 認証

ユーザーの同意が必要な操作(ドキュメントの作成や編集など)を行う場合:

  1. Google Cloud Console に移動します
  2. 新しいプロジェクトを作成するか、既存のプロジェクトを選択します
  3. Google Docs API と Google Drive API を有効にします
  4. 「APIs & Services」>「Credentials」に移動します
  5. OAuth クライアント ID の認証情報を作成します(Web アプリケーションタイプ)
  6. 承認済みのリダイレクト URI を追加します(例:http://localhost:3000/oauth2callback)
  7. クライアント ID とクライアントシークレットを控えます
  8. 次のスクリプトを使ってリフレッシュトークンを取得します:
// get-refresh-token.js
const { google } = require('googleapis');
const http = require('http');
const url = require('url');
const open = require('open');
const destroyer = require('server-destroy');

async function getRefreshToken() {
  const oauth2Client = new google.auth.OAuth2(
    'YOUR_CLIENT_ID',
    'YOUR_CLIENT_SECRET',
    'http://localhost:3000/oauth2callback'
  );

  const scopes = [
    'https://www.googleapis.com/auth/documents',
    'https://www.googleapis.com/auth/drive'
  ];

  const authorizeUrl = oauth2Client.generateAuthUrl({
    access_type: 'offline',
    scope: scopes,
    prompt: 'consent'
  });

  console.log('Opening browser for authorization...');
  open(authorizeUrl);

  return new Promise((resolve, reject) => {
    const server = http.createServer(async (req, res) => {
      try {
        const queryParams = url.parse(req.url, true).query;
        
        if (queryParams.code) {
          res.end('Authentication successful! You can close this window.');
          server.destroy();
          
          const { tokens } = await oauth2Client.getToken(queryParams.code);
          console.log('\nRefresh Token:', tokens.refresh_token);
          console.log('\nAdd this refresh token to your .env file as refresh_token');
          
          resolve(tokens.refresh_token);
        }
      } catch (e) {
        reject(e);
      }
    }).listen(3000);
    
    destroyer(server);
  });
}

getRefreshToken().catch(console.error);

次のコマンドでこのスクリプトを実行します:

npm install googleapis open server-destroy
node get-refresh-token.js

ビルドと実行

  1. プロジェクトをビルドします:

    npm run build
    
  2. 接続をテストします:

    npx tsx src/test-connection.ts
    
  3. サーバーを実行します:

    npm start
    

    または、特定の認証情報を指定して実行します:

    npm start -- --GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json --GOOGLE_CLOUD_PROJECT_ID=your-project-id
    
    # Or with JSON content directly:
    npm start -- --GOOGLE_APPLICATION_CREDENTIALS_JSON='{"type":"service_account","project_id":"..."}' --GOOGLE_CLOUD_PROJECT_ID=your-project-id
    
  4. 認証付きで SSE サーバーを実行します:

    npx mcp-proxy-auth node dist/index.js
    
SSE サーバーでの認証の実装

SSE サーバーでは、認証に mcp-proxy-auth パッケージを使用します。認証を実装するには:

  1. パッケージをインストールします:

    npm install mcp-proxy-auth
    
  2. AUTH_SERVER_URL 環境変数に、API キー検証エンドポイントを設定します:

    export AUTH_SERVER_URL=https://your-auth-server.com/verify
    
  3. 認証付きで SSE サーバーを実行します:

    npx mcp-proxy-auth node dist/index.js
    
  4. SSE URL は次の場所で利用できます:

    localhost:8080/sse?apiKey=apikey
    

    認証には apikey を実際の API キーに置き換えてください。

mcp-proxy-auth パッケージはプロキシとして機能し、次の処理を行います:

  • SSE サーバーへのリクエストをインターセプトします
  • 認証サーバーに照会して API キーを検証します
  • 認証済みのリクエストのみが SSE エンドポイントに到達できるようにします
Docker のサポート

Docker を使用してサーバーを実行することもできます:

  1. Docker イメージをビルドします:

    docker build -t google-docs-mcp-server .
    
  2. コンテナを実行します:

    docker run -p 8080:8080 \
      -e GOOGLE_CLOUD_PROJECT_ID=your-project-id \
      -e GOOGLE_APPLICATION_CREDENTIALS_JSON='{"type":"service_account","project_id":"..."}' \
      -e client_id=your-client-id \
      -e client_secret=your-client-secret \
      -e refresh_token=your-refresh-token \
      -e AUTH_SERVER_URL=https://your-auth-server.com/verify \
      google-docs-mcp-server
    

MCP との連携

このサーバーを Claude やその他の MCP 対応アシスタントで使用するには、MCP の設定に追加します:

{
  "mcpServers": {
    "google-docs": {
      "command": "node",
      "args": ["/path/to/google-docs-mcp-server/dist/index.js"],
      "env": {
        "GOOGLE_CLOUD_PROJECT_ID": "your-project-id",
        "GOOGLE_APPLICATION_CREDENTIALS": "/path/to/your-service-account-key.json",
        "GOOGLE_APPLICATION_CREDENTIALS_JSON": "{\"type\":\"service_account\",\"project_id\":\"...\"}",
        "GOOGLE_API_KEY": "your-api-key",
        "client_id": "your-oauth-client-id",
        "client_secret": "your-oauth-client-secret",
        "refresh_token": "your-oauth-refresh-token"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

利用可能なツール

ツール名説明必須パラメーター
google_docs_create新しい Google ドキュメントを作成しますtitle、content(任意)
google_docs_getID で Google ドキュメントを取得しますdocumentId
google_docs_update新しいコンテンツで Google ドキュメントを更新しますdocumentId、content、replaceAll(任意)
google_docs_list認証済みユーザーがアクセスできる Google ドキュメントの一覧を取得しますpageSize(任意)、pageToken(任意)
google_docs_deleteGoogle ドキュメントを削除しますdocumentId
google_docs_exportGoogle ドキュメントを別の形式にエクスポートしますdocumentId、mimeType(任意)
google_docs_share特定のユーザーと Google ドキュメントを共有しますdocumentId、emailAddress、role(任意)
google_docs_searchタイトルまたはコンテンツで Google ドキュメントを検索しますquery、pageSize(任意)、pageToken(任意)
google_docs_verify_connectionGoogle Docs API との接続を確認しますなし

使用例

ツールの使用例を以下に示します。

新しいドキュメントを作成する
{
  "name": "google_docs_create",
  "arguments": {
    "title": "My New Document",
    "content": "This is the content of my new document."
  }
}
ドキュメントを取得する
{
  "name": "google_docs_get",
  "arguments": {
    "documentId": "1Ax7vsdg3_YhKjkl2P0TZ5XYZ123456"
  }
}
ドキュメントを更新する
{
  "name": "google_docs_update",
  "arguments": {
    "documentId": "1Ax7vsdg3_YhKjkl2P0TZ5XYZ123456",
    "content": "This is the new content.",
    "replaceAll": true
  }
}
ドキュメントを検索する
{
  "name": "google_docs_search",
  "arguments": {
    "query": "meeting notes",
    "pageSize": 5
  }
}

ライセンス

MIT

コメント

MCP は初めてですか?

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

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