{"_id":"@coretext-ai/coretect-google-a107dcc7-7237-41c8-935c-572295bdc13e","name":"@coretext-ai/coretect-google-a107dcc7-7237-41c8-935c-572295bdc13e","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@coretext-ai/coretect-google-a107dcc7-7237-41c8-935c-572295bdc13e","version":"1.0.0","description":"coretect google workspace server","type":"module","main":"dist/index.js","bin":{"coretect-google":"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-drive","google-calendar","google-contacts","google-gmail"],"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/coretect-google.git"},"_id":"@coretext-ai/coretect-google-a107dcc7-7237-41c8-935c-572295bdc13e@1.0.0","types":"./dist/index.d.ts","bugs":{"url":"https://github.com/coretext-ai/coretect-google/issues"},"homepage":"https://github.com/coretext-ai/coretect-google#readme","_integrity":"sha512-tdNcmX7IRxsS8WLtcv44k4aaLFK3nlQ+ks715+y2ezpUT04eQT5lIxd2mJXL+LJZusIKSdeHPVHAGtY4AllEKA==","_resolved":"/tmp/npm-publish-x0c0qR/@coretext-ai-coretect-google-a107dcc7-7237-41c8-935c-572295bdc13e-1.0.0.tgz","_from":"file:/tmp/npm-publish-x0c0qR/@coretext-ai-coretect-google-a107dcc7-7237-41c8-935c-572295bdc13e-1.0.0.tgz","_nodeVersion":"20.19.4","_npmVersion":"10.8.2","dist":{"integrity":"sha512-tdNcmX7IRxsS8WLtcv44k4aaLFK3nlQ+ks715+y2ezpUT04eQT5lIxd2mJXL+LJZusIKSdeHPVHAGtY4AllEKA==","shasum":"84c1cbbf996d1e07c4ec7a934d7ac946a4317083","tarball":"https://registry.npmjs.org/@coretext-ai/coretect-google-a107dcc7-7237-41c8-935c-572295bdc13e/-/coretect-google-a107dcc7-7237-41c8-935c-572295bdc13e-1.0.0.tgz","fileCount":66,"unpackedSize":1622719,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDIdZFqmJ3rgxsEDPRP52aEwp93QW8usT+DqH9X+9e3PAIgAdJGKj/4OrdVk+dHeTpOnlUTM64v09DBscxpZAr9WzU="}]},"_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/coretect-google-a107dcc7-7237-41c8-935c-572295bdc13e_1.0.0_1762276633634_0.3211704720569619"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-04T17:17:13.514Z","1.0.0":"2025-11-04T17:17:13.829Z","modified":"2025-11-04T17:17:14.202Z"},"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"}],"description":"coretect google workspace server","homepage":"https://github.com/coretext-ai/coretect-google#readme","keywords":["mcp","model-context-protocol","ai","server","google-drive","google-calendar","google-contacts","google-gmail"],"repository":{"type":"git","url":"git+https://github.com/coretext-ai/coretect-google.git"},"author":{"name":"Coretext AI","email":"npm@coretext.ai"},"bugs":{"url":"https://github.com/coretext-ai/coretect-google/issues"},"license":"MIT","readme":"# coretect-google\n\ncoretect 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### 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### 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### 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\n## Installation\n\n```bash\nnpm install @coretext-ai/coretect-google-a107dcc7-7237-41c8-935c-572295bdc13e\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    \"coretect-google\": {\n      \"command\": \"npx\",\n      \"args\": [\"@coretext-ai/coretect-google-a107dcc7-7237-41c8-935c-572295bdc13e\"],\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:15:57 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","_rev":"1-a4e67ace79789af352e5eac17abaf5bd"}