{"_id":"@ashokpokharel977/mcp-server-gsuite","_rev":"4-8d144ffb9d8090b99fbf2834a0e9f070","name":"@ashokpokharel977/mcp-server-gsuite","dist-tags":{"latest":"0.0.4"},"versions":{"0.0.1":{"name":"@ashokpokharel977/mcp-server-gsuite","version":"0.0.1","keywords":["mcp","google","drive","docs","sheets","api","typescript"],"author":{"name":"Ashok Pokharel"},"license":"MIT","_id":"@ashokpokharel977/mcp-server-gsuite@0.0.1","maintainers":[{"name":"ashokpokharel977","email":"ashokpokharel977@gmail.com"}],"homepage":"https://github.com/ashokpokharel977/mcp-gsuite#readme","bugs":{"url":"https://github.com/ashokpokharel977/mcp-gsuite/issues"},"bin":{"mcp-server-gsuite":"dist/index.js"},"dist":{"shasum":"6f28daab9479dac68a7143878a0c608f5bc28637","tarball":"https://registry.npmjs.org/@ashokpokharel977/mcp-server-gsuite/-/mcp-server-gsuite-0.0.1.tgz","fileCount":10,"integrity":"sha512-lmCMGhMdR0ZTAcHFLmpQhSYdbQY5TmFAKdT0tV1nRp/i7+sxs7x91es4Xmpg7jXX+/5HvAnpoV7B1jRasiDqAA==","signatures":[{"sig":"MEYCIQDFyY1r3fGam1CiZnBoUZCoGS6kYJfPWXAFvBAbRQC7rgIhAI0Nsr55/CYllqKzd/Ok/8sOAq3DV0/6/Y5zpR96AO/n","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":68877},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"3715092445c9d12a171ae8f1390d92bf4ccef9e3","scripts":{"dev":"ts-node-dev -r tsconfig-paths/register src/index.ts","auth":"node --es-module-specifier-resolution=node dist/index.js auth","build":"tsc && tsc-alias && shx chmod +x dist/index.js","clean":"rimraf dist","start":"node --es-module-specifier-resolution=node dist/index.js","prepare":"npm run build","prebuild":"npm run clean","prepublishOnly":"npm run build"},"_npmUser":{"name":"ashokpokharel977","email":"ashokpokharel977@gmail.com"},"repository":{"url":"git+https://github.com/ashokpokharel977/mcp-gsuite.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP server for interacting with Google Drive, Sheets, and Docs","directories":{},"_nodeVersion":"20.19.0","dependencies":{"zod":"^3.22.4","googleapis":"^144.0.0","@googleapis/sheets":"^9.6.0","@google-cloud/local-auth":"^3.0.1","@modelcontextprotocol/sdk":"1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","rimraf":"^5.0.10","ts-node":"^10.9.2","tsc-alias":"^1.8.13","typescript":"^5.6.2","@types/node":"^22","ts-node-dev":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server-gsuite_0.0.1_1743340599102_0.40133015675814754","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@ashokpokharel977/mcp-server-gsuite","version":"0.0.2","keywords":["mcp","google","drive","docs","sheets","api","typescript"],"author":{"name":"Ashok Pokharel"},"license":"MIT","_id":"@ashokpokharel977/mcp-server-gsuite@0.0.2","maintainers":[{"name":"ashokpokharel977","email":"ashokpokharel977@gmail.com"}],"homepage":"https://github.com/ashokpokharel977/mcp-gsuite#readme","bugs":{"url":"https://github.com/ashokpokharel977/mcp-gsuite/issues"},"bin":{"mcp-server-gsuite":"dist/index.js"},"dist":{"shasum":"ba742752d62a9fa43b7168efa88f8ce825156794","tarball":"https://registry.npmjs.org/@ashokpokharel977/mcp-server-gsuite/-/mcp-server-gsuite-0.0.2.tgz","fileCount":11,"integrity":"sha512-U8Dt4O3eJPiUGJSDowMWGBdTWhhH9iRZU1jQZd5VtmlRhvx5JMB5gMQQd9fGo9Pj1znWcruhBdTrjsxvh6S0yA==","signatures":[{"sig":"MEQCIGLAOlP8ZUeTtrqhQFCKRs4XdD3OovXbDUz/1SAltGrqAiBpxMpiLXmoidH/ESNcyOAoJmqf0aRkVQ7jcFdWqaGTNA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72539},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"064c2b4626270408b8392d2b4dd2ec5b59b6960f","scripts":{"dev":"ts-node-dev -r tsconfig-paths/register src/index.ts","auth":"node --es-module-specifier-resolution=node dist/index.js auth","build":"tsc && tsc-alias && shx chmod +x dist/index.js","clean":"rimraf dist","start":"node --es-module-specifier-resolution=node dist/index.js","prepare":"npm run build","prebuild":"npm run clean","prepublishOnly":"npm run build"},"_npmUser":{"name":"ashokpokharel977","email":"ashokpokharel977@gmail.com"},"repository":{"url":"git+https://github.com/ashokpokharel977/mcp-gsuite.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP server for interacting with Google Drive, Sheets, and Docs","directories":{},"_nodeVersion":"20.19.0","dependencies":{"zod":"^3.22.4","googleapis":"^144.0.0","@googleapis/sheets":"^9.6.0","@google-cloud/local-auth":"^3.0.1","@modelcontextprotocol/sdk":"1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","rimraf":"^5.0.10","ts-node":"^10.9.2","tsc-alias":"^1.8.13","typescript":"^5.6.2","@types/node":"^22","ts-node-dev":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server-gsuite_0.0.2_1743673208864_0.5225590199625676","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@ashokpokharel977/mcp-server-gsuite","version":"0.0.3","keywords":["mcp","google","drive","docs","sheets","api","typescript"],"author":{"name":"Ashok Pokharel"},"license":"MIT","_id":"@ashokpokharel977/mcp-server-gsuite@0.0.3","maintainers":[{"name":"ashokpokharel977","email":"ashokpokharel977@gmail.com"}],"homepage":"https://github.com/ashokpokharel977/mcp-gsuite#readme","bugs":{"url":"https://github.com/ashokpokharel977/mcp-gsuite/issues"},"bin":{"mcp-server-gsuite":"dist/index.js"},"dist":{"shasum":"a5e480615f4e47a02753c1725992aa19dfb93a40","tarball":"https://registry.npmjs.org/@ashokpokharel977/mcp-server-gsuite/-/mcp-server-gsuite-0.0.3.tgz","fileCount":11,"integrity":"sha512-iEBdLwU2KqAgoURL9e0Ytlat+eCwP8wCC8fRlRwFu2ZCO5ipnIB7FbMd7W1J725VzUjBzj4mgywfJz4u3KWiVw==","signatures":[{"sig":"MEUCIQCoWSqFhv8VvenOeFgZB0+mGMq1jQZ9TEd32kxB+676BwIgBdAE7GZYu2AaGdYaSRBXjnK8TJ0YcD0SAEAd4kb6qwE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83961},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"4cb6b6eb242fa6c98014e50f9dfdfc1f87b5e3b9","scripts":{"dev":"ts-node-dev -r tsconfig-paths/register src/index.ts","auth":"node --es-module-specifier-resolution=node dist/index.js auth","build":"tsc && tsc-alias && shx chmod +x dist/index.js","clean":"rimraf dist","start":"node --es-module-specifier-resolution=node dist/index.js","prepare":"npm run build","prebuild":"npm run clean","prepublishOnly":"npm run build"},"_npmUser":{"name":"ashokpokharel977","email":"ashokpokharel977@gmail.com"},"repository":{"url":"git+https://github.com/ashokpokharel977/mcp-gsuite.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP server for interacting with Google Drive, Sheets, and Docs","directories":{},"_nodeVersion":"20.19.0","dependencies":{"zod":"^3.22.4","googleapis":"^144.0.0","@googleapis/sheets":"^9.6.0","@google-cloud/local-auth":"^3.0.1","@modelcontextprotocol/sdk":"1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","rimraf":"^5.0.10","ts-node":"^10.9.2","tsc-alias":"^1.8.13","typescript":"^5.6.2","@types/node":"^22","ts-node-dev":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server-gsuite_0.0.3_1743679682907_0.6080852785441984","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@ashokpokharel977/mcp-server-gsuite","version":"0.0.4","description":"MCP server for interacting with Google Drive, Sheets, and Docs","license":"MIT","author":{"name":"Ashok Pokharel"},"type":"module","bin":{"mcp-server-gsuite":"dist/index.js"},"main":"dist/index.js","types":"dist/index.d.ts","repository":{"type":"git","url":"git+https://github.com/ashokpokharel977/mcp-gsuite.git"},"bugs":{"url":"https://github.com/ashokpokharel977/mcp-gsuite/issues"},"homepage":"https://github.com/ashokpokharel977/mcp-gsuite#readme","keywords":["mcp","google","drive","docs","sheets","api","typescript"],"engines":{"node":">=18"},"scripts":{"clean":"rimraf dist","prebuild":"npm run clean","build":"tsc && tsc-alias && shx chmod +x dist/index.js","prepare":"npm run build","start":"node --es-module-specifier-resolution=node dist/index.js","auth":"node --es-module-specifier-resolution=node dist/index.js auth","dev":"ts-node-dev -r tsconfig-paths/register src/index.ts","prepublishOnly":"npm run build"},"dependencies":{"@google-cloud/local-auth":"^3.0.1","@googleapis/sheets":"^9.6.0","@modelcontextprotocol/sdk":"1.0.1","googleapis":"^144.0.0","zod":"^3.22.4"},"devDependencies":{"@types/node":"^22","rimraf":"^5.0.10","shx":"^0.3.4","ts-node":"^10.9.2","ts-node-dev":"^2.0.0","tsc-alias":"^1.8.13","typescript":"^5.6.2"},"_id":"@ashokpokharel977/mcp-server-gsuite@0.0.4","gitHead":"905b91fa48e7a5a435ed944bd3e3f6dd62f1dd22","_nodeVersion":"20.19.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-p6KNrgJlXIiRqihRE9VBZA98bjbwAGdXwoT/peso+QmxDLS9lJjXpean+opE0/DlTT6Tyast/4MK+Ex7u1H4lw==","shasum":"621102f63124803f63d6761af33bf1b3f13f3401","tarball":"https://registry.npmjs.org/@ashokpokharel977/mcp-server-gsuite/-/mcp-server-gsuite-0.0.4.tgz","fileCount":11,"unpackedSize":61251,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDHbj5pnCZ5I0HkcsoZui63tbjbBRR7xhSC4DkkoZXV2QIgH+nOcl7hWj1R44OUc7hYguI034oaYdCgK1Tv2yXryuE="}]},"_npmUser":{"name":"ashokpokharel977","email":"ashokpokharel977@gmail.com"},"directories":{},"maintainers":[{"name":"ashokpokharel977","email":"ashokpokharel977@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-server-gsuite_0.0.4_1744174683878_0.5989327754034242"},"_hasShrinkwrap":false}},"time":{"created":"2025-03-30T13:16:39.036Z","modified":"2025-04-09T04:58:04.222Z","0.0.1":"2025-03-30T13:16:39.308Z","0.0.2":"2025-04-03T09:40:09.100Z","0.0.3":"2025-04-03T11:28:03.084Z","0.0.4":"2025-04-09T04:58:04.052Z"},"bugs":{"url":"https://github.com/ashokpokharel977/mcp-gsuite/issues"},"author":{"name":"Ashok Pokharel"},"license":"MIT","homepage":"https://github.com/ashokpokharel977/mcp-gsuite#readme","keywords":["mcp","google","drive","docs","sheets","api","typescript"],"repository":{"type":"git","url":"git+https://github.com/ashokpokharel977/mcp-gsuite.git"},"description":"MCP server for interacting with Google Drive, Sheets, and Docs","maintainers":[{"name":"ashokpokharel977","email":"ashokpokharel977@gmail.com"}],"readme":"# mcp-server-gsuite\n\n[![CI](https://github.com/ashokpokharel977/mcp-gsuite/actions/workflows/ci.yml/badge.svg)](https://github.com/ashokpokharel977/mcp-gsuite/actions/workflows/ci.yml)\n[![npm version](https://badge.fury.io/js/%40modelcontextprotocol%2Fmcp-server-gsuite.svg)](https://www.npmjs.com/package/@modelcontextprotocol/mcp-server-gsuite)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Node.js Version](https://img.shields.io/node/v/@modelcontextprotocol/mcp-server-gsuite.svg)](https://nodejs.org)\n\nMCP server for interacting with Google Drive, Sheets, and Docs. This package provides a TypeScript/JavaScript interface for Google Workspace services with rich formatting support.\n\n## Features\n\n- **Google Drive Operations**\n  - Search and list files\n  - Create and update files\n  - Create and manage folders\n  - Read file metadata and content\n  - Support for file permissions\n\n- **Google Docs Operations**\n  - Create documents with rich formatting\n  - Update document content\n  - Support for cover pages, headers, footers\n  - Text styling and formatting\n\n- **Google Sheets Operations**\n  - Create spreadsheets\n  - Read and write cell values\n  - Format cells (colors, fonts, borders)\n  - Row and column operations (insert, delete, resize)\n  - Cell merging\n\n## Installation\n\n```bash\nnpm install @ashokpokharel977/mcp-server-gsuite\n```\n\n## Setup\n\n1. [Create a new Google Cloud project](https://console.cloud.google.com/projectcreate)\n2. [Enable the Google Drive API](https://console.cloud.google.com/workspace-api/products)\n3. [Configure an OAuth consent screen](https://console.cloud.google.com/apis/credentials/consent)\n4. Add required OAuth scopes:\n   - `https://www.googleapis.com/auth/drive.file` - Create, update and read files created by the app\n   - `https://www.googleapis.com/auth/drive.metadata.readonly` - View file metadata\n   - `https://www.googleapis.com/auth/documents` - Create and edit Google Docs\n   - `https://www.googleapis.com/auth/spreadsheets` - Create and edit Google Sheets\n5. [Create an OAuth Client ID](https://console.cloud.google.com/apis/credentials/oauthclient) for application type \"Desktop App\"\n6. Download the OAuth keys JSON file\n\n## Usage\n\n### Docker Usage\n\nAuthentication:\n```bash\ndocker run -i --rm \\\n  --mount type=bind,source=/path/to/oauth-keys.json,target=/app/oauth-keys.json \\\n  -v mcp-gsuite:/app/credentials \\\n  -e GOOGLE_OAUTH_PATH=/app/oauth-keys.json \\\n  -e GOOGLE_CREDENTIALS_PATH=/app/credentials/credentials.json \\\n  -p 3000:3000 \\\n  @ashokpokharel977/mcp-server-gsuite auth\n```\n\nServer configuration:\n```json\n{\n  \"mcpServers\": {\n    \"gsuite\": {\n      \"command\": \"docker\",\n      \"args\": [\n        \"run\",\n        \"-i\",\n        \"--rm\",\n        \"-v\", \"mcp-gsuite:/app/credentials\",\n        \"-e\", \"GOOGLE_CREDENTIALS_PATH=/app/credentials/credentials.json\",\n        \"@ashokpokharel977/mcp-server-gsuite\"\n      ]\n    }\n  }\n}\n```\n\n### NPX Usage\n\n```json\n{\n  \"mcpServers\": {\n    \"gsuite\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@ashokpokharel977/mcp-server-gsuite\"\n      ],\n      \"env\": {\n        \"GOOGLE_CREDENTIALS_PATH\": \"/path/to/credentials.json\",\n        \"GOOGLE_OAUTH_PATH\": \"/path/to/oauth-keys.json\"\n      }\n    }\n  }\n}\n```\n\n### MCP Inspector usage\n\n1. Running Local \n```bash\nnpx @modelcontextprotocol/inspector node dist/index.js -e GOOGLE_CREDENTIALS_PATH=\"$HOME/.google/server-creds.json\" -e GOOGLE_OAUTH_PATH=\"$HOME/.google/oauth.keys.json\"\n```\n1. Running Remote \n```bash\nnpx @modelcontextprotocol/inspector npx @ashokpokharel977/mcp-server-gsuite -e GOOGLE_CREDENTIALS_PATH=\"$HOME/.google/server-creds.json\" -e GOOGLE_OAUTH_PATH=\"$HOME/.google/oauth.keys.json\"\n```\n## Development\n\n### Prerequisites\n\n- Node.js >= 18\n- npm\n\n### Setup\n\n1. Clone the repository:\n```bash\ngit clone https://github.com/ashokpokharel977/mcp-gsuite.git\ncd mcp-gsuite\n```\n\n2. Install dependencies:\n```bash\nnpm install\n```\n\n3. Build the project:\n```bash\nnpm run build\n```\n\n### Available Scripts\n\n- `npm run clean` - Clean build artifacts\n- `npm run build` - Build the project\n- `npm run dev` - Run in development mode with hot reload\n- `npm start` - Start the server\n- `npm run auth` - Run authentication flow\n\n### Continuous Integration\n\nThe project uses GitHub Actions for CI/CD:\n\n- **CI Workflow**: Runs on every push and pull request to the main branch\n  - Builds the project\n  - Runs type checks\n  - Tests against Node.js 18.x and 20.x\n\n- **Publish Workflow**: Automatically publishes to NPM when a new release is created\n  - Requires `NPM_TOKEN` secret to be set in repository settings\n\n## Contributing\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add some amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## Publishing\n\nTo publish a new version:\n\n1. Update version in `package.json`\n2. Create and push a new tag:\n```bash\ngit tag v0.0.1\ngit push origin v0.0.1\n```\n3. Create a new release on GitHub\n4. The publish workflow will automatically publish to NPM\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","readmeFilename":"README.md"}