bn-google-workspace-mcp-server 0.0.2 → 0.0.5

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  # Google Workspace MCP Server
2
2
 
3
- A comprehensive Model Context Protocol (MCP) server for Google Workspace services including Gmail, Drive, Calendar, Docs, Sheets, Slides, Forms, Tasks, and Chat with OAuth2 authentication.
3
+ A comprehensive Model Context Protocol (MCP) server for Google Workspace services including Gmail, Drive, Calendar, Docs, Sheets, Slides, Contacts, and YouTube with OAuth2 authentication.
4
4
 
5
5
  ## Features
6
6
 
@@ -10,9 +10,8 @@ A comprehensive Model Context Protocol (MCP) server for Google Workspace service
10
10
  - **Google Docs**: Document creation and content access
11
11
  - **Google Sheets**: Spreadsheet operations, data reading and creation
12
12
  - **Google Slides**: Presentation management and creation
13
- - **Google Forms**: Form creation and management
14
- - **Google Tasks**: Task list and task management
15
- - **Google Chat**: Space management and messaging
13
+ - **Google Contacts**: Contact CRUD via People API (list, search, create, update, delete)
14
+ - **YouTube**: Video search, ratings, playlists, subscriptions, and comments via YouTube Data API v3
16
15
  - **OAuth2 Authentication**: Secure access via Google Access Tokens
17
16
  - **Stateless Architecture**: Each request is independent with Bearer token authentication
18
17
  - **TypeScript Implementation**: Built with TypeScript for type safety and maintainability
@@ -64,9 +63,9 @@ Authorization: Bearer ya29.your-google-access-token
64
63
 
65
64
  ## Tools
66
65
 
67
- The server provides 25 tools for comprehensive Google Workspace API access. Each tool requires `Authorization: Bearer <token>` header.
66
+ The server provides 39 tools across 8 Google services. Each tool requires `Authorization: Bearer <token>` header.
68
67
 
69
- ### Gmail Tools
68
+ ### Gmail Tools (4)
70
69
 
71
70
  #### 1. gmail_list_labels
72
71
  List all Gmail labels.
@@ -88,7 +87,7 @@ curl -X POST http://localhost:30000/mcp \
88
87
  ```
89
88
 
90
89
  #### 2. gmail_search_messages
91
- Search Gmail messages.
90
+ Search Gmail messages using Gmail search operators.
92
91
 
93
92
  ```bash
94
93
  curl -X POST http://localhost:30000/mcp \
@@ -153,10 +152,10 @@ curl -X POST http://localhost:30000/mcp \
153
152
  }'
154
153
  ```
155
154
 
156
- ### Google Drive Tools
155
+ ### Google Drive Tools (3)
157
156
 
158
157
  #### 5. drive_list_files
159
- List Google Drive files.
158
+ List and search Google Drive files using Drive Query Language.
160
159
 
161
160
  ```bash
162
161
  curl -X POST http://localhost:30000/mcp \
@@ -221,10 +220,10 @@ curl -X POST http://localhost:30000/mcp \
221
220
  }'
222
221
  ```
223
222
 
224
- ### Google Calendar Tools
223
+ ### Google Calendar Tools (3)
225
224
 
226
225
  #### 8. calendar_list_events
227
- List Google Calendar events.
226
+ List upcoming Google Calendar events.
228
227
 
229
228
  ```bash
230
229
  curl -X POST http://localhost:30000/mcp \
@@ -245,7 +244,7 @@ curl -X POST http://localhost:30000/mcp \
245
244
  ```
246
245
 
247
246
  #### 9. calendar_list_calendars
248
- List Google Calendars.
247
+ List all Google Calendars.
249
248
 
250
249
  ```bash
251
250
  curl -X POST http://localhost:30000/mcp \
@@ -286,10 +285,10 @@ curl -X POST http://localhost:30000/mcp \
286
285
  }'
287
286
  ```
288
287
 
289
- ### Google Docs Tools
288
+ ### Google Docs Tools (2)
290
289
 
291
290
  #### 11. docs_get_document
292
- Get Google Docs document.
291
+ Get Google Docs document content.
293
292
 
294
293
  ```bash
295
294
  curl -X POST http://localhost:30000/mcp \
@@ -331,10 +330,10 @@ curl -X POST http://localhost:30000/mcp \
331
330
  }'
332
331
  ```
333
332
 
334
- ### Google Sheets Tools
333
+ ### Google Sheets Tools (3)
335
334
 
336
335
  #### 13. sheets_get_spreadsheet
337
- Get Google Sheets spreadsheet.
336
+ Get Google Sheets spreadsheet metadata.
338
337
 
339
338
  ```bash
340
339
  curl -X POST http://localhost:30000/mcp \
@@ -397,7 +396,7 @@ curl -X POST http://localhost:30000/mcp \
397
396
  }'
398
397
  ```
399
398
 
400
- ### Google Slides Tools
399
+ ### Google Slides Tools (2)
401
400
 
402
401
  #### 16. slides_get_presentation
403
402
  Get Google Slides presentation.
@@ -441,10 +440,10 @@ curl -X POST http://localhost:30000/mcp \
441
440
  }'
442
441
  ```
443
442
 
444
- ### Google Tasks Tools
443
+ ### Google Contacts Tools (6)
445
444
 
446
- #### 18. tasks_list_task_lists
447
- List Google Tasks task lists.
445
+ #### 18. contacts_list_contacts
446
+ List all contacts with pagination and sorting.
448
447
 
449
448
  ```bash
450
449
  curl -X POST http://localhost:30000/mcp \
@@ -453,17 +452,19 @@ curl -X POST http://localhost:30000/mcp \
453
452
  -H "Authorization: Bearer ya29.your-google-access-token" \
454
453
  -d '{
455
454
  "jsonrpc": "2.0",
456
- "id": "18",
455
+ "id": "29",
457
456
  "method": "tools/call",
458
457
  "params": {
459
- "name": "tasks_list_task_lists",
460
- "arguments": {}
458
+ "name": "contacts_list_contacts",
459
+ "arguments": {
460
+ "pageSize": 50
461
+ }
461
462
  }
462
463
  }'
463
464
  ```
464
465
 
465
- #### 19. tasks_list_tasks
466
- List tasks from a Google Tasks list.
466
+ #### 19. contacts_search_contacts
467
+ Search contacts by name, email, or phone number.
467
468
 
468
469
  ```bash
469
470
  curl -X POST http://localhost:30000/mcp \
@@ -472,19 +473,19 @@ curl -X POST http://localhost:30000/mcp \
472
473
  -H "Authorization: Bearer ya29.your-google-access-token" \
473
474
  -d '{
474
475
  "jsonrpc": "2.0",
475
- "id": "19",
476
+ "id": "30",
476
477
  "method": "tools/call",
477
478
  "params": {
478
- "name": "tasks_list_tasks",
479
+ "name": "contacts_search_contacts",
479
480
  "arguments": {
480
- "taskListId": "@default"
481
+ "query": "John"
481
482
  }
482
483
  }
483
484
  }'
484
485
  ```
485
486
 
486
- #### 20. tasks_create_task
487
- Create a task in Google Tasks.
487
+ #### 20. contacts_get_contact
488
+ Get a specific contact by resource name.
488
489
 
489
490
  ```bash
490
491
  curl -X POST http://localhost:30000/mcp \
@@ -493,23 +494,45 @@ curl -X POST http://localhost:30000/mcp \
493
494
  -H "Authorization: Bearer ya29.your-google-access-token" \
494
495
  -d '{
495
496
  "jsonrpc": "2.0",
496
- "id": "20",
497
+ "id": "31",
497
498
  "method": "tools/call",
498
499
  "params": {
499
- "name": "tasks_create_task",
500
+ "name": "contacts_get_contact",
500
501
  "arguments": {
501
- "taskListId": "@default",
502
- "title": "Complete project documentation",
503
- "notes": "Review and finalize all documentation for the project"
502
+ "resourceName": "people/c1234567890"
504
503
  }
505
504
  }
506
505
  }'
507
506
  ```
508
507
 
509
- ### Google Forms Tools
508
+ #### 21. contacts_create_contact
509
+ Create a new contact with name, email, phone, organization, and notes.
510
510
 
511
- #### 21. forms_create_form
512
- Create a Google Form.
511
+ ```bash
512
+ curl -X POST http://localhost:30000/mcp \
513
+ -H "Content-Type: application/json" \
514
+ -H "Accept: application/json, text/event-stream" \
515
+ -H "Authorization: Bearer ya29.your-google-access-token" \
516
+ -d '{
517
+ "jsonrpc": "2.0",
518
+ "id": "32",
519
+ "method": "tools/call",
520
+ "params": {
521
+ "name": "contacts_create_contact",
522
+ "arguments": {
523
+ "givenName": "Jane",
524
+ "familyName": "Doe",
525
+ "email": "jane@example.com",
526
+ "phone": "+1-555-0100",
527
+ "organization": "Acme Inc",
528
+ "jobTitle": "Engineer"
529
+ }
530
+ }
531
+ }'
532
+ ```
533
+
534
+ #### 22. contacts_update_contact
535
+ Update an existing contact (requires etag for optimistic concurrency).
513
536
 
514
537
  ```bash
515
538
  curl -X POST http://localhost:30000/mcp \
@@ -518,19 +541,21 @@ curl -X POST http://localhost:30000/mcp \
518
541
  -H "Authorization: Bearer ya29.your-google-access-token" \
519
542
  -d '{
520
543
  "jsonrpc": "2.0",
521
- "id": "21",
544
+ "id": "33",
522
545
  "method": "tools/call",
523
546
  "params": {
524
- "name": "forms_create_form",
547
+ "name": "contacts_update_contact",
525
548
  "arguments": {
526
- "title": "Customer Feedback Survey"
549
+ "resourceName": "people/c1234567890",
550
+ "etag": "%EgUBAi43...",
551
+ "jobTitle": "Senior Engineer"
527
552
  }
528
553
  }
529
554
  }'
530
555
  ```
531
556
 
532
- #### 22. forms_get_form
533
- Get Google Form information.
557
+ #### 23. contacts_delete_contact
558
+ Delete a contact.
534
559
 
535
560
  ```bash
536
561
  curl -X POST http://localhost:30000/mcp \
@@ -539,21 +564,21 @@ curl -X POST http://localhost:30000/mcp \
539
564
  -H "Authorization: Bearer ya29.your-google-access-token" \
540
565
  -d '{
541
566
  "jsonrpc": "2.0",
542
- "id": "22",
567
+ "id": "34",
543
568
  "method": "tools/call",
544
569
  "params": {
545
- "name": "forms_get_form",
570
+ "name": "contacts_delete_contact",
546
571
  "arguments": {
547
- "formId": "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"
572
+ "resourceName": "people/c1234567890"
548
573
  }
549
574
  }
550
575
  }'
551
576
  ```
552
577
 
553
- ### Google Chat Tools
578
+ ### YouTube Tools (16)
554
579
 
555
- #### 23. chat_list_spaces
556
- List Google Chat spaces.
580
+ #### 24. youtube_search
581
+ Search YouTube for videos, channels, or playlists.
557
582
 
558
583
  ```bash
559
584
  curl -X POST http://localhost:30000/mcp \
@@ -562,17 +587,321 @@ curl -X POST http://localhost:30000/mcp \
562
587
  -H "Authorization: Bearer ya29.your-google-access-token" \
563
588
  -d '{
564
589
  "jsonrpc": "2.0",
565
- "id": "23",
590
+ "id": "35",
566
591
  "method": "tools/call",
567
592
  "params": {
568
- "name": "chat_list_spaces",
569
- "arguments": {}
593
+ "name": "youtube_search",
594
+ "arguments": {
595
+ "query": "MCP tutorial",
596
+ "type": "video",
597
+ "maxResults": 5
598
+ }
599
+ }
600
+ }'
601
+ ```
602
+
603
+ #### 25. youtube_get_video_details
604
+ Get detailed information about one or more videos.
605
+
606
+ ```bash
607
+ curl -X POST http://localhost:30000/mcp \
608
+ -H "Content-Type: application/json" \
609
+ -H "Accept: application/json, text/event-stream" \
610
+ -H "Authorization: Bearer ya29.your-google-access-token" \
611
+ -d '{
612
+ "jsonrpc": "2.0",
613
+ "id": "36",
614
+ "method": "tools/call",
615
+ "params": {
616
+ "name": "youtube_get_video_details",
617
+ "arguments": {
618
+ "videoIds": "dQw4w9WgXcQ"
619
+ }
620
+ }
621
+ }'
622
+ ```
623
+
624
+ #### 26. youtube_get_video_rating
625
+ Check if the authenticated user has liked/disliked a video.
626
+
627
+ ```bash
628
+ curl -X POST http://localhost:30000/mcp \
629
+ -H "Content-Type: application/json" \
630
+ -H "Accept: application/json, text/event-stream" \
631
+ -H "Authorization: Bearer ya29.your-google-access-token" \
632
+ -d '{
633
+ "jsonrpc": "2.0",
634
+ "id": "37",
635
+ "method": "tools/call",
636
+ "params": {
637
+ "name": "youtube_get_video_rating",
638
+ "arguments": {
639
+ "videoIds": "dQw4w9WgXcQ"
640
+ }
641
+ }
642
+ }'
643
+ ```
644
+
645
+ #### 27. youtube_rate_video
646
+ Like, dislike, or remove rating from a video.
647
+
648
+ ```bash
649
+ curl -X POST http://localhost:30000/mcp \
650
+ -H "Content-Type: application/json" \
651
+ -H "Accept: application/json, text/event-stream" \
652
+ -H "Authorization: Bearer ya29.your-google-access-token" \
653
+ -d '{
654
+ "jsonrpc": "2.0",
655
+ "id": "38",
656
+ "method": "tools/call",
657
+ "params": {
658
+ "name": "youtube_rate_video",
659
+ "arguments": {
660
+ "videoId": "dQw4w9WgXcQ",
661
+ "rating": "like"
662
+ }
663
+ }
664
+ }'
665
+ ```
666
+
667
+ #### 28. youtube_get_channel
668
+ Get channel information (own channel or by ID).
669
+
670
+ ```bash
671
+ curl -X POST http://localhost:30000/mcp \
672
+ -H "Content-Type: application/json" \
673
+ -H "Accept: application/json, text/event-stream" \
674
+ -H "Authorization: Bearer ya29.your-google-access-token" \
675
+ -d '{
676
+ "jsonrpc": "2.0",
677
+ "id": "39",
678
+ "method": "tools/call",
679
+ "params": {
680
+ "name": "youtube_get_channel",
681
+ "arguments": {
682
+ "mine": true
683
+ }
684
+ }
685
+ }'
686
+ ```
687
+
688
+ #### 29. youtube_list_subscriptions
689
+ List the authenticated user's subscriptions.
690
+
691
+ ```bash
692
+ curl -X POST http://localhost:30000/mcp \
693
+ -H "Content-Type: application/json" \
694
+ -H "Accept: application/json, text/event-stream" \
695
+ -H "Authorization: Bearer ya29.your-google-access-token" \
696
+ -d '{
697
+ "jsonrpc": "2.0",
698
+ "id": "40",
699
+ "method": "tools/call",
700
+ "params": {
701
+ "name": "youtube_list_subscriptions",
702
+ "arguments": {
703
+ "maxResults": 10
704
+ }
705
+ }
706
+ }'
707
+ ```
708
+
709
+ #### 30. youtube_subscribe_channel
710
+ Subscribe to a YouTube channel.
711
+
712
+ ```bash
713
+ curl -X POST http://localhost:30000/mcp \
714
+ -H "Content-Type: application/json" \
715
+ -H "Accept: application/json, text/event-stream" \
716
+ -H "Authorization: Bearer ya29.your-google-access-token" \
717
+ -d '{
718
+ "jsonrpc": "2.0",
719
+ "id": "41",
720
+ "method": "tools/call",
721
+ "params": {
722
+ "name": "youtube_subscribe_channel",
723
+ "arguments": {
724
+ "channelId": "UCxxxxxxxxxxxxxxxxxxxxxxx"
725
+ }
726
+ }
727
+ }'
728
+ ```
729
+
730
+ #### 31. youtube_unsubscribe_channel
731
+ Unsubscribe from a YouTube channel (requires subscription ID).
732
+
733
+ ```bash
734
+ curl -X POST http://localhost:30000/mcp \
735
+ -H "Content-Type: application/json" \
736
+ -H "Accept: application/json, text/event-stream" \
737
+ -H "Authorization: Bearer ya29.your-google-access-token" \
738
+ -d '{
739
+ "jsonrpc": "2.0",
740
+ "id": "42",
741
+ "method": "tools/call",
742
+ "params": {
743
+ "name": "youtube_unsubscribe_channel",
744
+ "arguments": {
745
+ "subscriptionId": "xxxxxxxxxxxxxxxxxxxx"
746
+ }
747
+ }
748
+ }'
749
+ ```
750
+
751
+ #### 32. youtube_list_playlists
752
+ List playlists (own or by channel ID).
753
+
754
+ ```bash
755
+ curl -X POST http://localhost:30000/mcp \
756
+ -H "Content-Type: application/json" \
757
+ -H "Accept: application/json, text/event-stream" \
758
+ -H "Authorization: Bearer ya29.your-google-access-token" \
759
+ -d '{
760
+ "jsonrpc": "2.0",
761
+ "id": "43",
762
+ "method": "tools/call",
763
+ "params": {
764
+ "name": "youtube_list_playlists",
765
+ "arguments": {
766
+ "mine": true
767
+ }
768
+ }
769
+ }'
770
+ ```
771
+
772
+ #### 33. youtube_create_playlist
773
+ Create a new YouTube playlist.
774
+
775
+ ```bash
776
+ curl -X POST http://localhost:30000/mcp \
777
+ -H "Content-Type: application/json" \
778
+ -H "Accept: application/json, text/event-stream" \
779
+ -H "Authorization: Bearer ya29.your-google-access-token" \
780
+ -d '{
781
+ "jsonrpc": "2.0",
782
+ "id": "44",
783
+ "method": "tools/call",
784
+ "params": {
785
+ "name": "youtube_create_playlist",
786
+ "arguments": {
787
+ "title": "My Favorites",
788
+ "description": "A collection of my favorite videos",
789
+ "privacyStatus": "private"
790
+ }
791
+ }
792
+ }'
793
+ ```
794
+
795
+ #### 34. youtube_list_playlist_items
796
+ List videos in a playlist.
797
+
798
+ ```bash
799
+ curl -X POST http://localhost:30000/mcp \
800
+ -H "Content-Type: application/json" \
801
+ -H "Accept: application/json, text/event-stream" \
802
+ -H "Authorization: Bearer ya29.your-google-access-token" \
803
+ -d '{
804
+ "jsonrpc": "2.0",
805
+ "id": "45",
806
+ "method": "tools/call",
807
+ "params": {
808
+ "name": "youtube_list_playlist_items",
809
+ "arguments": {
810
+ "playlistId": "PLxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
811
+ }
812
+ }
813
+ }'
814
+ ```
815
+
816
+ #### 35. youtube_add_to_playlist
817
+ Add a video to a playlist.
818
+
819
+ ```bash
820
+ curl -X POST http://localhost:30000/mcp \
821
+ -H "Content-Type: application/json" \
822
+ -H "Accept: application/json, text/event-stream" \
823
+ -H "Authorization: Bearer ya29.your-google-access-token" \
824
+ -d '{
825
+ "jsonrpc": "2.0",
826
+ "id": "46",
827
+ "method": "tools/call",
828
+ "params": {
829
+ "name": "youtube_add_to_playlist",
830
+ "arguments": {
831
+ "playlistId": "PLxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
832
+ "videoId": "dQw4w9WgXcQ"
833
+ }
834
+ }
835
+ }'
836
+ ```
837
+
838
+ #### 36. youtube_remove_from_playlist
839
+ Remove a video from a playlist (requires playlist item ID).
840
+
841
+ ```bash
842
+ curl -X POST http://localhost:30000/mcp \
843
+ -H "Content-Type: application/json" \
844
+ -H "Accept: application/json, text/event-stream" \
845
+ -H "Authorization: Bearer ya29.your-google-access-token" \
846
+ -d '{
847
+ "jsonrpc": "2.0",
848
+ "id": "47",
849
+ "method": "tools/call",
850
+ "params": {
851
+ "name": "youtube_remove_from_playlist",
852
+ "arguments": {
853
+ "playlistItemId": "UExxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxQ"
854
+ }
855
+ }
856
+ }'
857
+ ```
858
+
859
+ #### 37. youtube_list_comments
860
+ List comments on a YouTube video.
861
+
862
+ ```bash
863
+ curl -X POST http://localhost:30000/mcp \
864
+ -H "Content-Type: application/json" \
865
+ -H "Accept: application/json, text/event-stream" \
866
+ -H "Authorization: Bearer ya29.your-google-access-token" \
867
+ -d '{
868
+ "jsonrpc": "2.0",
869
+ "id": "48",
870
+ "method": "tools/call",
871
+ "params": {
872
+ "name": "youtube_list_comments",
873
+ "arguments": {
874
+ "videoId": "dQw4w9WgXcQ",
875
+ "maxResults": 10
876
+ }
877
+ }
878
+ }'
879
+ ```
880
+
881
+ #### 38. youtube_post_comment
882
+ Post a top-level comment on a YouTube video.
883
+
884
+ ```bash
885
+ curl -X POST http://localhost:30000/mcp \
886
+ -H "Content-Type: application/json" \
887
+ -H "Accept: application/json, text/event-stream" \
888
+ -H "Authorization: Bearer ya29.your-google-access-token" \
889
+ -d '{
890
+ "jsonrpc": "2.0",
891
+ "id": "49",
892
+ "method": "tools/call",
893
+ "params": {
894
+ "name": "youtube_post_comment",
895
+ "arguments": {
896
+ "videoId": "dQw4w9WgXcQ",
897
+ "text": "Great video!"
898
+ }
570
899
  }
571
900
  }'
572
901
  ```
573
902
 
574
- #### 24. chat_send_message
575
- Send a message to Google Chat.
903
+ #### 39. youtube_reply_to_comment
904
+ Reply to an existing YouTube comment.
576
905
 
577
906
  ```bash
578
907
  curl -X POST http://localhost:30000/mcp \
@@ -581,13 +910,13 @@ curl -X POST http://localhost:30000/mcp \
581
910
  -H "Authorization: Bearer ya29.your-google-access-token" \
582
911
  -d '{
583
912
  "jsonrpc": "2.0",
584
- "id": "24",
913
+ "id": "50",
585
914
  "method": "tools/call",
586
915
  "params": {
587
- "name": "chat_send_message",
916
+ "name": "youtube_reply_to_comment",
588
917
  "arguments": {
589
- "spaceName": "spaces/AAAAxxxxxxx",
590
- "text": "Hello from the Google Workspace MCP Server!"
918
+ "parentId": "UgxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxQ",
919
+ "text": "Thanks for sharing!"
591
920
  }
592
921
  }
593
922
  }'
@@ -630,15 +959,14 @@ google-workspace/
630
959
  │ ├── google-api-client.ts # Google API service factories
631
960
  │ └── tools/
632
961
  │ ├── index.ts # Tool exports
633
- │ ├── gmail.ts # Gmail tools
634
- │ ├── drive.ts # Drive tools
635
- │ ├── calendar.ts # Calendar tools
636
- │ ├── docs.ts # Docs tools
637
- │ ├── sheets.ts # Sheets tools
638
- │ ├── slides.ts # Slides tools
639
- │ ├── tasks.ts # Tasks tools
640
- ├── forms.ts # Forms tools
641
- │ └── chat.ts # Chat tools
962
+ │ ├── gmail.ts # Gmail tools (4)
963
+ │ ├── drive.ts # Drive tools (3)
964
+ │ ├── calendar.ts # Calendar tools (3)
965
+ │ ├── docs.ts # Docs tools (2)
966
+ │ ├── sheets.ts # Sheets tools (3)
967
+ │ ├── slides.ts # Slides tools (2)
968
+ │ ├── contacts.ts # Contacts tools (6)
969
+ └── youtube.ts # YouTube tools (16)
642
970
  └── dist/ # Compiled JavaScript
643
971
  ```
644
972
 
@@ -647,10 +975,10 @@ google-workspace/
647
975
  1. **Create Google Cloud Project:**
648
976
  - Go to [Google Cloud Console](https://console.cloud.google.com/)
649
977
  - Create a new project or select existing
650
- - Enable required APIs (Gmail, Drive, Calendar, etc.)
978
+ - Enable required APIs (Gmail, Drive, Calendar, People, YouTube)
651
979
 
652
980
  2. **Set up OAuth2:**
653
- - Go to "Credentials" "Create Credentials" "OAuth 2.0 Client IDs"
981
+ - Go to "Credentials" -> "Create Credentials" -> "OAuth 2.0 Client IDs"
654
982
  - Configure OAuth consent screen
655
983
  - Download client configuration
656
984
 
@@ -663,9 +991,8 @@ google-workspace/
663
991
  https://www.googleapis.com/auth/documents
664
992
  https://www.googleapis.com/auth/spreadsheets
665
993
  https://www.googleapis.com/auth/presentations
666
- https://www.googleapis.com/auth/tasks
667
- https://www.googleapis.com/auth/forms.body
668
- https://www.googleapis.com/auth/chat.spaces
994
+ https://www.googleapis.com/auth/contacts
995
+ https://www.googleapis.com/auth/youtube.force-ssl
669
996
  ```
670
997
 
671
998
  4. **Get Access Token:**
@@ -32,15 +32,11 @@ export declare function getSheetsService(req: Request): import("googleapis").she
32
32
  */
33
33
  export declare function getSlidesService(req: Request): import("googleapis").slides_v1.Slides;
34
34
  /**
35
- * Get Google Tasks API service
35
+ * Get Google People API service (Contacts)
36
36
  */
37
- export declare function getTasksService(req: Request): import("googleapis").tasks_v1.Tasks;
37
+ export declare function getPeopleService(req: Request): import("googleapis").people_v1.People;
38
38
  /**
39
- * Get Google Forms API service
39
+ * Get YouTube Data API v3 service
40
40
  */
41
- export declare function getFormsService(req: Request): import("googleapis").forms_v1.Forms;
42
- /**
43
- * Get Google Chat API service
44
- */
45
- export declare function getChatService(req: Request): import("googleapis").chat_v1.Chat;
41
+ export declare function getYouTubeService(req: Request): import("googleapis").youtube_v3.Youtube;
46
42
  //# sourceMappingURL=google-api-client.d.ts.map