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

mmggws

v0.1.44

Published

MoMo Google Workspace CLI and MCP server

Readme

MoMo Google Workspace (mmggws)

Use the package as either a CLI or a stdio MCP server. Both surfaces run the same Workspace operations as the Google account that signs in. This guide finds a Drive file by name and returns its ID and link using the read-only drive_list operation.

Requires Node.js 18 or later and npx.

CLI

Connect the Google account:

npx -y mmggws@latest login

The command prints a consent URL and attempts to open it in a browser. Choose the account to use with Workspace and approve access. On completion, the CLI reports that the token was saved and its refresh verified. If the browser does not open, use the printed URL.

Inspect the current operation schema, then search by a distinctive name. Replace budget with words from the file name:

npx -y mmggws@latest tool show drive_list
npx -y mmggws@latest tool call drive_list \
  --args "{\"query\":\"name contains 'budget' and trashed = false\"}" \
  --json

--json includes structuredContent; the default text output gives the count and includes next_cursor when another page exists. Use --json for the file details: the structured operation data contains files, whose items include id, name, and web_view_link when Drive supplies a link. Use the returned ID and link for the matching file.

MCP

Register a stdio MCP server in your client with this command and argument list. It launches the package using the canonical command npx -y mmggws@latest:

{
  "command": "npx",
  "args": ["-y", "mmggws@latest"]
}

The portable MCP surface has three tools: search, instructions, and execute. Connect the account through the gateway:

  1. Call search with {"query":"sign in"} and select the login operation.
  2. Call instructions with {"operation":"login"}.
  3. Call execute with {"operation":"login","arguments":{}}, then complete the browser consent for the Google account to use.

Find the Drive file through the same gateway:

  1. Call search with {"query":"find files in Drive"} and select drive_list.
  2. Call instructions with {"operation":"drive_list"} to inspect its input schema.
  3. Call execute with {"operation":"drive_list","arguments":{"query":"name contains 'budget' and trashed = false"}}. Replace budget with words from the file name.

The result's structured data contains files; use the matching item's id and web_view_link when present. This is a shape example only; every value is a placeholder, not observed account data:

{
  "files": [
    {
      "id": "EXAMPLE_ID",
      "name": "Example document",
      "web_view_link": "EXAMPLE_LINK"
    }
  ],
  "next_cursor": "EXAMPLE_CURSOR"
}

In CLI --json, this operation data is under structuredContent. MCP clients receive the same fields in structuredContent; the gateway also carries the complete result in its text content.

Empty Results And Pages

No matches is a successful read, not a login error. CLI text says drive_list: 0 files; structured data has files: null when there are no items. MCP's mirrored structured result makes the same empty state visible in its text channel. A matching page contains a files array.

drive_list returns up to 10 files by default (maximum 100). If the result has next_cursor, continue with that opaque value as the only operation argument; an absent cursor means the last page.

CLI:

npx -y mmggws@latest tool call drive_list \
  --args "{\"cursor\":\"<next_cursor>\"}" \
  --json

MCP execute:

{
  "operation": "drive_list",
  "arguments": {"cursor": "<next_cursor>"}
}

Replace <next_cursor> with the value returned by the previous page. A cursor supersedes the original query and page options, so send it alone.

Sign-In Recovery

MCP search works before sign-in and does not open a browser. An actual Google execute call may open browser recovery when credentials are missing or the refresh token is permanently rejected. Transient token-service failures and Google API 401/403 responses do not start that recovery. The explicit login operation above can be used when the employee chooses to connect first.