bn-google-workspace-mcp-server 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +718 -0
- package/dist/debug-middleware.d.ts +12 -0
- package/dist/debug-middleware.d.ts.map +1 -0
- package/dist/debug-middleware.js +36 -0
- package/dist/debug-middleware.js.map +1 -0
- package/dist/google-api-client.d.ts +46 -0
- package/dist/google-api-client.d.ts.map +1 -0
- package/dist/google-api-client.js +76 -0
- package/dist/google-api-client.js.map +1 -0
- package/dist/helpers.d.ts +40 -0
- package/dist/helpers.d.ts.map +1 -0
- package/dist/helpers.js +171 -0
- package/dist/helpers.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +166 -0
- package/dist/index.js.map +1 -0
- package/dist/schemas.d.ts +303 -0
- package/dist/schemas.d.ts.map +1 -0
- package/dist/schemas.js +611 -0
- package/dist/schemas.js.map +1 -0
- package/dist/tool-loader.d.ts +35 -0
- package/dist/tool-loader.d.ts.map +1 -0
- package/dist/tool-loader.js +121 -0
- package/dist/tool-loader.js.map +1 -0
- package/dist/tool-registry.d.ts +44 -0
- package/dist/tool-registry.d.ts.map +1 -0
- package/dist/tool-registry.js +56 -0
- package/dist/tool-registry.js.map +1 -0
- package/dist/tools/calendar.d.ts +44 -0
- package/dist/tools/calendar.d.ts.map +1 -0
- package/dist/tools/calendar.js +76 -0
- package/dist/tools/calendar.js.map +1 -0
- package/dist/tools/chat.d.ts +29 -0
- package/dist/tools/chat.d.ts.map +1 -0
- package/dist/tools/chat.js +42 -0
- package/dist/tools/chat.js.map +1 -0
- package/dist/tools/docs.d.ts +29 -0
- package/dist/tools/docs.d.ts.map +1 -0
- package/dist/tools/docs.js +63 -0
- package/dist/tools/docs.js.map +1 -0
- package/dist/tools/drive.d.ts +45 -0
- package/dist/tools/drive.d.ts.map +1 -0
- package/dist/tools/drive.js +135 -0
- package/dist/tools/drive.js.map +1 -0
- package/dist/tools/forms.d.ts +30 -0
- package/dist/tools/forms.d.ts.map +1 -0
- package/dist/tools/forms.js +46 -0
- package/dist/tools/forms.js.map +1 -0
- package/dist/tools/gmail.d.ts +55 -0
- package/dist/tools/gmail.d.ts.map +1 -0
- package/dist/tools/gmail.js +112 -0
- package/dist/tools/gmail.js.map +1 -0
- package/dist/tools/index.d.ts +13 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +22 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/sheets.d.ts +40 -0
- package/dist/tools/sheets.d.ts.map +1 -0
- package/dist/tools/sheets.js +64 -0
- package/dist/tools/sheets.js.map +1 -0
- package/dist/tools/slides.d.ts +32 -0
- package/dist/tools/slides.d.ts.map +1 -0
- package/dist/tools/slides.js +46 -0
- package/dist/tools/slides.js.map +1 -0
- package/dist/tools/tasks.d.ts +43 -0
- package/dist/tools/tasks.d.ts.map +1 -0
- package/dist/tools/tasks.js +69 -0
- package/dist/tools/tasks.js.map +1 -0
- package/dist/types.d.ts +110 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +54 -0
- package/tools.json +379 -0
package/tools.json
ADDED
|
@@ -0,0 +1,379 @@
|
|
|
1
|
+
{
|
|
2
|
+
"gmail_list_labels": {
|
|
3
|
+
"name": "gmail_list_labels",
|
|
4
|
+
"description": "List all Gmail labels in the user's mailbox. Use this tool to discover available labels before filtering emails by label. Returns both system labels (INBOX, SENT, DRAFT, SPAM, TRASH, STARRED, IMPORTANT, CATEGORY_PERSONAL, CATEGORY_SOCIAL, CATEGORY_PROMOTIONS, CATEGORY_UPDATES, CATEGORY_FORUMS) and custom user-created labels. The returned label IDs can be used with gmail_search_messages using the 'label:' operator.",
|
|
5
|
+
"inputSchema": {
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {}
|
|
8
|
+
}
|
|
9
|
+
},
|
|
10
|
+
"gmail_search_messages": {
|
|
11
|
+
"name": "gmail_search_messages",
|
|
12
|
+
"description": "Search Gmail messages using Gmail's powerful search operators. Returns message IDs, subjects, senders, and snippets for matching emails. Supports complex queries with operators for sender (from:), recipient (to:), subject, labels, date ranges, attachments, read status, and more. Use this tool to find emails, then use gmail_get_message_content to read full message details.",
|
|
13
|
+
"inputSchema": {
|
|
14
|
+
"type": "object",
|
|
15
|
+
"properties": {
|
|
16
|
+
"query": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"description": "Gmail search query using Gmail's powerful search operators. Leave empty to list recent messages.\n\nSEARCH OPERATORS (combine multiple with spaces for AND logic, use OR for alternatives):\n\n**Sender/Recipient:**\n- from:sender@example.com - Messages from specific sender\n- to:recipient@example.com - Messages sent to specific recipient\n- cc:user@example.com - Messages where user is CC'd\n- bcc:user@example.com - Messages where user is BCC'd\n- deliveredto:me@example.com - Delivered to specific address\n\n**Labels & Categories:**\n- label:INBOX - Messages in inbox\n- label:SENT - Sent messages\n- label:STARRED - Starred messages\n- label:IMPORTANT - Important messages\n- label:custom-label - Messages with custom label (use exact label name)\n- category:primary - Primary inbox category\n- category:social - Social category\n- category:promotions - Promotions category\n- category:updates - Updates category\n- category:forums - Forums category\n- in:anywhere - Search all mail including spam and trash\n\n**Status:**\n- is:unread - Unread messages\n- is:read - Read messages\n- is:starred - Starred messages\n- is:important - Marked important\n- is:snoozed - Snoozed messages\n\n**Attachments:**\n- has:attachment - Has any attachment\n- has:drive - Has Google Drive attachment\n- has:document - Has Google Docs attachment\n- has:spreadsheet - Has Google Sheets attachment\n- has:presentation - Has Google Slides attachment\n- has:youtube - Has YouTube video\n- filename:pdf - Has attachment with specific extension\n- filename:report.xlsx - Has attachment with specific filename\n\n**Content:**\n- subject:meeting - Word in subject line\n- \"exact phrase\" - Exact phrase match (use quotes)\n- word1 word2 - Both words anywhere in message (AND)\n- word1 OR word2 - Either word (must use uppercase OR)\n- -word - Exclude messages containing word\n- +word - Exact word match (no synonyms)\n\n**Size:**\n- larger:10M - Larger than 10 megabytes\n- smaller:1M - Smaller than 1 megabyte\n- size:5M - Approximately 5 megabytes\n\n**Dates:**\n- after:2024/01/15 - Messages after date (YYYY/MM/DD)\n- before:2024/12/31 - Messages before date\n- older_than:7d - Older than 7 days\n- newer_than:3d - Newer than 3 days\n- older_than:1m - Older than 1 month\n- older_than:1y - Older than 1 year\n\n**Thread:**\n- in:inbox - In inbox (not archived)\n- in:trash - In trash\n- in:spam - In spam folder\n- in:sent - In sent folder\n- in:draft - Draft messages\n- in:chats - Chat messages\n\n**EXAMPLE QUERIES:**\n- \"from:boss@company.com is:unread\" - Unread emails from boss\n- \"has:attachment filename:pdf after:2024/01/01\" - PDFs received this year\n- \"subject:invoice from:accounting@company.com\" - Invoices from accounting\n- \"is:starred label:important\" - Starred and important messages\n- \"larger:5M has:attachment\" - Large attachments\n- \"from:@amazon.com subject:order\" - Amazon order confirmations\n- \"to:me -category:promotions newer_than:7d\" - Recent non-promotional emails to me"
|
|
19
|
+
},
|
|
20
|
+
"maxResults": {
|
|
21
|
+
"type": "number",
|
|
22
|
+
"description": "Maximum number of messages to return (1-500, default: 10). Note: For performance, only the first 5 messages include detailed headers (subject, from, snippet). For full message content including body text, use gmail_get_message_content with the returned message ID."
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"gmail_get_message_content": {
|
|
28
|
+
"name": "gmail_get_message_content",
|
|
29
|
+
"description": "Get the complete content of a specific Gmail message including full headers (Subject, From, To, Date, CC, BCC), body text, thread ID, and all metadata. Use this after gmail_search_messages to read the full content of messages you've found.",
|
|
30
|
+
"inputSchema": {
|
|
31
|
+
"type": "object",
|
|
32
|
+
"properties": {
|
|
33
|
+
"messageId": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"description": "The unique Gmail message ID (alphanumeric string like '18d4a2b3c4d5e6f7'). IMPORTANT: First use gmail_search_messages to find messages and obtain their IDs. This tool returns the complete message including: full headers (Subject, From, To, Date, CC, BCC), complete body content (plain text extracted from the message), thread ID for related messages, and all metadata."
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"required": ["messageId"]
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"gmail_send_message": {
|
|
42
|
+
"name": "gmail_send_message",
|
|
43
|
+
"description": "Send a plain text email via Gmail. Creates and sends an email to the specified recipient with the given subject and body. The sent message will appear in the user's Sent folder.",
|
|
44
|
+
"inputSchema": {
|
|
45
|
+
"type": "object",
|
|
46
|
+
"properties": {
|
|
47
|
+
"to": {
|
|
48
|
+
"type": "string",
|
|
49
|
+
"description": "Recipient email address in standard format. Examples: 'user@example.com' for single recipient. For multiple recipients, send separate messages or use comma-separated addresses."
|
|
50
|
+
},
|
|
51
|
+
"subject": {
|
|
52
|
+
"type": "string",
|
|
53
|
+
"description": "Email subject line. Plain text only (no HTML tags). Best practices: Keep under 60 characters for full visibility in email clients. Avoid spam trigger words in all caps. Be specific and descriptive."
|
|
54
|
+
},
|
|
55
|
+
"body": {
|
|
56
|
+
"type": "string",
|
|
57
|
+
"description": "Email body content in plain text format. Line breaks are preserved. For basic formatting, use plain text conventions: *asterisks* for emphasis, - or * for bullet points, numbered lists with 1. 2. 3., and clear paragraph breaks with double newlines. HTML is not supported in this version."
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
"required": ["to", "subject", "body"]
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
"drive_list_files": {
|
|
64
|
+
"name": "drive_list_files",
|
|
65
|
+
"description": "Search and list files in Google Drive. Supports powerful query syntax to filter by name, file type (mimeType), content, location, owner, modification date, and more. Returns file IDs, names, MIME types, modification times, sizes, and web links. Use this to find files before reading them with other tools.",
|
|
66
|
+
"inputSchema": {
|
|
67
|
+
"type": "object",
|
|
68
|
+
"properties": {
|
|
69
|
+
"query": {
|
|
70
|
+
"type": "string",
|
|
71
|
+
"description": "Google Drive search query to filter files. Leave empty to list all recent files.\n\nSEARCH SYNTAX (Google Drive Query Language):\n\n**By Name:**\n- name contains 'budget' - Files with 'budget' in name\n- name = 'Quarterly Report' - Exact file name match\n- fullText contains 'deadline' - Search file contents (Google Docs, Sheets, Slides, PDFs)\n\n**By File Type (mimeType):**\n- mimeType = 'application/vnd.google-apps.document' - Google Docs\n- mimeType = 'application/vnd.google-apps.spreadsheet' - Google Sheets\n- mimeType = 'application/vnd.google-apps.presentation' - Google Slides\n- mimeType = 'application/vnd.google-apps.folder' - Folders\n- mimeType = 'application/pdf' - PDF files\n- mimeType contains 'image/' - All image files\n- mimeType contains 'video/' - All video files\n- mimeType = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' - Word docs (.docx)\n- mimeType = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' - Excel files (.xlsx)\n\n**By Location:**\n- 'FOLDER_ID' in parents - Files in specific folder (get folder ID from URL or previous search)\n- 'root' in parents - Files in My Drive root\n- sharedWithMe = true - Files shared with me\n- not 'FOLDER_ID' in parents - Files NOT in specific folder\n\n**By Owner/Sharing:**\n- 'user@example.com' in owners - Files owned by specific user\n- 'user@example.com' in writers - Files user can edit\n- 'user@example.com' in readers - Files user can view\n\n**By Date:**\n- modifiedTime > '2024-01-01T00:00:00' - Modified after date (RFC 3339)\n- createdTime > '2024-06-01T00:00:00' - Created after date\n- viewedByMeTime > '2024-01-01T00:00:00' - Viewed by me after date\n- modifiedTime >= '2024-01-01' and modifiedTime < '2024-02-01' - Modified in date range\n\n**By Status:**\n- starred = true - Starred files\n- trashed = true - Files in trash\n- trashed = false - Files not in trash (default behavior)\n\n**Combining Conditions:**\n- Use 'and' to combine: name contains 'report' and mimeType = 'application/vnd.google-apps.document'\n- Use 'or' for alternatives: mimeType = 'application/pdf' or mimeType contains 'image/'\n- Use 'not' for negation: not mimeType = 'application/vnd.google-apps.folder'\n\n**EXAMPLE QUERIES:**\n- \"name contains 'Q4' and mimeType = 'application/vnd.google-apps.spreadsheet'\" - Q4 spreadsheets\n- \"fullText contains 'project deadline'\" - Files mentioning project deadline\n- \"modifiedTime > '2024-12-01T00:00:00' and mimeType = 'application/vnd.google-apps.document'\" - Recent Google Docs\n- \"sharedWithMe = true and mimeType contains 'image/'\" - Images shared with me\n- \"starred = true\" - All starred files\n- \"'root' in parents and mimeType = 'application/vnd.google-apps.folder'\" - Folders in My Drive root\n\n**SIMPLE SEARCH (if you don't need query syntax):**\nJust enter a search term like 'budget' and it will be automatically converted to: name contains 'budget'"
|
|
72
|
+
},
|
|
73
|
+
"maxResults": {
|
|
74
|
+
"type": "number",
|
|
75
|
+
"description": "Maximum number of files to return (1-1000, default: 10). Results are sorted by most recently modified. Returns file ID, name, MIME type, modification time, size, and web view link for each file."
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
"drive_get_file_content": {
|
|
81
|
+
"name": "drive_get_file_content",
|
|
82
|
+
"description": "Get the content of a Google Drive file. Works with text-based files (.txt, .md, .csv, .json, etc.), Google Docs (exported as plain text), and PDFs (text extraction). For Google Sheets, Slides, or Docs with formatting, use the specific tools (sheets_read_values, slides_get_presentation, docs_get_document).",
|
|
83
|
+
"inputSchema": {
|
|
84
|
+
"type": "object",
|
|
85
|
+
"properties": {
|
|
86
|
+
"fileId": {
|
|
87
|
+
"type": "string",
|
|
88
|
+
"description": "The unique Google Drive file ID. How to obtain:\n\n1. **From drive_list_files**: Search for files and use the returned 'id' field\n2. **From URL**: Extract from the file URL pattern:\n - Google Docs: docs.google.com/document/d/{fileId}/edit\n - Google Sheets: docs.google.com/spreadsheets/d/{fileId}/edit\n - Google Slides: docs.google.com/presentation/d/{fileId}/edit\n - Google Drive: drive.google.com/file/d/{fileId}/view\n\n**Supported file types for content reading:**\n- Text files (.txt, .md, .csv, .json, .xml, .html, .css, .js, etc.)\n- Google Docs (exported as plain text)\n- PDF files (text extraction)\n\n**Not directly readable** (use specific tools instead):\n- Google Sheets → Use sheets_read_values tool\n- Google Slides → Use slides_get_presentation tool\n- Google Docs → Use docs_get_document tool for better formatting\n- Binary files (images, videos, archives)"
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
"required": ["fileId"]
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
"drive_create_file": {
|
|
95
|
+
"name": "drive_create_file",
|
|
96
|
+
"description": "Create a new text file in Google Drive with the specified name and content. The file is created as plain text. For structured data, format the content appropriately (CSV, JSON, Markdown). Optionally specify a parent folder.",
|
|
97
|
+
"inputSchema": {
|
|
98
|
+
"type": "object",
|
|
99
|
+
"properties": {
|
|
100
|
+
"name": {
|
|
101
|
+
"type": "string",
|
|
102
|
+
"description": "Filename including extension. Examples: 'meeting-notes.txt', 'report.md', 'data.csv', 'config.json'. The extension determines how the file is handled. Avoid special characters: < > : \" / \\ | ? * as they may cause issues."
|
|
103
|
+
},
|
|
104
|
+
"content": {
|
|
105
|
+
"type": "string",
|
|
106
|
+
"description": "Text content for the file. The file is created as plain text (MIME type: text/plain). For structured data, format appropriately: use CSV format for tabular data, JSON for structured objects, Markdown for formatted documents."
|
|
107
|
+
},
|
|
108
|
+
"parentFolderId": {
|
|
109
|
+
"type": "string",
|
|
110
|
+
"description": "Google Drive folder ID where the file should be created. If omitted, file is created in 'My Drive' root. To get folder ID: use drive_list_files with query \"mimeType = 'application/vnd.google-apps.folder'\" or extract from folder URL: drive.google.com/drive/folders/{folderId}"
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
"required": ["name", "content"]
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
"calendar_list_events": {
|
|
117
|
+
"name": "calendar_list_events",
|
|
118
|
+
"description": "List upcoming events from a Google Calendar. Returns event IDs, titles, start/end times, descriptions, and attendees, sorted chronologically by start time. Only returns future events from the current moment. Use calendar_list_calendars first to discover available calendars.",
|
|
119
|
+
"inputSchema": {
|
|
120
|
+
"type": "object",
|
|
121
|
+
"properties": {
|
|
122
|
+
"maxResults": {
|
|
123
|
+
"type": "number",
|
|
124
|
+
"description": "Maximum number of upcoming events to return (1-2500, default: 10). Events are sorted chronologically by start time. Only future events from the current moment are returned. For past events, you would need to specify a timeMin parameter (not yet supported in this version)."
|
|
125
|
+
},
|
|
126
|
+
"calendarId": {
|
|
127
|
+
"type": "string",
|
|
128
|
+
"description": "Calendar to list events from. Options:\n\n- 'primary' (default) - User's main/default calendar\n- Specific calendar ID - Use the ID returned from calendar_list_calendars\n\n**Common calendar IDs:**\n- primary - User's primary calendar\n- user@example.com - Calendar for specific Google account\n- calendar_id@group.calendar.google.com - Shared/secondary calendars\n- addressbook#contacts@group.v.calendar.google.com - Contacts' birthdays\n- en.usa#holiday@group.v.calendar.google.com - US Holidays\n\nFirst use calendar_list_calendars to discover available calendars and their IDs."
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
},
|
|
133
|
+
"calendar_list_calendars": {
|
|
134
|
+
"name": "calendar_list_calendars",
|
|
135
|
+
"description": "List all Google Calendars accessible to the user. Returns calendar ID, name, description, time zone, and whether it's the primary calendar. Use this to discover: user's own calendars, shared team calendars, subscribed calendars (holidays, sports, etc.), and resource calendars (meeting rooms). The returned calendar IDs can be used with calendar_list_events and calendar_create_event.",
|
|
136
|
+
"inputSchema": {
|
|
137
|
+
"type": "object",
|
|
138
|
+
"properties": {}
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
"calendar_create_event": {
|
|
142
|
+
"name": "calendar_create_event",
|
|
143
|
+
"description": "Create a new event in Google Calendar. Supports both timed events (with specific start/end times) and all-day events (date only). Returns the created event ID and direct link to the event.",
|
|
144
|
+
"inputSchema": {
|
|
145
|
+
"type": "object",
|
|
146
|
+
"properties": {
|
|
147
|
+
"summary": {
|
|
148
|
+
"type": "string",
|
|
149
|
+
"description": "Event title displayed on the calendar. Best practices: Be descriptive but concise (e.g., 'Q4 Planning Meeting' not just 'Meeting'). Include key context like project name or team if relevant."
|
|
150
|
+
},
|
|
151
|
+
"startTime": {
|
|
152
|
+
"type": "string",
|
|
153
|
+
"description": "Event start time. Two formats supported:\n\n**For timed events (specific time):**\nISO 8601 format with timezone offset or UTC:\n- '2024-12-25T09:00:00-05:00' (with timezone offset, EST)\n- '2024-12-25T14:00:00Z' (UTC)\n- '2024-12-25T09:00:00+01:00' (with timezone offset, CET)\n\n**For all-day events:**\nDate only format:\n- '2024-12-25' (starts at midnight in calendar's timezone)\n\n**Timezone offset reference:**\n- UTC/GMT: +00:00 or Z\n- US Eastern: -05:00 (EST) or -04:00 (EDT)\n- US Central: -06:00 (CST) or -05:00 (CDT)\n- US Pacific: -08:00 (PST) or -07:00 (PDT)\n- Europe Central: +01:00 (CET) or +02:00 (CEST)\n- Asia Tokyo: +09:00 (JST)"
|
|
154
|
+
},
|
|
155
|
+
"endTime": {
|
|
156
|
+
"type": "string",
|
|
157
|
+
"description": "Event end time. Must be after startTime and use the same format:\n\n**For timed events:** ISO 8601 format matching startTime's format\n- Example: '2024-12-25T10:00:00-05:00' (1-hour meeting)\n\n**For all-day events:** Date format (YYYY-MM-DD)\n- IMPORTANT: The end date is exclusive. For a single all-day event on Dec 25th, use:\n startTime: '2024-12-25', endTime: '2024-12-26'\n- For a 3-day event (Dec 25-27):\n startTime: '2024-12-25', endTime: '2024-12-28'"
|
|
158
|
+
},
|
|
159
|
+
"description": {
|
|
160
|
+
"type": "string",
|
|
161
|
+
"description": "Event description/notes. Appears in the event details when opened. Plain text format. Good for: meeting agenda, dial-in information, links to documents, preparation notes, or any additional context attendees need."
|
|
162
|
+
},
|
|
163
|
+
"calendarId": {
|
|
164
|
+
"type": "string",
|
|
165
|
+
"description": "Calendar to create the event in. Default: 'primary' (user's main calendar). Use calendar_list_calendars to find other calendar IDs for shared or secondary calendars."
|
|
166
|
+
}
|
|
167
|
+
},
|
|
168
|
+
"required": ["summary", "startTime", "endTime"]
|
|
169
|
+
}
|
|
170
|
+
},
|
|
171
|
+
"docs_get_document": {
|
|
172
|
+
"name": "docs_get_document",
|
|
173
|
+
"description": "Get the content of a Google Docs document. Returns the document title and full text content extracted from all paragraphs. Note: Complex formatting (tables, images, drawings) may not be fully represented in the extracted text.",
|
|
174
|
+
"inputSchema": {
|
|
175
|
+
"type": "object",
|
|
176
|
+
"properties": {
|
|
177
|
+
"documentId": {
|
|
178
|
+
"type": "string",
|
|
179
|
+
"description": "The unique Google Docs document ID. How to obtain:\n\n1. **From drive_list_files**: Search for Google Docs using query \"mimeType = 'application/vnd.google-apps.document'\" and use the returned file ID\n2. **From document URL**: Extract the ID from the URL pattern:\n docs.google.com/document/d/{documentId}/edit\n\n**Example URL:** docs.google.com/document/d/1AbCdEfGhIjKlMnOpQrStUvWxYz/edit\n**Document ID:** 1AbCdEfGhIjKlMnOpQrStUvWxYz\n\nReturns: Document title and full text content extracted from all paragraphs. Note: Complex formatting (tables, images, drawings) may not be fully represented in the extracted text."
|
|
180
|
+
}
|
|
181
|
+
},
|
|
182
|
+
"required": ["documentId"]
|
|
183
|
+
}
|
|
184
|
+
},
|
|
185
|
+
"docs_create_document": {
|
|
186
|
+
"name": "docs_create_document",
|
|
187
|
+
"description": "Create a new Google Docs document with optional initial text content. Returns the document ID, title, and revision ID. The document is created in the user's Google Drive root.",
|
|
188
|
+
"inputSchema": {
|
|
189
|
+
"type": "object",
|
|
190
|
+
"properties": {
|
|
191
|
+
"title": {
|
|
192
|
+
"type": "string",
|
|
193
|
+
"description": "Title for the new Google Doc. This becomes the document name in Google Drive and appears at the top of the document. Choose a descriptive name for easy discovery later."
|
|
194
|
+
},
|
|
195
|
+
"content": {
|
|
196
|
+
"type": "string",
|
|
197
|
+
"description": "Initial text content to add to the document. Plain text format - the content is inserted at the beginning of the document. If omitted, creates an empty document. For complex formatting, create the document first, then use Google Docs directly to format."
|
|
198
|
+
}
|
|
199
|
+
},
|
|
200
|
+
"required": ["title"]
|
|
201
|
+
}
|
|
202
|
+
},
|
|
203
|
+
"sheets_get_spreadsheet": {
|
|
204
|
+
"name": "sheets_get_spreadsheet",
|
|
205
|
+
"description": "Get metadata about a Google Sheets spreadsheet including the title and a list of all sheets (tabs) with their IDs and names. Use this to discover sheet names before reading data with sheets_read_values.",
|
|
206
|
+
"inputSchema": {
|
|
207
|
+
"type": "object",
|
|
208
|
+
"properties": {
|
|
209
|
+
"spreadsheetId": {
|
|
210
|
+
"type": "string",
|
|
211
|
+
"description": "The unique Google Sheets spreadsheet ID. How to obtain:\n\n1. **From drive_list_files**: Search using query \"mimeType = 'application/vnd.google-apps.spreadsheet'\" and use the returned file ID\n2. **From spreadsheet URL**: Extract from the URL pattern:\n docs.google.com/spreadsheets/d/{spreadsheetId}/edit\n\n**Example URL:** docs.google.com/spreadsheets/d/1AbCdEfGhIjKlMnOpQrStUvWxYz/edit#gid=0\n**Spreadsheet ID:** 1AbCdEfGhIjKlMnOpQrStUvWxYz\n\nReturns: Spreadsheet title and list of all sheets (tabs) with their sheet IDs and names. Use sheet names with sheets_read_values to read data from specific sheets."
|
|
212
|
+
}
|
|
213
|
+
},
|
|
214
|
+
"required": ["spreadsheetId"]
|
|
215
|
+
}
|
|
216
|
+
},
|
|
217
|
+
"sheets_read_values": {
|
|
218
|
+
"name": "sheets_read_values",
|
|
219
|
+
"description": "Read cell values from a specific range in a Google Sheets spreadsheet. Returns data as a 2D array of values (rows × columns). Use sheets_get_spreadsheet first to discover available sheet names.",
|
|
220
|
+
"inputSchema": {
|
|
221
|
+
"type": "object",
|
|
222
|
+
"properties": {
|
|
223
|
+
"spreadsheetId": {
|
|
224
|
+
"type": "string",
|
|
225
|
+
"description": "The spreadsheet ID (see sheets_get_spreadsheet for how to obtain). Required to identify which spreadsheet to read from."
|
|
226
|
+
},
|
|
227
|
+
"range": {
|
|
228
|
+
"type": "string",
|
|
229
|
+
"description": "Cell range to read in A1 notation. Returns values as a 2D array (rows × columns).\n\n**A1 NOTATION SYNTAX:**\n\n**Basic ranges:**\n- 'A1' - Single cell A1\n- 'A1:C3' - Rectangle from A1 to C3 (3 rows × 3 columns)\n- 'A:A' - Entire column A\n- '1:1' - Entire row 1\n- 'A:C' - Columns A through C\n- '1:5' - Rows 1 through 5\n\n**With sheet name (required for multi-sheet spreadsheets):**\n- 'Sheet1!A1:C10' - Range in sheet named \"Sheet1\"\n- 'Sales Data!A:B' - Columns A-B in sheet named \"Sales Data\"\n- \"'Sheet Name With Spaces'!A1:B5\" - Use quotes for sheet names with spaces\n\n**Open-ended ranges:**\n- 'A1:A' - Column A starting from row 1 to end of data\n- 'A1:1' - Row 1 starting from column A to end of data\n- 'Sheet1!A:A' - Entire column A in Sheet1\n\n**EXAMPLE SCENARIOS:**\n- Read headers: 'Sheet1!1:1' (first row)\n- Read first column: 'Sheet1!A:A'\n- Read data table: 'Sheet1!A1:D100' (adjust range to your data)\n- Read all data: 'Sheet1!A:Z' (reads columns A-Z with data)\n\n**TIPS:**\n- First use sheets_get_spreadsheet to see available sheet names\n- Start with a larger range than needed - empty cells return empty strings\n- Row 1 typically contains headers in most spreadsheets"
|
|
230
|
+
}
|
|
231
|
+
},
|
|
232
|
+
"required": ["spreadsheetId", "range"]
|
|
233
|
+
}
|
|
234
|
+
},
|
|
235
|
+
"sheets_create_spreadsheet": {
|
|
236
|
+
"name": "sheets_create_spreadsheet",
|
|
237
|
+
"description": "Create a new Google Sheets spreadsheet. Creates an empty spreadsheet with one sheet named 'Sheet1'. Returns the spreadsheet ID and URL for accessing the new spreadsheet.",
|
|
238
|
+
"inputSchema": {
|
|
239
|
+
"type": "object",
|
|
240
|
+
"properties": {
|
|
241
|
+
"title": {
|
|
242
|
+
"type": "string",
|
|
243
|
+
"description": "Title for the new spreadsheet. This becomes the filename in Google Drive. The spreadsheet is created with one empty sheet named 'Sheet1'. After creation, use the Google Sheets UI or API to add data and additional sheets."
|
|
244
|
+
}
|
|
245
|
+
},
|
|
246
|
+
"required": ["title"]
|
|
247
|
+
}
|
|
248
|
+
},
|
|
249
|
+
"slides_get_presentation": {
|
|
250
|
+
"name": "slides_get_presentation",
|
|
251
|
+
"description": "Get metadata about a Google Slides presentation including the title, slide count, and list of slides with their object IDs. Note: Full slide content (text, images, shapes) requires additional API calls not yet implemented in this version.",
|
|
252
|
+
"inputSchema": {
|
|
253
|
+
"type": "object",
|
|
254
|
+
"properties": {
|
|
255
|
+
"presentationId": {
|
|
256
|
+
"type": "string",
|
|
257
|
+
"description": "The unique Google Slides presentation ID. How to obtain:\n\n1. **From drive_list_files**: Search using query \"mimeType = 'application/vnd.google-apps.presentation'\" and use the returned file ID\n2. **From presentation URL**: Extract from the URL pattern:\n docs.google.com/presentation/d/{presentationId}/edit\n\n**Example URL:** docs.google.com/presentation/d/1AbCdEfGhIjKlMnOpQrStUvWxYz/edit\n**Presentation ID:** 1AbCdEfGhIjKlMnOpQrStUvWxYz\n\nReturns: Presentation title, slide count, and list of slides with their object IDs and layout references. Note: Full slide content (text, images, shapes) requires additional API calls not yet implemented in this version."
|
|
258
|
+
}
|
|
259
|
+
},
|
|
260
|
+
"required": ["presentationId"]
|
|
261
|
+
}
|
|
262
|
+
},
|
|
263
|
+
"slides_create_presentation": {
|
|
264
|
+
"name": "slides_create_presentation",
|
|
265
|
+
"description": "Create a new Google Slides presentation. Creates a blank presentation with a single blank slide. Returns the presentation ID, title, and revision ID.",
|
|
266
|
+
"inputSchema": {
|
|
267
|
+
"type": "object",
|
|
268
|
+
"properties": {
|
|
269
|
+
"title": {
|
|
270
|
+
"type": "string",
|
|
271
|
+
"description": "Title for the new presentation. This becomes the filename in Google Drive and the presentation title. Creates a blank presentation with a single blank slide. Use the Google Slides UI to add content and additional slides."
|
|
272
|
+
}
|
|
273
|
+
},
|
|
274
|
+
"required": ["title"]
|
|
275
|
+
}
|
|
276
|
+
},
|
|
277
|
+
"tasks_list_task_lists": {
|
|
278
|
+
"name": "tasks_list_task_lists",
|
|
279
|
+
"description": "List all Google Tasks task lists for the user. Every Google account has at least one task list. Returns task list IDs, titles, and last updated timestamps. Use the returned task list ID with tasks_list_tasks to view tasks or tasks_create_task to add tasks. The special ID '@default' can be used to reference the user's default task list without calling this tool first.",
|
|
280
|
+
"inputSchema": {
|
|
281
|
+
"type": "object",
|
|
282
|
+
"properties": {}
|
|
283
|
+
}
|
|
284
|
+
},
|
|
285
|
+
"tasks_list_tasks": {
|
|
286
|
+
"name": "tasks_list_tasks",
|
|
287
|
+
"description": "List all tasks from a specific Google Tasks task list. Returns task IDs, titles, completion status (needsAction or completed), notes, due dates, and last updated timestamps. Tasks are returned in their list order.",
|
|
288
|
+
"inputSchema": {
|
|
289
|
+
"type": "object",
|
|
290
|
+
"properties": {
|
|
291
|
+
"taskListId": {
|
|
292
|
+
"type": "string",
|
|
293
|
+
"description": "The task list ID to retrieve tasks from. Options:\n\n- '@default' - User's default/primary task list (use this if you don't need a specific list)\n- Specific task list ID - Obtained from tasks_list_task_lists results\n\nReturns all tasks in the list with: task ID, title, completion status (needsAction or completed), notes/description if any, due date if set, and last update timestamp. Tasks are returned in the order they appear in the list."
|
|
294
|
+
}
|
|
295
|
+
},
|
|
296
|
+
"required": ["taskListId"]
|
|
297
|
+
}
|
|
298
|
+
},
|
|
299
|
+
"tasks_create_task": {
|
|
300
|
+
"name": "tasks_create_task",
|
|
301
|
+
"description": "Create a new task in a Google Tasks task list. Optionally include notes/description and a due date. Returns the created task ID and details.",
|
|
302
|
+
"inputSchema": {
|
|
303
|
+
"type": "object",
|
|
304
|
+
"properties": {
|
|
305
|
+
"taskListId": {
|
|
306
|
+
"type": "string",
|
|
307
|
+
"description": "The task list ID to add the task to. Use '@default' for the user's default task list, or a specific ID from tasks_list_task_lists."
|
|
308
|
+
},
|
|
309
|
+
"title": {
|
|
310
|
+
"type": "string",
|
|
311
|
+
"description": "Task title - the main task description. Keep it concise and actionable (e.g., 'Review Q4 budget proposal' rather than 'Budget'). This is the primary text shown in the task list."
|
|
312
|
+
},
|
|
313
|
+
"notes": {
|
|
314
|
+
"type": "string",
|
|
315
|
+
"description": "Additional notes or details about the task. Use for: context, sub-tasks listed as text, links to relevant resources, or any information needed to complete the task. Displayed when viewing task details."
|
|
316
|
+
},
|
|
317
|
+
"due": {
|
|
318
|
+
"type": "string",
|
|
319
|
+
"description": "Due date in RFC 3339 timestamp format. Only the date portion is used (time is ignored by Google Tasks).\n\n**Format:** YYYY-MM-DDTHH:MM:SS.000Z\n\n**Examples:**\n- '2024-12-31T00:00:00.000Z' - Due December 31, 2024\n- '2025-01-15T00:00:00.000Z' - Due January 15, 2025\n\n**Note:** Setting a time is not meaningful - Google Tasks only tracks the date. The task will appear as due on that calendar date."
|
|
320
|
+
}
|
|
321
|
+
},
|
|
322
|
+
"required": ["taskListId", "title"]
|
|
323
|
+
}
|
|
324
|
+
},
|
|
325
|
+
"forms_create_form": {
|
|
326
|
+
"name": "forms_create_form",
|
|
327
|
+
"description": "Create a new empty Google Form with the specified title. Returns the form ID and URLs for editing the form and collecting responses. Use the Google Forms UI to add questions, sections, and configure settings.",
|
|
328
|
+
"inputSchema": {
|
|
329
|
+
"type": "object",
|
|
330
|
+
"properties": {
|
|
331
|
+
"title": {
|
|
332
|
+
"type": "string",
|
|
333
|
+
"description": "Title for the new Google Form. This appears at the top of the form and as the filename in Google Drive. Creates an empty form with no questions. Use the Google Forms UI at the returned edit URL to add questions, sections, and configure settings."
|
|
334
|
+
}
|
|
335
|
+
},
|
|
336
|
+
"required": ["title"]
|
|
337
|
+
}
|
|
338
|
+
},
|
|
339
|
+
"forms_get_form": {
|
|
340
|
+
"name": "forms_get_form",
|
|
341
|
+
"description": "Get metadata about a Google Form including title, description, and the responder URL for sharing with people who should fill out the form.",
|
|
342
|
+
"inputSchema": {
|
|
343
|
+
"type": "object",
|
|
344
|
+
"properties": {
|
|
345
|
+
"formId": {
|
|
346
|
+
"type": "string",
|
|
347
|
+
"description": "The unique Google Forms form ID. How to obtain:\n\n1. **From drive_list_files**: Search using query \"mimeType = 'application/vnd.google-apps.form'\" and use the returned file ID\n2. **From form URL**: Extract from the URL pattern:\n - Edit URL: docs.google.com/forms/d/{formId}/edit\n - View URL: docs.google.com/forms/d/{formId}/viewform\n\n**Example URL:** docs.google.com/forms/d/1AbCdEfGhIjKlMnOpQrStUvWxYz/edit\n**Form ID:** 1AbCdEfGhIjKlMnOpQrStUvWxYz\n\nReturns: Form title, document title, description, and the responder URI (the URL to share with people who should fill out the form)."
|
|
348
|
+
}
|
|
349
|
+
},
|
|
350
|
+
"required": ["formId"]
|
|
351
|
+
}
|
|
352
|
+
},
|
|
353
|
+
"chat_list_spaces": {
|
|
354
|
+
"name": "chat_list_spaces",
|
|
355
|
+
"description": "List all Google Chat spaces accessible to the user. Returns spaces including: direct message conversations (DMs), group conversations, and named spaces (rooms). For each space, returns the space resource name (spaces/{spaceId}), display name, and space type (DIRECT_MESSAGE, GROUP_CHAT, or SPACE). Use the space resource name with chat_send_message to send messages. Note: Requires the user's Google Workspace account to have Google Chat enabled.",
|
|
356
|
+
"inputSchema": {
|
|
357
|
+
"type": "object",
|
|
358
|
+
"properties": {}
|
|
359
|
+
}
|
|
360
|
+
},
|
|
361
|
+
"chat_send_message": {
|
|
362
|
+
"name": "chat_send_message",
|
|
363
|
+
"description": "Send a text message to a Google Chat space (DM, group chat, or named space). Supports basic formatting with asterisks for bold, underscores for italics, tildes for strikethrough, and backticks for code.",
|
|
364
|
+
"inputSchema": {
|
|
365
|
+
"type": "object",
|
|
366
|
+
"properties": {
|
|
367
|
+
"spaceName": {
|
|
368
|
+
"type": "string",
|
|
369
|
+
"description": "The Google Chat space resource name. Format: 'spaces/{spaceId}'\n\n**How to obtain:**\n1. Use chat_list_spaces to list available spaces\n2. Use the 'name' field from the results (e.g., 'spaces/AAAA1234567')\n\n**Space types you can message:**\n- Direct messages (DMs) with individuals\n- Group conversations\n- Named spaces (rooms) where you're a member\n\nThe space name is NOT the display name - it's the technical resource identifier."
|
|
370
|
+
},
|
|
371
|
+
"text": {
|
|
372
|
+
"type": "string",
|
|
373
|
+
"description": "Message text to send. Plain text with optional basic formatting:\n\n**Formatting options:**\n- *bold text* - Surround with asterisks\n- _italic text_ - Surround with underscores\n- ~strikethrough~ - Surround with tildes\n- `inline code` - Surround with backticks\n- ```code block``` - Triple backticks for code blocks\n\n**Best practices:**\n- Keep messages concise and actionable\n- Use formatting sparingly for emphasis\n- Break long content into multiple messages if needed\n- @mentions are not supported via this API"
|
|
374
|
+
}
|
|
375
|
+
},
|
|
376
|
+
"required": ["spaceName", "text"]
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
}
|