Releases: aliwatters/gsuite-mcp
v0.2.0
What's New
Multi-installation support
--config-dir flag and GSUITE_MCP_CONFIG_DIR env var to run multiple gsuite-mcp instances with different GCP projects. Each installation gets its own client_secret.json, config.json, and credentials/.
Citation tools (11 tools)
Large document indexing with FTS5 search, concept extraction, and citation formatting. Dual-layer storage: Google Sheets (source of truth) + SQLite FTS5 (local cache). Feature-flagged via large_doc_indexing.
citation_create_index— Create index Sheet in a Drive foldercitation_add_documents— Chunk and index documents (Docs, Slides, .pptx)citation_lookup— FTS5 full-text search across chunkscitation_get_overview— Index stats, file list, concepts, corpus summarycitation_get_chunks— Retrieve full chunk content by IDcitation_verify_claim— Find chunks supporting a claimcitation_format_citation— Human-readable citation stringcitation_save_concepts/citation_save_summary— Persist LLM extractionscitation_list_indexes/citation_refresh— Manage indexes
Other additions since v0.1.0
- Google Forms (5 tools): Get form structure, create forms, batch update, list/get responses
- Google Slides (5 tools): Read presentations, get slides, thumbnails, create, batch update
- Gmail send-as aliases and delegation (9 tools)
- Drive access filtering: Configurable allowlist/blocklist for shared drives
- Docs enhancements: Markdown export, find-replace, PDF export, doc import
- Docs styling and Sheets formatting: Paragraph styles, charts, pivot tables
- Calendar enhancements: Focus Time, OOO events, conference data, free/busy
- Drive enhancements: Shareable links, file type filter, comments, revisions
- Protocol-level MCP tests for regression prevention
Changed
- Default OAuth port changed from
8100to38917
Full Changelog: v0.1.0...v0.2.0
v0.1.5
What's New
- Configurable OAuth port — Default changed from 8000 to 8100 to avoid dev server conflicts. Override via
config.jsonorGSUITE_MCP_OAUTH_PORTenv var (#48) - Preflight check command —
gsuite-mcp checkvalidates config, tokens, and API access in one command (#38) - Shared drive support — All Drive operations now work with shared drives (#42)
- Folder paths in Drive results —
drive_get,drive_search, anddrive_listinclude folder paths (#43)
Improvements
- Comprehensive OAuth setup and troubleshooting guide (#47)
- Safer argument parsing with
RequireStringArghelper (#45) - Safe type assertions with
ParseStringArg/ParseBoolArg(#44) - Calendar refactor: extract
setNewEventTimes(#46)
Fixes
v0.1.4
Refactoring
Major code quality pass across all 7 service packages — 10 refactoring PRs eliminating duplication and improving maintainability.
- Extract inline HTML templates into
go:embed'd files (templates/error.html,templates/success.html) - Use
html/templatefor proper auto-escaping instead offmt.Sprintf - Extract
googleUserInfoURLconstant
Gmail (#11, #7, #6, PR #26, #24, #21)
- Consolidate inline helpers:
parseBodyFormat,extractAddRemoveLabels,buildMessageFromArgs - Split monolithic
RegisterTools(346 lines) into logical groups with table-driven registration - Extract
modifyLabelshelper in Gmail mock service
- Extract
updateEventTimes,parseAttendees,parseReminders,buildConferenceDatahelpers
- Consolidate field parsing with generic
parseContactFieldsparser - Extract
applyContactUpdates,ensurePrefixhelpers - Add
PeoplePrefix/ContactGroupsPrefixconstants
- Extract DRY helpers for file listing and permission operations
Cross-package (#15, #14, #10, #8, PR #18, #17)
- Extract DRY helpers and reduce exported surface across
common/and service packages - Remove dead code across all packages
Community
- Fix build command path in installation instructions (PR #19, thanks @nightscape)
v0.1.3
v0.1.2
Bug Fix
All Google Docs write operations now work — previously every docs tool (append, insert, replace, delete, format, tables, images, headers/footers, batch update) failed with "Must specify at least one request" because nil was passed to the Docs API instead of actual request objects.
Fixed tools (15)
docs_append_text,docs_insert_text,docs_replace_text,docs_delete_textdocs_format_text,docs_clear_formatting,docs_set_paragraph_styledocs_create_list,docs_remove_listdocs_insert_table,docs_insert_link,docs_insert_page_break,docs_insert_imagedocs_create_header,docs_create_footerdocs_batch_update
Additional improvements
docs_replace_textreturns actual replacement count from API (was hardcoded to 1)docs_batch_updateparses JSON into typed request objects and returns real reply count
v0.1.1
Fix
- Renamed
gmail_get_message→gmail_getas primary tool name, matching the convention of all other services (drive_get,docs_get,contacts_get,sheets_get,tasks_get) - Added
gmail_get_messageas backward-compatible alias - AI agents no longer hallucinate a nonexistent tool name after
gmail_search
v0.1.0
Full Changelog: https://github.com/aliwatters/gsuite-mcp/commits/v0.1.0