Google Docs MCP Server

Google Docs MCP Server

Connects Claude to Google Docs, allowing users to list, read, create, update, search, and delete documents in their Google Drive through natural language interactions.

Category
Visit Server

README

Google Docs MCP Server

This is a Model Context Protocol (MCP) server that allows you to connect to Google Docs through Claude. With this server, you can:

  • List all Google Docs in your Drive
  • Read the content of specific documents
  • Create new documents
  • Update existing documents
  • Search for documents
  • Delete documents

Prerequisites

  • Node.js v16.0.0 or later
  • Google Cloud project with the Google Docs API and Google Drive API enabled
  • OAuth 2.0 credentials for your Google Cloud project

Setup

  1. Clone this repository and navigate to the project directory:
git clone https://github.com/yourusername/MCP-Google-Doc.git
cd MCP-Google-Doc
  1. Install dependencies:
npm install
  1. Create an OAuth 2.0 client ID in the Google Cloud Console:

    • Go to the Google Cloud Console
    • Create a new project or select an existing one
    • Enable the Google Docs API and Google Drive API
    • Go to "APIs & Services" > "Credentials"
    • Click "Create Credentials" > "OAuth client ID"
    • Select "Desktop app" for the application type
    • Download the JSON file and save it as credentials.json in your project directory

    Important: The credentials.json and token.json files contain sensitive information and are excluded from version control via .gitignore. Never commit these files to your repository.

  2. Build the project:

npm run build
  1. Run the server:
npm start

The first time you run the server, it will prompt you to authenticate with Google. Follow the on-screen instructions to authorize the application. This will generate a token.json file that stores your access tokens.

Security Considerations

  • Credential Security: Both credentials.json and token.json contain sensitive information and should never be shared or committed to version control. They are already added to the .gitignore file.
  • Token Refresh: The application automatically refreshes the access token when it expires.
  • Revoking Access: If you need to revoke access, delete the token.json file and go to your Google Account Security settings to remove the app from your authorized applications.

Connecting to Claude for Desktop

To use this server with Claude for Desktop:

  1. Edit your Claude Desktop configuration file:

    • On macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • On Windows: %APPDATA%\Claude\claude_desktop_config.json
  2. Add the following to your configuration:

{
  "mcpServers": {
    "googledocs": {
      "command": "node",
      "args": ["/absolute/path/to/build/server.js"]
    }
  }
}

Replace /absolute/path/to/build/server.js with the actual path to your built server.js file.

  1. Restart Claude for Desktop.

User Interface

The Google Docs MCP server features a user-friendly, conversational interface that:

  • Presents document information in a clean, readable format
  • Uses natural language responses rather than raw API data
  • Formats dates in a human-readable way
  • Provides helpful follow-up questions after actions
  • Never exposes sensitive data like OAuth tokens

This interface styling is designed to match other Claude MCP integrations like Notion, providing a consistent and pleasant user experience.

Development

Project Structure

google-docs-integration/
├── build/                # Compiled JavaScript files
├── src/                  # TypeScript source code
│   └── server.ts         # Main server implementation
├── .gitignore            # Git ignore file
├── credentials.json      # OAuth 2.0 credentials (not in version control)
├── package.json          # Project dependencies and scripts
├── README.md             # Project documentation
├── token.json            # OAuth tokens (not in version control)
└── tsconfig.json         # TypeScript configuration

Adding New Features

To add new features to the MCP server:

  1. Modify the src/server.ts file to implement new functionality
  2. Build the project with npm run build
  3. Test your changes by running npm start

Available Resources

  • googledocs://list - Lists all Google Docs in your Drive
  • googledocs://{docId} - Gets the content of a specific document by ID

Available Tools

  • create-doc - Creates a new Google Doc with the specified title and optional content
  • update-doc - Updates an existing Google Doc with new content (append or replace)
  • insert-text - Directly inserts text into a document without Notion or other integrations
  • search-docs - Searches for Google Docs containing specific text
  • delete-doc - Deletes a Google Doc by ID

Available Prompts

  • create-doc-template - Helps create a new document based on a specified topic and writing style
  • analyze-doc - Analyzes the content of a document and provides a summary

Usage Examples

Here are some example prompts you can use with Claude once the server is connected:

  • "Show me a list of all my Google Docs"
  • "Create a new Google Doc titled 'Meeting Notes' with the content 'Topics to discuss: ...'"
  • "Update my document with ID '1abc123def456' to add this section at the end: ..."
  • "Search my Google Docs for any documents containing 'project proposal'"
  • "Delete the Google Doc with ID '1abc123def456'"
  • "Create a formal document about climate change"
  • "Analyze the content of document with ID '1abc123def456'"

Troubleshooting

If you encounter authentication issues:

  1. Delete the token.json file in your project directory
  2. Run the server again to trigger a new authentication flow

If you're having trouble with the Google Docs API:

  1. Make sure the API is enabled in your Google Cloud Console
  2. Check that your OAuth credentials have the correct scopes

Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/your-feature-name
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin feature/your-feature-name
  5. Submit a pull request

License

MIT

Environment Variables

Create a .env file at the project root (or export the variables in your shell) with the following keys:

# OAuth 2.0 client credentials – **JSON string** of the credentials file
GOOGLE_DOCS_CREDENTIALS_JSON={...}

# OAuth token – **JSON string** returned by the OAuth consent flow
GOOGLE_DOCS_TOKEN_JSON={...}

If these variables are set, the server will not attempt to read credentials.json or token.json from disk.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured