Google Docs MCP Server

Google Docs MCP Server

A Model Context Protocol server that provides an interface for AI models to interact with Google Docs, enabling reading, creating, updating, and searching Google Documents.

Category
访问服务器

README

Google Docs MCP サーバー

このプロジェクトは、Google Docs APIと連携するMCP(Model Context Protocol)サーバーを提供します。生成AIを使ってGoogle Docsを操作するためのインターフェースを実装しています。

機能

このMCPサーバーは以下の機能を提供します:

  • Google Docsドキュメントの読み取り
  • 新しいGoogle Docsドキュメントの作成
  • 既存のGoogle Docsドキュメントの更新
  • Google Docsドキュメントの検索

技術スタック

前提条件

  • Node.js (v14以上推奨)
  • npm または yarn
  • Google Cloud Platformのプロジェクトとアクセス認証情報

セットアップ

1. プロジェクトをクローンまたはダウンロード

git clone [リポジトリURL]
cd docs-mcp

2. 依存関係のインストール

npm install

3. Google Cloud Platformの設定

  1. Google Cloud Consoleでプロジェクトを作成(または既存のプロジェクトを選択)
  2. Google Drive APIとGoogle Docs APIを有効化
  3. OAuth 2.0クライアントIDを作成し、認証情報をダウンロード
  4. ダウンロードした認証情報ファイルをcredentials.jsonとしてプロジェクトルートに配置

4. 環境設定

  1. .envファイルをプロジェクトルートに作成し、環境変数を設定します:
# アプリケーション環境
NODE_ENV=development

# ログ設定
# ログレベル: ERROR, WARN, INFO, DEBUG, TRACE
LOG_LEVEL=INFO
# 標準エラー出力にログを出力するかどうか(MCPの仕様に準拠)
LOG_USE_STDERR=true

# サーバー設定
SERVER_NAME=google-docs-mcp-server
SERVER_VERSION=1.0.0

# Google API認証情報
# 認証情報ファイルのパス(デフォルトは./credentials.json)
CREDENTIALS_PATH=./credentials.json
# トークンファイルのパス(デフォルトは./token.json)
TOKEN_PATH=./token.json

環境変数の説明:

  • NODE_ENV: アプリケーションの実行環境(development, production, test)
  • LOG_LEVEL: ログの詳細レベル(ERROR, WARN, INFO, DEBUG, TRACE)
  • LOG_USE_STDERR: ログを標準エラー出力に出力するかどうか(MCP仕様では標準エラー出力を使用)
  • SERVER_NAME: MCPサーバー名
  • SERVER_VERSION: MCPサーバーのバージョン
  • CREDENTIALS_PATH: Google APIの認証情報ファイルのパス
  • TOKEN_PATH: 認証トークン保存先のパス
  1. 開発サーバーを起動し、トークンを取得します:
    npm run dev
    
    実行後、ターミナルに認可用URLが表示されます。そのURLにブラウザでアクセスし、Googleアカウントでログインして認可を行ってください。 認可完了後に表示される認可コードをコピーし、ターミナルに貼り付けてEnterキーを押してください。 この操作によりtoken.jsonファイルが生成され、以降は自動的に認証されます。

ビルドと実行

ビルド

npm run build

実行

通常のサーバーとして実行:

npm start

開発モードでの実行:

npm run dev

MCPサーバーとしての利用

このプロジェクトはModel Context Protocol(MCP)の仕様に準拠したサーバーです。MCPクライアント(Cursor、Claude.aiなど)から直接接続して利用できます。

MCPクライアントでの設定

Cursorでの設定

Cursorで使用するには、.cursor/mcp.jsonファイルに以下の設定を追加します:

{
  "mcpServers": {
    "google-docs": {
      "command": "node",
      "args": ["/{プロジェクトへの絶対パス}/docs-mcp/dist/index.js"]
    }
  }
}

その他のMCPクライアント

その他のMCPクライアントでは、標準入出力(stdio)を使用して通信します。クライアントの設定に応じて適切なコマンドを指定してください。

提供されるMCPツール

read_google_document

Google Docsドキュメントの内容を読み取ります。

パラメータ:

  • documentId (string): 読み取るGoogle DocsドキュメントのID

使用例:

// MCPクライアントでの使用例
const response = await client.callTool({
  name: "read_google_document",
  arguments: {
    documentId: "your-document-id"
  }
});

create_google_document

新しいGoogle Docsドキュメントを作成します。

パラメータ:

  • title (string): 新しいドキュメントのタイトル
  • content (string, オプション): ドキュメントの初期内容

使用例:

const response = await client.callTool({
  name: "create_google_document",
  arguments: {
    title: "ドキュメントタイトル",
    content: "初期コンテンツ"
  }
});

update_google_document

既存のGoogle Docsドキュメントを更新します。

パラメータ:

  • documentId (string): 更新するGoogle DocsドキュメントのID
  • content (string): 追加または更新するコンテンツ
  • startPosition (number, オプション): 更新を開始する位置
  • endPosition (number, オプション): 更新を終了する位置

使用例:

const response = await client.callTool({
  name: "update_google_document",
  arguments: {
    documentId: "your-document-id",
    content: "追加または更新するコンテンツ",
    startPosition: 1,
    endPosition: 10
  }
});

search_google_documents

Google Docsドキュメントを検索します。

パラメータ:

  • query (string): 検索クエリ
  • maxResults (number, オプション): 取得する最大結果数(デフォルト: 10)

使用例:

const response = await client.callTool({
  name: "search_google_documents",
  arguments: {
    query: "検索キーワード",
    maxResults: 5
  }
});

プログラムからの利用例

TypeScriptやJavaScriptプログラムからMCPクライアントを通じて利用する例:

import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";

async function main() {
  // MCPクライアントの作成
  const client = new Client({
    name: "google-docs-client",
    version: "1.0.0"
  });

  // Google Docs MCPサーバーへの接続
  const transport = new StdioClientTransport({
    command: "npm",
    args: ["run", "mcp"]
  });

  await client.connect(transport);

  // サーバー情報の取得
  const info = await client.getServerInfo();
  console.log("利用可能なツール:", info.tools);

  // ドキュメントの検索
  const searchResult = await client.callTool({
    name: "search_google_documents",
    arguments: {
      query: "会議資料",
      maxResults: 5
    }
  });
  console.log("検索結果:", searchResult);

  // 接続を閉じる
  await client.disconnect();
}

main().catch(console.error);

トラブルシューティング

Cursorで接続エラーが発生する場合

  1. Cursorを完全に再起動してください。
  2. .cursor/mcp.jsonの設定が正しいことを確認してください。
  3. 手動でMCPサーバーを起動して動作確認:
    npm run dev
    
    このコマンドを実行したときに「Google Docs MCPサーバーが起動しました」というメッセージが表示され、プロセスが終了せずに動作し続けることを確認します。
  4. Cursorの設定から「MCPサーバー」セクションを確認し、「google-docs」サーバーが表示されていることを確認します。

Google認証エラーが発生する場合

  1. credentials.jsonファイルが正しくプロジェクトルートに配置されていることを確認します。
  2. token.jsonファイルが存在する場合は削除し、再認証を試みてください。
  3. Google Cloud Consoleで該当のプロジェクトに対してGoogle Drive APIとGoogle Docs APIが有効になっていることを確認します。

拡張と構成

このMCPサーバーは拡張性を考慮して設計されており、以下のように新しい機能を追加できます:

  1. src/googleDocsService.ts - GoogleDocsServiceクラスに新しいメソッドを追加
  2. src/index.ts - 新しいツールを定義し、サーバーに登録

注意事項

  • 初回実行時に、Google認証のための承認画面が表示されます。認証後、トークンがファイルに保存され、以降の実行では自動的に使用されます。
  • APIの使用量に応じて、Google Cloud Platformの料金が発生する場合があります。

ライセンス

MIT License

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选