{"_id":"@coretext-ai/coretext-google-workspace-server-4bb0a611-ead6-4b7a-b55d-cdec40ddabdd","_rev":"2-95831d44f7fb33baa030bca85431e84e","name":"@coretext-ai/coretext-google-workspace-server-4bb0a611-ead6-4b7a-b55d-cdec40ddabdd","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@coretext-ai/coretext-google-workspace-server-4bb0a611-ead6-4b7a-b55d-cdec40ddabdd","version":"1.0.0","keywords":["mcp","model-context-protocol","ai","server","google-contacts","google-gmail","google-drive","google-calendar"],"author":{"name":"Coretext AI","email":"npm@coretext.ai"},"license":"MIT","_id":"@coretext-ai/coretext-google-workspace-server-4bb0a611-ead6-4b7a-b55d-cdec40ddabdd@1.0.0","maintainers":[{"name":"rugved-core","email":"rugved@coretextai.dev"},{"name":"ctxmitch","email":"mitchell@coretextai.dev"},{"name":"gerson-coretext","email":"gerson@coretextai.dev"},{"name":"dgomezcortextai","email":"daniel@coretextai.dev"}],"homepage":"https://github.com/coretext-ai/coretext-google-workspace-server#readme","bugs":{"url":"https://github.com/coretext-ai/coretext-google-workspace-server/issues"},"bin":{"coretext-google-workspace-server":"dist/index.js"},"dist":{"shasum":"7372430d994873f67968c0dd7fc5fe240864b4d3","tarball":"https://registry.npmjs.org/@coretext-ai/coretext-google-workspace-server-4bb0a611-ead6-4b7a-b55d-cdec40ddabdd/-/coretext-google-workspace-server-4bb0a611-ead6-4b7a-b55d-cdec40ddabdd-1.0.0.tgz","fileCount":66,"integrity":"sha512-tHCQZkIAGzgcDvtPOplfZbX85wx5f/FmgJORGVSW8PuZcY9E262Qd55i7QGtrTUztw9Fu2pIf6CA0uO3Inb6JA==","signatures":[{"sig":"MEUCIQCJpCcHnsnaxRtB4zh7pKziw9QKxHpTbm4/lQN7O1/ppAIgDparVTUyh/0/owGcDoYTL4346HSRt4bXU21ZrVvjYJs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1623259},"main":"dist/index.js","type":"module","_from":"file:/tmp/npm-publish-yGF9ax/@coretext-ai-coretext-google-workspace-server-4bb0a611-ead6-4b7a-b55d-cdec40ddabdd-1.0.0.tgz","types":"./dist/index.d.ts","scripts":{"dev":"tsx src/index.ts","lint":"eslint src/**/*.ts","test":"jest","build":"tsc","start":"node dist/index.js","watch":"tsx --watch src/index.ts"},"_npmUser":{"name":"ctxmitch","email":"mitchell@coretextai.dev"},"_resolved":"/tmp/npm-publish-yGF9ax/@coretext-ai-coretext-google-workspace-server-4bb0a611-ead6-4b7a-b55d-cdec40ddabdd-1.0.0.tgz","_integrity":"sha512-tHCQZkIAGzgcDvtPOplfZbX85wx5f/FmgJORGVSW8PuZcY9E262Qd55i7QGtrTUztw9Fu2pIf6CA0uO3Inb6JA==","repository":{"url":"git+https://github.com/coretext-ai/coretext-google-workspace-server.git","type":"git"},"_npmVersion":"10.8.2","description":"Coretext Google Workspace Server","directories":{},"_nodeVersion":"20.19.4","dependencies":{"axios":"^1.6.0","oauth":"latest","dotenv":"^16.3.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.5.0","eslint":"^8.42.0","typescript":"^5.9.3","@types/node":"^20.19.24","@typescript-eslint/parser":"^7.0.0","@typescript-eslint/eslint-plugin":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/coretext-google-workspace-server-4bb0a611-ead6-4b7a-b55d-cdec40ddabdd_1.0.0_1762271354448_0.5291701880656161","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@coretext-ai/coretext-google-workspace-server-4bb0a611-ead6-4b7a-b55d-cdec40ddabdd","version":"1.0.1","description":"Coretext Google Workspace Server","type":"module","main":"dist/index.js","bin":{"coretext-google-workspace-server":"dist/index.js"},"scripts":{"build":"tsc","dev":"tsx src/index.ts","start":"node dist/index.js","watch":"tsx --watch src/index.ts","test":"jest","lint":"eslint src/**/*.ts"},"keywords":["mcp","model-context-protocol","ai","server","google-gmail","google-contacts","google-drive","google-calendar"],"author":{"name":"Coretext AI","email":"npm@coretext.ai"},"license":"MIT","dependencies":{"@modelcontextprotocol/sdk":"latest","axios":"^1.6.0","dotenv":"^16.3.0","oauth":"latest"},"devDependencies":{"@types/node":"^20.19.24","@typescript-eslint/eslint-plugin":"^7.0.0","@typescript-eslint/parser":"^7.0.0","eslint":"^8.42.0","jest":"^29.5.0","tsx":"^4.0.0","typescript":"^5.9.3"},"repository":{"type":"git","url":"git+https://github.com/coretext-ai/coretext-google-workspace-server.git"},"_id":"@coretext-ai/coretext-google-workspace-server-4bb0a611-ead6-4b7a-b55d-cdec40ddabdd@1.0.1","types":"./dist/index.d.ts","bugs":{"url":"https://github.com/coretext-ai/coretext-google-workspace-server/issues"},"homepage":"https://github.com/coretext-ai/coretext-google-workspace-server#readme","_integrity":"sha512-/6p+UQdi8BNlLXHemmJshQW2MRVqtI2Bw2Jom/4yQX+8fZA0dwaufKT1sPzrpemhcZh2zAn3iRjkc5D2Q37jmQ==","_resolved":"/tmp/npm-publish-ixSxWw/@coretext-ai-coretext-google-workspace-server-4bb0a611-ead6-4b7a-b55d-cdec40ddabdd-1.0.1.tgz","_from":"file:/tmp/npm-publish-ixSxWw/@coretext-ai-coretext-google-workspace-server-4bb0a611-ead6-4b7a-b55d-cdec40ddabdd-1.0.1.tgz","_nodeVersion":"20.19.4","_npmVersion":"10.8.2","dist":{"integrity":"sha512-/6p+UQdi8BNlLXHemmJshQW2MRVqtI2Bw2Jom/4yQX+8fZA0dwaufKT1sPzrpemhcZh2zAn3iRjkc5D2Q37jmQ==","shasum":"d5020183869bca23461bf7db0165e8c9cc5eae04","tarball":"https://registry.npmjs.org/@coretext-ai/coretext-google-workspace-server-4bb0a611-ead6-4b7a-b55d-cdec40ddabdd/-/coretext-google-workspace-server-4bb0a611-ead6-4b7a-b55d-cdec40ddabdd-1.0.1.tgz","fileCount":66,"unpackedSize":1623259,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDz49NBfqUskGoLvvTnlxWL4LRO9cjlybxtAVpTo91IrAIhAM8OVXQqInrcH46YDjq8WuLMERjrn1lxvdpKd6E4j/7a"}]},"_npmUser":{"name":"ctxmitch","email":"mitchell@coretextai.dev"},"directories":{},"maintainers":[{"name":"rugved-core","email":"rugved@coretextai.dev"},{"name":"ctxmitch","email":"mitchell@coretextai.dev"},{"name":"gerson-coretext","email":"gerson@coretextai.dev"},{"name":"dgomezcortextai","email":"daniel@coretextai.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/coretext-google-workspace-server-4bb0a611-ead6-4b7a-b55d-cdec40ddabdd_1.0.1_1762275963657_0.7224619025673285"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-04T15:49:14.331Z","modified":"2025-11-04T17:06:04.149Z","1.0.0":"2025-11-04T15:49:14.615Z","1.0.1":"2025-11-04T17:06:03.883Z"},"bugs":{"url":"https://github.com/coretext-ai/coretext-google-workspace-server/issues"},"author":{"name":"Coretext AI","email":"npm@coretext.ai"},"license":"MIT","homepage":"https://github.com/coretext-ai/coretext-google-workspace-server#readme","keywords":["mcp","model-context-protocol","ai","server","google-gmail","google-contacts","google-drive","google-calendar"],"repository":{"type":"git","url":"git+https://github.com/coretext-ai/coretext-google-workspace-server.git"},"description":"Coretext Google Workspace Server","maintainers":[{"name":"rugved-core","email":"rugved@coretextai.dev"},{"name":"ctxmitch","email":"mitchell@coretextai.dev"},{"name":"gerson-coretext","email":"gerson@coretextai.dev"},{"name":"dgomezcortextai","email":"daniel@coretextai.dev"}],"readme":"# coretext-google-workspace-server\n\nCoretext Google Workspace Server\n\nThis MCP server was generated using the Template Orchestrator and includes the following integrations:\n\n## Available Tools\n\nThis MCP server provides 87 tools across 4 integrations:\n\n### GoogleGmail Tools\n- **google-gmail_get_draft**: Get a specific draft by ID\n- **google-gmail_get_label**: Get label details by ID\n- **google-gmail_get_thread**: Get a specific thread by ID\n- **google-gmail_send_draft**: Send an existing draft\n- **google-gmail_get_message**: Get a specific message by ID\n- **google-gmail_get_profile**: Get user&#x27;s Gmail profile information\n- **google-gmail_list_drafts**: List draft messages in user&#x27;s mailbox\n- **google-gmail_list_labels**: List all labels in the user&#x27;s mailbox\n- **google-gmail_create_draft**: Create a new draft message. IMPORTANT: Message must be an object with &#x27;raw&#x27; field containing base64url-encoded RFC 2822 formatted message.\n- **google-gmail_create_label**: Create a new custom label\n- **google-gmail_delete_draft**: Delete a draft. Returns 204 No Content with empty body on success.\n- **google-gmail_delete_label**: Delete a custom label. Returns 204 No Content with empty body on success.\n- **google-gmail_list_threads**: List email threads in user&#x27;s mailbox\n- **google-gmail_send_message**: Send an email message. Requires message in RFC 2822 format encoded as base64url string\n- **google-gmail_trash_thread**: Move an entire email thread/conversation to trash (RECOMMENDED for deleting conversations). This is the standard way users delete email threads - remains recoverable for 30 days.\n- **google-gmail_update_draft**: Update an existing draft. IMPORTANT: Message must be an object with &#x27;raw&#x27; field containing base64url-encoded RFC 2822 formatted message.\n- **google-gmail_update_label**: Update an existing label\n- **google-gmail_delete_thread**: PERMANENTLY delete an entire thread - IMMEDIATE and IRREVERSIBLE. WARNING: Use trash_thread instead for normal conversation deletion. Only use this for sensitive data that must be immediately destroyed. Bypasses trash completely. REQUIRES https://mail.google.com/ scope. Returns 204 No Content with empty body on success.\n- **google-gmail_list_messages**: List messages in user&#x27;s mailbox with optional filtering\n- **google-gmail_modify_thread**: Modify labels on all messages in a thread\n- **google-gmail_trash_message**: Move a message to trash (RECOMMENDED for deleting emails). This is the standard way users delete emails - messages remain recoverable for 30 days.\n- **google-gmail_delete_message**: PERMANENTLY delete a message - IMMEDIATE and IRREVERSIBLE. WARNING: Use trash_message instead for normal email deletion. Only use this for sensitive data that must be immediately destroyed. Bypasses trash completely. REQUIRES https://mail.google.com/ scope. Returns 204 No Content with empty body on success.\n- **google-gmail_modify_message**: Modify labels on a message (add/remove labels, mark read/unread)\n- **google-gmail_untrash_thread**: Remove a thread from trash\n- **google-gmail_untrash_message**: Remove a message from trash\n### GoogleContacts Tools\n- **google-contacts_get_person**: Get a specific contact by resource name\n- **google-contacts_create_contact**: Create a new contact with specified fields\n- **google-contacts_delete_contact**: Delete a contact permanently\n- **google-contacts_update_contact**: Update an existing contact. IMPORTANT: Include the &#x27;etag&#x27; field in the request body to prevent conflicts. Get the current etag by first calling get_contact or from a previous create/update response.\n- **google-contacts_search_contacts**: Search across all contacts with text query\n- **google-contacts_batch_get_people**: Get multiple contacts by resource names\n- **google-contacts_list_connections**: List authenticated user&#x27;s contacts\n- **google-contacts_get_contact_group**: Get a specific contact group by resource name\n- **google-contacts_copy_other_contact**: Copy an other contact to the authenticated user&#x27;s contacts\n- **google-contacts_list_contact_groups**: List all contact groups\n- **google-contacts_list_other_contacts**: List other contacts (auto-created contacts from interactions)\n- **google-contacts_create_contact_group**: Create a new contact group\n- **google-contacts_delete_contact_group**: Delete a contact group\n- **google-contacts_update_contact_group**: Update an existing contact group. IMPORTANT: Include the &#x27;etag&#x27; field in the contactGroup object to prevent conflicts. Get the current etag by first calling get_contact_group or from a previous create/update response.\n- **google-contacts_list_directory_people**: List people in the authenticated user&#x27;s domain directory (G Suite/Workspace). TROUBLESHOOTING: If returns empty results, verify: 1) User is part of Google Workspace domain, 2) Directory access is enabled, 3) User has sufficient privileges (may need domain admin), 4) OAuth scopes include directory.readonly\n- **google-contacts_search_other_contacts**: Search other contacts with text query\n- **google-contacts_search_directory_people**: Search people in the authenticated user&#x27;s domain directory. TROUBLESHOOTING: If returns empty results, verify: 1) User is part of Google Workspace domain, 2) Directory access is enabled, 3) User has sufficient privileges (may need domain admin), 4) OAuth scopes include directory.readonly\n- **google-contacts_modify_contact_group_members**: Add or remove members from a contact group\n### GoogleDrive Tools\n- **google-drive_get_file**: Get file metadata by ID\n- **google-drive_copy_file**: Create a copy of an existing file\n- **google-drive_move_file**: Move a file to different parent folders\n- **google-drive_list_files**: List files in Google Drive with optional search query and filtering\n- **google-drive_delete_file**: Permanently delete a file. Returns 204 No Content with empty body on success.\n- **google-drive_export_file**: Export Google Workspace document to specified format\n- **google-drive_get_comment**: Get a specific comment\n- **google-drive_update_file**: Update file metadata\n- **google-drive_search_files**: Advanced file search with complex query syntax\n- **google-drive_create_folder**: Create a new folder\n- **google-drive_download_file**: Download file content or export Google Workspace documents\n- **google-drive_list_comments**: List comments on a file\n- **google-drive_create_comment**: Create a comment on a file\n- **google-drive_delete_comment**: Delete a comment. Returns 204 No Content with empty body on success.\n- **google-drive_get_permission**: Get a specific permission for a file\n- **google-drive_update_comment**: Update a comment\n- **google-drive_get_folder_tree**: Get folder hierarchy and structure\n- **google-drive_list_permissions**: List permissions for a file or folder\n- **google-drive_create_permission**: Create a permission for a file or folder (sharing)\n- **google-drive_delete_permission**: Remove a permission from a file or folder. Returns 204 No Content with empty body on success.\n- **google-drive_get_file_revision**: Get a specific revision of a file\n- **google-drive_update_permission**: Update an existing permission\n- **google-drive_upload_file_simple**: Simple upload for files ≤5MB. Upload file content directly. NOTE: Simple uploads provide limited metadata control - use multipart upload for custom names/folders.\n- **google-drive_get_folder_contents**: List files and folders within a specific folder\n- **google-drive_list_file_revisions**: List revisions of a specific file\n- **google-drive_update_file_content**: Update file content using multipart upload\n- **google-drive_delete_file_revision**: Delete a specific revision of a file. Returns 204 No Content with empty body on success.\n- **google-drive_update_file_revision**: Update revision metadata (e.g., set keepForever)\n- **google-drive_upload_file_multipart**: Multipart upload for files with metadata. Combines metadata and content in single request with full metadata control.\n- **google-drive_upload_file_resumable**: Initiate resumable upload for large files with progress tracking\n### GoogleCalendar Tools\n- **google-calendar_list_acl**: Returns the rules in the access control list for the calendar\n- **google-calendar_get_event**: Returns an event\n- **google-calendar_quick_add**: Creates an event based on a simple text string\n- **google-calendar_create_acl**: Creates an access control rule\n- **google-calendar_list_events**: Returns events on the specified calendar\n- **google-calendar_create_event**: Creates an event\n- **google-calendar_delete_event**: Deletes an event. Returns 204 No Content with empty body on success.\n- **google-calendar_get_calendar**: Returns metadata for a calendar\n- **google-calendar_update_event**: Updates an event\n- **google-calendar_get_free_busy**: Returns free/busy information for a set of calendars\n- **google-calendar_list_calendars**: Returns the calendars on the user&#x27;s calendar list\n- **google-calendar_create_calendar**: Creates a secondary calendar\n- **google-calendar_delete_calendar**: Deletes a secondary calendar. Returns 204 No Content with empty body on success.\n- **google-calendar_update_calendar**: Updates metadata for a calendar\n\n## Installation\n\n```bash\nnpm install @coretext-ai/coretext-google-workspace-server-4bb0a611-ead6-4b7a-b55d-cdec40ddabdd\n```\n\n## Environment Setup\n\nCreate a `.env` file with the following variables:\n\n```env\nGOOGLE_OAUTH_CREDENTIALS=your_google_oauth_credentials_here\n```\n\n## Usage\n\n### Running the server\n\n```bash\n# Development mode\nnpm run dev\n\n# Production mode\nnpm run build && npm start\n```\n\n### Using with Claude Desktop\n\nAdd this to your Claude Desktop configuration:\n\n```json\n{\n  \"mcpServers\": {\n    \"coretext-google-workspace-server\": {\n      \"command\": \"npx\",\n      \"args\": [\"@coretext-ai/coretext-google-workspace-server-4bb0a611-ead6-4b7a-b55d-cdec40ddabdd\"],\n      \"env\": {\n        \"GOOGLE_OAUTH_CREDENTIALS\": \"your_google_oauth_credentials_here\"\n      }\n    }\n  }\n}\n```\n\n## Instructions for Fetching API Keys/Tokens\n- **COMING SOON**\n\n## Advanced Features\n\n### Request Cancellation\n\nThis MCP server supports request cancellation according to the [MCP cancellation specification](https://modelcontextprotocol.io/specification/2025-06-18/basic/utilities/cancellation). Clients can cancel in-progress requests by sending a `notifications/cancelled` message with the request ID.\n\nWhen a request is cancelled:\n- The server immediately stops processing the request\n- Any ongoing API calls are aborted\n- Resources are cleaned up\n- No response is sent for the cancelled request\n\n### Progress Notifications\n\nThe server supports progress notifications for long-running operations according to the [MCP progress specification](https://modelcontextprotocol.io/specification/2025-06-18/basic/utilities/progress). \n\nTo receive progress updates:\n1. Include a `progressToken` in your request metadata\n2. The server will send `notifications/progress` messages with:\n   - Current progress value\n   - Total value (when known)\n   - Human-readable status messages\n\nProgress is reported for:\n- Multi-step operations\n- Batch processing\n- Long-running API calls\n- File uploads/downloads\n\nExample progress notification:\n```json\n{\n  \"method\": \"notifications/progress\",\n  \"params\": {\n    \"progressToken\": \"operation-123\",\n    \"progress\": 45,\n    \"total\": 100,\n    \"message\": \"Processing item 45 of 100...\"\n  }\n}\n```\n\n## Generated Information\n\n- **Generated at**: Tue Nov 04 2025 17:04:58 GMT+0000 (Coordinated Universal Time)\n- **Orchestrator version**: 0.0.2\n- **Template repository**: Coretext-AI-Dev/server-template-v2\n- **Total endpoints**: 87\n","readmeFilename":"README.md"}