Skip to content

Releases: aliwatters/gsuite-mcp

v0.3.2

17 May 14:30
c5d77bc

Choose a tag to compare

What's Changed

  • fix(auth): take over oauth_port from stale gsuite-mcp daemon (closes #158) by @aliwatters in #159
  • fix(auth): split portclaim by build tag — syscall.Kill is Unix-only (v0.3.2 release fix) by @aliwatters in #160

Full Changelog: v0.3.1...v0.3.2

v0.3.1

17 May 14:05
729bdbe

Choose a tag to compare

What's Changed

  • feat(gmail): expose attachment IDs in gmail_get / gmail_get_message (closes #156) by @aliwatters in #157

Full Changelog: v0.3.0...v0.3.1

v0.3.0

14 May 17:16
1085d27

Choose a tag to compare

What's Changed

  • feat: install.sh for one-command build + install by @aliwatters in #146
  • docs: recommend Desktop OAuth client type by default (Closes #134) by @aliwatters in #147
  • chore(deps): bump go.opentelemetry.io/otel from 1.39.0 to 1.41.0 by @dependabot[bot] in #138
  • chore(deps)(deps): bump actions/checkout from 4 to 6 by @dependabot[bot] in #142
  • chore(deps)(deps): bump actions/setup-go from 5 to 6 by @dependabot[bot] in #143
  • chore(deps)(deps): bump goreleaser/goreleaser-action from 6 to 7 by @dependabot[bot] in #144
  • chore(deps)(deps): bump the go-minor-and-patch group across 1 directory with 4 updates by @dependabot[bot] in #145
  • fix(auth): improve OAuth refresh UX + investigate TTL behavior by @aliwatters in #150
  • fix(auth): No-Silent-Failures + TokenSource cache + functional pre-refresh + test hardening (P67 Slot 2) by @aliwatters in #155
  • chore(deps)(deps): bump modernc.org/sqlite from 1.50.0 to 1.50.1 in the go-minor-and-patch group by @dependabot[bot] in #148

New Contributors

Full Changelog: v0.1.7...v0.3.0

v0.1.7

07 May 17:36
3cffd38

Choose a tag to compare

What's Changed

  • refactor: architecture improvements — split god files and interfaces by @aliwatters in #116
  • feat: parallel Drive API calls, token health --json, OAuth improvements, experimental markers by @aliwatters in #115
  • refactor: citation quality improvements — error context, test coverage, DRY, chunker extraction by @aliwatters in #117
  • refactor: wrap bare return err with error context by @aliwatters in #128
  • refactor: DI, global state removal, DRY unification by @aliwatters in #129
  • refactor: config permissions fix and constant dedup by @aliwatters in #130
  • fix: tighten existing config.json permissions to 0600 by @aliwatters in #132
  • fix: address 7 unresolved Copilot review comments by @aliwatters in #133
  • feat: migrate mark3labs/mcp-go to v0.52.0 (#140) by @aliwatters in #141
  • chore(deps): bump go deps (#136) by @aliwatters in #139

Full Changelog: v0.1.6...v0.1.7

v0.1.6

13 Apr 22:29

Choose a tag to compare

What's Changed

  • feat: auth bug fix, format_by_find fix, and named ranges support by @aliwatters in #94
  • feat(e2e): add E2E test suite with dedicated test account by @aliwatters in #95
  • feat: add Google Meet API support and GCP setup guide by @aliwatters in #96
  • feat: add Drive Activity and Google Chat API support by @aliwatters in #97

Full Changelog: v0.2.2...v0.1.6

v0.2.2

25 Mar 19:40

Choose a tag to compare

What's New

docs_get_structure tool

Returns document paragraph boundaries with real Google Docs character indices. Each structural element includes type, startIndex, endIndex, named style, and text preview — enabling position-based operations like paragraph shading, targeted hyperlink insertion, and batch formatting.

[
  {"type": "paragraph", "style": "TITLE", "startIndex": 1, "endIndex": 45, "text": "DevX Epic: Three Parallel..."},
  {"type": "table", "startIndex": 300, "endIndex": 800, "rows": 7, "cols": 4},
  {"type": "paragraph", "style": "HEADING_2", "startIndex": 801, "endIndex": 830, "text": "Stream A: Ephemeral..."}
]

Closes #92

v0.2.1

25 Mar 17:50

Choose a tag to compare

What's New

docs_format_by_find tool

Find text in a Google Doc and apply formatting to all matches — no position math needed. Resolves real Google Docs UTF-16 indexes internally, handling tables and structured elements correctly.

{
  "document_id": "...",
  "find_text": "NEXT_PUBLIC_PRACTICE_STATUS",
  "match_all": true,
  "font_family": "Courier New",
  "font_size": 9,
  "background_color": "#e8e8e8"
}

Supports all text formatting options: bold, italic, underline, strikethrough, small_caps, font_family, font_size, foreground_color, background_color, baseline_offset.

Closes #88

v0.2.0

20 Mar 18:19
9de2732

Choose a tag to compare

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 folder
  • citation_add_documents — Chunk and index documents (Docs, Slides, .pptx)
  • citation_lookup — FTS5 full-text search across chunks
  • citation_get_overview — Index stats, file list, concepts, corpus summary
  • citation_get_chunks — Retrieve full chunk content by ID
  • citation_verify_claim — Find chunks supporting a claim
  • citation_format_citation — Human-readable citation string
  • citation_save_concepts / citation_save_summary — Persist LLM extractions
  • citation_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 8100 to 38917

Full Changelog: v0.1.0...v0.2.0

v0.1.5

17 Mar 20:28
c3674f4

Choose a tag to compare

What's New

  • Configurable OAuth port — Default changed from 8000 to 8100 to avoid dev server conflicts. Override via config.json or GSUITE_MCP_OAUTH_PORT env var (#48)
  • Preflight check commandgsuite-mcp check validates 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 resultsdrive_get, drive_search, and drive_list include folder paths (#43)

Improvements

  • Comprehensive OAuth setup and troubleshooting guide (#47)
  • Safer argument parsing with RequireStringArg helper (#45)
  • Safe type assertions with ParseStringArg/ParseBoolArg (#44)
  • Calendar refactor: extract setNewEventTimes (#46)

Fixes

  • Handle io.ReadAll error and document fullText search (#31, #35)

v0.1.4

13 Feb 21:47
689bcd4

Choose a tag to compare

Refactoring

Major code quality pass across all 7 service packages — 10 refactoring PRs eliminating duplication and improving maintainability.

Auth (#16, PR #25)

  • Extract inline HTML templates into go:embed'd files (templates/error.html, templates/success.html)
  • Use html/template for proper auto-escaping instead of fmt.Sprintf
  • Extract googleUserInfoURL constant

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 modifyLabels helper in Gmail mock service

Calendar (#13, PR #22)

  • Extract updateEventTimes, parseAttendees, parseReminders, buildConferenceData helpers

Contacts (#12, PR #23)

  • Consolidate field parsing with generic parseContactFields parser
  • Extract applyContactUpdates, ensurePrefix helpers
  • Add PeoplePrefix/ContactGroupsPrefix constants

Drive (#9, PR #20)

  • 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)