diff --git a/README.md b/README.md
index ee13a10..c3e3a9b 100644
--- a/README.md
+++ b/README.md
@@ -487,9 +487,9 @@ The server supports **tool tiers** for simplified deployment and usage patterns.
| Tier | Description | Use Case |
|------|-------------|----------|
-| 🟢 `core` | Essential tools for basic functionality | Light usage, minimal API quotas, getting started |
-| 🟡 `extended` | Core tools + additional features | Regular usage, expanded capabilities |
-| 🔴 `complete` | All available tools including advanced features | Power users, full API access |
+| • `core` | Essential tools for basic functionality | Light usage, minimal API quotas, getting started |
+| • `extended` | Core tools + additional features | Regular usage, expanded capabilities |
+| • `complete` | All available tools including advanced features | Power users, full API access |
@@ -832,136 +832,136 @@ cp .env.oauth21 .env
|
|
-### @ Gmail • [`gmail_tools.py`](gmail/gmail_tools.py)
+### @ Gmail • [`gmail_tools.py`](gmail/gmail_tools.py)
| Tool | Tier |
|------|------|
| **Core Tools** | |
-| `search_gmail_messages` | ● Core |
-| `get_gmail_message_content` | ● Core |
-| `get_gmail_messages_content_batch` | ● Core |
-| `send_gmail_message` | ● Core |
+| `search_gmail_messages` | • Core |
+| `get_gmail_message_content` | • Core |
+| `get_gmail_messages_content_batch` | • Core |
+| `send_gmail_message` | • Core |
| **Extended Tools** | |
-| `get_gmail_thread_content` | ◐ Extended |
-| `modify_gmail_message_labels` | ◐ Extended |
-| `list_gmail_labels` | ◐ Extended |
-| `manage_gmail_label` | ◐ Extended |
-| `draft_gmail_message` | ◐ Extended |
+| `get_gmail_thread_content` | • Extended |
+| `modify_gmail_message_labels` | • Extended |
+| `list_gmail_labels` | • Extended |
+| `manage_gmail_label` | • Extended |
+| `draft_gmail_message` | • Extended |
| **Complete Tools** | |
-| `get_gmail_threads_content_batch` | ○ Complete |
-| `batch_modify_gmail_message_labels` | ○ Complete |
+| `get_gmail_threads_content_batch` | • Complete |
+| `batch_modify_gmail_message_labels` | • Complete |
-### ≡ Drive • [`drive_tools.py`](gdrive/drive_tools.py)
+### ≡ Drive • [`drive_tools.py`](gdrive/drive_tools.py)
| Tool | Tier |
|------|------|
| **Core Tools** | |
-| `search_drive_files` | ● Core |
-| `get_drive_file_content` | ● Core |
-| `create_drive_file` | ● Core |
+| `search_drive_files` | • Core |
+| `get_drive_file_content` | • Core |
+| `create_drive_file` | • Core |
| **Extended Tools** | |
-| `list_drive_items` | ◐ Extended |
+| `list_drive_items` | • Extended |
-### ⧖ Calendar • [`calendar_tools.py`](gcalendar/calendar_tools.py)
+### ⧖ Calendar • [`calendar_tools.py`](gcalendar/calendar_tools.py)
| Tool | Tier |
|------|------|
| **Core Tools** | |
-| `list_calendars` | ● Core |
-| `get_events` | ● Core |
-| `create_event` | ● Core |
-| `modify_event` | ● Core |
+| `list_calendars` | • Core |
+| `get_events` | • Core |
+| `create_event` | • Core |
+| `modify_event` | • Core |
| **Extended Tools** | |
-| `delete_event` | ◐ Extended |
+| `delete_event` | • Extended |
-### @ Chat • [`chat_tools.py`](gchat/chat_tools.py)
+### @ Chat • [`chat_tools.py`](gchat/chat_tools.py)
| Tool | Tier |
|------|------|
| **Core Tools** | |
-| `send_message` | ● Core |
-| `get_messages` | ● Core |
-| `search_messages` | ● Core |
+| `send_message` | • Core |
+| `get_messages` | • Core |
+| `search_messages` | • Core |
| **Extended Tools** | |
-| `list_spaces` | ◐ Extended |
+| `list_spaces` | • Extended |
|
-### ≡ Docs • [`docs_tools.py`](gdocs/docs_tools.py)
+### ≡ Docs • [`docs_tools.py`](gdocs/docs_tools.py)
| Tool | Tier |
|------|------|
| **Core Tools** | |
-| `get_doc_content` | ● Core |
-| `create_doc` | ● Core |
-| `modify_doc_text` | ● Core |
+| `get_doc_content` | • Core |
+| `create_doc` | • Core |
+| `modify_doc_text` | • Core |
| **Extended Tools** | |
-| `search_docs` | ◐ Extended |
-| `find_and_replace_doc` | ◐ Extended |
-| `list_docs_in_folder` | ◐ Extended |
-| `insert_doc_elements` | ◐ Extended |
+| `search_docs` | • Extended |
+| `find_and_replace_doc` | • Extended |
+| `list_docs_in_folder` | • Extended |
+| `insert_doc_elements` | • Extended |
| **Complete Tools** | |
-| `insert_doc_image` | ○ Complete |
-| `update_doc_headers_footers` | ○ Complete |
-| `batch_update_doc` | ○ Complete |
-| `inspect_doc_structure` | ○ Complete |
-| `create_table_with_data` | ○ Complete |
-| `read_document_comments` | ○ Complete |
-| `create_document_comment` | ○ Complete |
-| `reply_to_document_comment` | ○ Complete |
-| `resolve_document_comment` | ○ Complete |
+| `insert_doc_image` | • Complete |
+| `update_doc_headers_footers` | • Complete |
+| `batch_update_doc` | • Complete |
+| `inspect_doc_structure` | • Complete |
+| `create_table_with_data` | • Complete |
+| `read_document_comments` | • Complete |
+| `create_document_comment` | • Complete |
+| `reply_to_document_comment` | • Complete |
+| `resolve_document_comment` | • Complete |
-### ≡ Sheets • [`sheets_tools.py`](gsheets/sheets_tools.py)
+### ≡ Sheets • [`sheets_tools.py`](gsheets/sheets_tools.py)
| Tool | Tier |
|------|------|
| **Core Tools** | |
-| `create_spreadsheet` | ● Core |
-| `read_sheet_values` | ● Core |
-| `modify_sheet_values` | ● Core |
+| `create_spreadsheet` | • Core |
+| `read_sheet_values` | • Core |
+| `modify_sheet_values` | • Core |
| **Extended Tools** | |
-| `list_spreadsheets` | ◐ Extended |
-| `get_spreadsheet_info` | ◐ Extended |
+| `list_spreadsheets` | • Extended |
+| `get_spreadsheet_info` | • Extended |
| **Complete Tools** | |
-| `create_sheet` | ○ Complete |
-| `read_spreadsheet_comments` | ○ Complete |
-| `create_spreadsheet_comment` | ○ Complete |
-| `reply_to_spreadsheet_comment` | ○ Complete |
-| `resolve_spreadsheet_comment` | ○ Complete |
+| `create_sheet` | • Complete |
+| `read_spreadsheet_comments` | • Complete |
+| `create_spreadsheet_comment` | • Complete |
+| `reply_to_spreadsheet_comment` | • Complete |
+| `resolve_spreadsheet_comment` | • Complete |
|
|
-### ≡ Slides • [`slides_tools.py`](gslides/slides_tools.py) | ✓ Tasks • [`tasks_tools.py`](gtasks/tasks_tools.py) | ≡ Forms • [`forms_tools.py`](gforms/forms_tools.py) | ◆ Search • [`search_tools.py`](gsearch/search_tools.py)
+### ≡ Slides • [`slides_tools.py`](gslides/slides_tools.py) | ✓ Tasks • [`tasks_tools.py`](gtasks/tasks_tools.py) | ≡ Forms • [`forms_tools.py`](gforms/forms_tools.py) | ◆ Search • [`search_tools.py`](gsearch/search_tools.py)
| Slides | Tier | Tasks | Tier | Forms | Tier | Search | Tier |
|--------|------|-------|------|-------|------|--------|------|
| **Core Tools** | | **Core Tools** | | **Core Tools** | | **Core Tools** | |
-| `create_presentation` | ● | `get_task` | ● | `create_form` | ● | `search_custom` | ● |
-| `get_presentation` | ● | `list_tasks` | ● | `get_form` | ● | **Extended Tools** | |
-| **Extended Tools** | | `create_task` | ● | **Extended Tools** | | `search_custom_siterestrict` | ◐ |
-| `batch_update_presentation` | ◐ | `update_task` | ● | `list_form_responses` | ◐ | **Complete Tools** | |
-| `get_page` | ◐ | **Extended Tools** | | **Complete Tools** | | `get_search_engine_info` | ○ |
-| `get_page_thumbnail` | ◐ | `delete_task` | ◐ | `set_publish_settings` | ○ | | |
-| **Complete Tools** | | **Complete Tools** | | `get_form_response` | ○ | | |
-| `read_presentation_comments` | ○ | `list_task_lists` | ○ | | | | |
-| `create_presentation_comment` | ○ | `get_task_list` | ○ | | | | |
-| `reply_to_presentation_comment` | ○ | `create_task_list` | ○ | | | | |
-| `resolve_presentation_comment` | ○ | `update_task_list` | ○ | | | | |
-| | | `delete_task_list` | ○ | | | | |
-| | | `move_task` | ○ | | | | |
-| | | `clear_completed_tasks` | ○ | | | | |
+| `create_presentation` | • | `get_task` | • | `create_form` | • | `search_custom` | • |
+| `get_presentation` | • | `list_tasks` | • | `get_form` | • | **Extended Tools** | |
+| **Extended Tools** | | `create_task` | • | **Extended Tools** | | `search_custom_siterestrict` | • |
+| `batch_update_presentation` | • | `update_task` | • | `list_form_responses` | • | **Complete Tools** | |
+| `get_page` | • | **Extended Tools** | | **Complete Tools** | | `get_search_engine_info` | • |
+| `get_page_thumbnail` | • | `delete_task` | • | `set_publish_settings` | • | | |
+| **Complete Tools** | | **Complete Tools** | | `get_form_response` | • | | |
+| `read_presentation_comments` | • | `list_task_lists` | • | | | | |
+| `create_presentation_comment` | • | `get_task_list` | • | | | | |
+| `reply_to_presentation_comment` | • | `create_task_list` | • | | | | |
+| `resolve_presentation_comment` | • | `update_task_list` | • | | | | |
+| | | `delete_task_list` | • | | | | |
+| | | `move_task` | • | | | | |
+| | | `clear_completed_tasks` | • | | | | |
|
**Tool Tier Legend:**
-- ● **Core**: Essential tools for basic functionality • Minimal API usage • Getting started
-- ◐ **Extended**: Core tools + additional features • Regular usage • Expanded capabilities
-- ○ **Complete**: All available tools including advanced features • Power users • Full API access
+- • **Core**: Essential tools for basic functionality • Minimal API usage • Getting started
+- • **Extended**: Core tools + additional features • Regular usage • Expanded capabilities
+- • **Complete**: All available tools including advanced features • Power users • Full API access
---
-## ◆ Development
+## ◆ Development
-### Project Structure
+### Project Structure
```
google_workspace_mcp/
@@ -995,7 +995,7 @@ async def your_new_tool(service, param1: str, param2: int = 10):
---
-## ⊠ Security
+## ⊠ Security
- **Credentials**: Never commit `.env`, `client_secret.json` or the `.credentials/` directory to source control!
- **OAuth Callback**: Uses `http://localhost:8000/oauth2callback` for development (requires `OAUTHLIB_INSECURE_TRANSPORT=1`)
@@ -1006,7 +1006,7 @@ async def your_new_tool(service, param1: str, param2: int = 10):
---
-## ◆ Integration with Open WebUI
+## ◆ Integration with Open WebUI
◆ Open WebUI Integration ← Connect to Open WebUI as tool provider
@@ -1057,7 +1057,7 @@ mcpo --port 8001 --config config.json
---
-## ≡ License
+## ≡ License
MIT License - see `LICENSE` file for details.