npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

mcp-google-reader

v1.2.0

Published

MCP server to read Google Docs and Google Sheets content for AI assistants

Readme

mcp-google-reader

MCP server that reads Google Docs and Google Sheets content for AI assistants like Claude.

Paste a Google Docs/Sheets link in your message — Claude reads it directly. No more copy-pasting PRDs, tech specs, or test case spreadsheets.

Prerequisites

  • Node.js 18+ (recommended: Node.js 20 or 22 LTS)
  • A Google Cloud project with Docs & Sheets APIs enabled

Quick Start

# 1. Set up Google Cloud OAuth (see detailed steps below)
# 2. Authorize (run in your terminal, not inside an AI assistant)
npx mcp-google-reader auth
# 3. Add to your MCP client
claude mcp add -s user google-reader -- npx mcp-google-reader serve

Features

  • Google Docs → Markdown: Preserves headings, bold, italic, lists, tables, links
  • Google Sheets → Markdown table: First row as header, proper column alignment
  • Multiple URLs: Paste several links in one message — all fetched in parallel
  • Sheet selection: Read specific tabs by name, or all tabs at once
  • Caching: 60-second in-memory cache to avoid redundant API calls
  • OAuth2: Reads any file you have access to in your Google account

Setup

1. Google Cloud Project

  1. Go to Google Cloud Console → Create a new project (or select existing)
  2. Enable Google Docs API: Enable here
  3. Enable Google Sheets API: Enable here

2. OAuth Consent Screen

  1. Go to APIs & Services → OAuth consent screen
  2. Choose External → Create
  3. Fill in:
    • App name: mcp-google-reader
    • User support email: your email
    • Developer contact: your email
  4. Scopes → Save and Continue (no changes needed)
  5. Test usersAdd users → add your Google email → Save and Continue
  6. Summary → Back to Dashboard
  7. Keep in Testing mode (sufficient for personal use and small teams)

3. Create OAuth Client ID

  1. Go to APIs & Services → Credentials
  2. Create CredentialsOAuth client ID
  3. Application type: Desktop app
  4. Name: mcp-google-reader
  5. Click Create
  6. Copy the Client ID and Client Secret

4. Authorize

Important: Run this command in your terminal directly — not inside an AI assistant. The auth flow requires interactive input and opening a browser.

npx mcp-google-reader auth

This will:

  1. Ask for your Client ID and Client Secret (first time only)
  2. Print an authorization URL — copy and open it in your browser
  3. Sign in with your Google account and click Allow
  4. Browser redirects to localhost — tokens are saved automatically

Credentials stored at ~/.mcp-google-reader/

npx automatically downloads the package on first run — no npm install -g needed.

Windows troubleshooting: If you get sed: command not found errors, try one of these:

# Option 1: Run in Command Prompt (cmd) instead of PowerShell
cmd /c "npx mcp-google-reader auth"

# Option 2: Install globally first
npm install -g mcp-google-reader
mcp-google-reader auth

5. Add to your MCP client

Claude Code (CLI)

# Add globally (available in all projects)
claude mcp add -s user google-reader -- npx mcp-google-reader serve

# Or add to current project only
claude mcp add google-reader -- npx mcp-google-reader serve

Then restart Claude Code to load the MCP server.

Cursor / Windsurf / VS Code

Create a .mcp.json file in your project root (or copy from .mcp-example.json):

{
  "mcpServers": {
    "google-reader": {
      "command": "npx",
      "args": ["mcp-google-reader", "serve"]
    }
  }
}

Then restart your editor.

Claude Desktop

Add to your Claude Desktop config (claude_desktop_config.json):

{
  "mcpServers": {
    "google-reader": {
      "command": "npx",
      "args": ["mcp-google-reader", "serve"]
    }
  }
}

Config file location:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Usage

Just paste Google links in your message:

Read this PRD and implement the feature:
https://docs.google.com/document/d/1abc123.../edit

Test cases are here:
https://docs.google.com/spreadsheets/d/1xyz789.../edit

Claude will automatically call read_google_links and get the content.

Multiple links in one message are supported:

Here are the PRD https://docs.google.com/document/d/abc and test cases https://docs.google.com/spreadsheets/d/xyz — please review both.

Tools

read_google_links

Extract and read all Google Docs/Sheets URLs from a message.

| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | message | string | Yes | Message containing one or more Google URLs |

read_google_sheet

Read a specific Google Sheet with fine-grained options.

| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | url | string | Yes | Google Sheets URL | | sheet_name | string | No | Tab name (default: first tab) | | range | string | No | Cell range, e.g. A1:Z100 | | all_sheets | boolean | No | Read all tabs |

Credentials

~/.mcp-google-reader/
├── oauth-config.json    # Client ID & Secret (created during auth)
└── credentials.json     # Access & refresh tokens (auto-managed)

Security

  • Credentials stored with 600 file permissions (owner read/write only)
  • Tokens auto-refresh — no need to re-authorize
  • Read-only scopes: documents.readonly and spreadsheets.readonly
  • No data sent anywhere except Google APIs

License

MIT