google-mcp-server

mackenzienolan/google-mcp-server

3.2

If you are the rightful owner of google-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

A remote Model Context Protocol (MCP) server providing Google Docs integration for Claude Desktop, built with Next.js and deployed on Vercel.

Tools
  1. authorize_google

    Authorize Google Docs access

  2. read_document

    Read content from Google Docs

  3. create_document

    Create new Google Docs

  4. update_document

    Update document content with batch operations

  5. append_text

    Append text to documents

  6. list_documents

    List your Google Docs

Google Docs MCP Server (Next.js)

A remote Model Context Protocol (MCP) server that provides Google Docs integration for Claude Desktop, built with Next.js and deployed on Vercel.

Features

  • Remote MCP Server: Deployed on Vercel with SSE transport
  • Google OAuth: Secure authentication with Google Docs and Drive permissions
  • Web Dashboard: User-friendly interface for managing API keys
  • Multi-user: Support for multiple users with isolated access
  • API Key Management: Secure token-based authentication for MCP clients

Architecture

User Browser → Next.js App → Google OAuth → Database (User/Tokens)
Claude Desktop → MCP SSE Transport → API Key Auth → Google APIs

Setup

1. Google Cloud Console Setup

  1. Create a new project in Google Cloud Console
  2. Enable Google Docs API and Google Drive API
  3. Create OAuth 2.0 credentials:
    • Application type: Web application
    • Authorized redirect URIs: https://your-app.vercel.app/api/auth/callback/google
  4. Copy Client ID and Client Secret

2. Database Setup

Create a PostgreSQL database (recommended: Neon or Supabase)

3. Redis Setup

Create a Redis instance (required for Vercel MCP adapter). Recommended: Upstash

4. Deploy to Vercel

  1. Fork this repository
  2. Import to Vercel
  3. Add environment variables:
    NEXTAUTH_SECRET=your-random-secret
    NEXTAUTH_URL=https://your-app.vercel.app
    GOOGLE_CLIENT_ID=your-google-client-id
    GOOGLE_CLIENT_SECRET=your-google-client-secret
    DATABASE_URL=your-postgresql-url
    REDIS_URL=your-redis-url
    
  4. Deploy

5. Initialize Database

After deployment, run database migrations:

pnpm db:push

Usage

Simple Setup (OAuth-on-Demand)

  1. Add MCP server to Claude Desktop (no setup required):
claude mcp add --transport sse google-docs https://your-app.vercel.app/sse

Or manually add to claude_desktop_config.json:

{
  "mcpServers": {
    "google-docs": {
      "command": "claude",
      "args": ["mcp", "connect", "sse", "https://your-app.vercel.app/sse"]
    }
  }
}
  1. First-time authorization:

    • In Claude Desktop, run: "Use the authorize_google tool"
    • Claude will provide an authorization link
    • Click the link → browser opens → sign in with Google
    • After authorization, all Google Docs tools work automatically
  2. Available Tools:

    • authorize_google - Authorize Google Docs access (run this first)
    • read_document - Read content from Google Docs
    • create_document - Create new Google Docs
    • update_document - Update document content with batch operations
    • append_text - Append text to documents
    • list_documents - List your Google Docs

Alternative: API Key Setup (Advanced)

For programmatic access or multiple clients:

  1. Web Setup:

    • Visit your deployed app: https://your-app.vercel.app
    • Sign in with Google
    • Create an API key
  2. Claude Desktop Setup:

claude mcp add --transport sse google-docs \\
  https://your-app.vercel.app/sse \\
  --header "X-API-Key: your-api-key"

Development

Local Setup

  1. Clone the repository
  2. Install dependencies: pnpm install
  3. Copy .env.example to .env and fill in values
  4. Run database migrations: pnpm db:push
  5. Start development server: pnpm dev

Commands

  • pnpm dev - Start development server
  • pnpm build - Build for production
  • pnpm start - Start production server
  • pnpm lint - Run ESLint
  • pnpm db:generate - Generate database migrations
  • pnpm db:push - Push schema to database
  • pnpm db:studio - Open Drizzle Studio

Security

  • API keys are hashed before storage
  • Google refresh tokens are encrypted in database
  • User isolation prevents cross-user access
  • HTTPS enforced for OAuth callbacks

Troubleshooting

Common Issues

  1. OAuth Error: Check redirect URI matches exactly
  2. Database Connection: Verify DATABASE_URL format
  3. API Key Invalid: Ensure X-API-Key header is set correctly
  4. Redis Connection: Verify REDIS_URL for SSE transport

Logs

Check Vercel function logs for detailed error information.

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make changes
  4. Test locally
  5. Submit a pull request

License

MIT License - see LICENSE file for details.