Taylor Wilsdon
ff35fd7950
Merge pull request #578 from Bortlesboat/feat/555-auto-reply-headers
...
Docker Build and Push to GHCR / build-and-push (push) Has been cancelled
Ruff / ruff (push) Has been cancelled
feat(gmail): auto-populate In-Reply-To/References for reply drafts
2026-03-17 15:32:32 -04:00
Taylor Wilsdon
894564f378
refac tests
2026-03-17 15:32:14 -04:00
Taylor Wilsdon
a87ac1737d
add test
2026-03-17 14:34:21 -04:00
Taylor Wilsdon
464c182829
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into feat/555-auto-reply-headers
2026-03-17 14:33:41 -04:00
Taylor Wilsdon
01ffcc1fc6
Merge pull request #565 from reinlemmens/fix/calendar-meeting-links
...
Display meeting links in calendar event output
2026-03-17 14:32:37 -04:00
Taylor Wilsdon
156a1f20ef
Merge pull request #573 from seidnerj/fix/oauth-response-pages
...
fix: improve OAuth response pages for browser compatibility
2026-03-17 11:49:10 -04:00
Taylor Wilsdon
0dfed9081b
Merge pull request #577 from Bortlesboat/fix/567-darwin-stdout
...
fix: suppress platform string output to stdout on macOS
2026-03-17 11:35:09 -04:00
Taylor Wilsdon
ffcea58fdc
refac
2026-03-17 10:42:32 -04:00
Taylor Wilsdon
96df53c5e9
refac
2026-03-17 10:34:30 -04:00
Taylor Wilsdon
16ce566d88
refac
2026-03-17 10:21:58 -04:00
Taylor Wilsdon
783806017d
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into fix/567-darwin-stdout
2026-03-17 10:12:11 -04:00
Taylor Wilsdon
86a159a364
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into feat/555-auto-reply-headers
2026-03-17 10:11:51 -04:00
Taylor Wilsdon
9e499b0581
Merge pull request #586 from taylorwilsdon/issues/584
...
fix: remove consent from reauth flow and add tests
2026-03-17 08:47:23 -04:00
Taylor Wilsdon
441f052dca
refac
2026-03-17 08:43:55 -04:00
Taylor Wilsdon
9ef6f72e26
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into feat/555-auto-reply-headers
2026-03-17 08:37:20 -04:00
github-actions[bot]
6725789c80
style: auto-fix ruff lint and format
2026-03-17 12:36:42 +00:00
Taylor Wilsdon
66011fd814
remove consent from reauth flow and add tests
2026-03-17 08:36:08 -04:00
Taylor Wilsdon
1697c449b5
ruff
2026-03-17 08:28:07 -04:00
Taylor Wilsdon
370bd03a69
permissions for git workflows
2026-03-17 08:28:00 -04:00
Taylor Wilsdon
c82ae0daa1
deps
2026-03-17 08:12:56 -04:00
Taylor Wilsdon
5e892675df
bump deps
2026-03-17 08:12:41 -04:00
Taylor Wilsdon
b9867a606f
Merge pull request #583 from taylorwilsdon/dependabot/uv/uv-67de942c1e
...
Bump authlib from 1.6.7 to 1.6.9 in the uv group across 1 directory
2026-03-16 18:22:15 -04:00
Taylor Wilsdon
2ab22ee630
refac
2026-03-16 14:44:45 -04:00
Taylor Wilsdon
e2c08b5f69
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into fix/calendar-meeting-links
2026-03-16 14:42:18 -04:00
Taylor Wilsdon
f0269f4382
Merge pull request #581 from Bortlesboat/feat/547-quoted-reply-content
...
feat(gmail): support quoted reply content and signature positioning
2026-03-16 14:39:37 -04:00
Andrew Barnes
e86c58e792
docs: add quote_original to draft_gmail_message docstring
2026-03-16 14:31:33 -04:00
dependabot[bot]
9b14a92876
Bump authlib from 1.6.7 to 1.6.9 in the uv group across 1 directory
...
Bumps the uv group with 1 update in the / directory: [authlib](https://github.com/authlib/authlib ).
Updates `authlib` from 1.6.7 to 1.6.9
- [Release notes](https://github.com/authlib/authlib/releases )
- [Changelog](https://github.com/authlib/authlib/blob/main/docs/changelog.rst )
- [Commits](https://github.com/authlib/authlib/compare/v1.6.7...v1.6.9 )
---
updated-dependencies:
- dependency-name: authlib
dependency-version: 1.6.9
dependency-type: indirect
dependency-group: uv
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-03-16 15:41:46 +00:00
Taylor Wilsdon
a7a10deb78
ruff
2026-03-16 10:44:33 -04:00
Taylor Wilsdon
b0784b798c
Merge pull request #582 from vdemay/fix/stateless-http-mode
...
Fix: wire WORKSPACE_MCP_STATELESS_MODE to FastMCP's stateless_http parameter
2026-03-16 10:44:12 -04:00
Taylor Wilsdon
b10f6a970a
Merge branch 'main' of https://github.com/taylorwilsdon/google_workspace_mcp into fix/stateless-http-mode
2026-03-16 10:43:17 -04:00
Taylor Wilsdon
7d267a727b
Merge pull request #560 from hindmakarem-qa/fix/email-threading-headers
...
fix : #457 llm will add rfp compliant id when replying
2026-03-16 09:54:28 -04:00
Vincent Demay
f163ffbd30
Fix: wire WORKSPACE_MCP_STATELESS_MODE to FastMCP's stateless_http parameter
...
WORKSPACE_MCP_STATELESS_MODE=true was already read, validated, and used to
configure the OAuth layer — but was never passed to server.run(). FastMCP
therefore always ran in stateful mode, keeping session state in memory.
On pod/process restart all in-memory sessions are lost, causing clients to
receive {"code":-32600,"message":"Session not found"} on their next request.
Passes stateless_http=is_stateless_mode() to server.run() so FastMCP drops
session tracking when stateless mode is configured, matching what the env var
already advertises.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-16 12:47:51 +01:00
Taylor Wilsdon
ee6fd7c0f7
Merge branch 'main' of https://github.com/taylorwilsdon/google_workspace_mcp into fix/email-threading-headers
2026-03-15 18:19:09 -04:00
Taylor Wilsdon
3c6978840f
refac
2026-03-15 18:19:07 -04:00
Taylor Wilsdon
7fe01c1b86
Merge pull request #580 from Bortlesboat/feat/517-cell-notes
...
feat(sheets): expose cell notes in read_sheet_values
2026-03-15 17:53:43 -04:00
Taylor Wilsdon
ba3db90a62
refac
2026-03-15 17:52:45 -04:00
Taylor Wilsdon
bf1f94b330
refac
2026-03-15 17:52:13 -04:00
Bortlesboat
adc003877c
feat(gmail): support quoted reply content and signature positioning
2026-03-15 17:45:22 -04:00
Taylor Wilsdon
042d2190e9
Merge branch 'main' of https://github.com/taylorwilsdon/google_workspace_mcp into feat/517-cell-notes
2026-03-15 17:35:22 -04:00
Taylor Wilsdon
4f6b35b218
Merge pull request #579 from Bortlesboat/fix/561-token-auto-refresh
...
fix(auth): auto-refresh expired tokens in single-user stdio mode
2026-03-15 17:34:18 -04:00
Bortlesboat
2e0d6393f4
feat(sheets): expose cell notes in read_sheet_values
2026-03-15 17:33:02 -04:00
Taylor Wilsdon
94b37de421
ruff
2026-03-15 17:29:20 -04:00
Taylor Wilsdon
6a386b4255
refac
2026-03-15 17:29:09 -04:00
Bortlesboat
b7365c661e
fix(auth): auto-refresh expired tokens in single-user stdio mode
...
When credentials had a refresh_token but credentials.expired was False
(e.g., token=None with no stored expiry), the refresh was skipped and
the server would start a new OAuth flow instead. This changes the
condition to attempt refresh whenever credentials are not valid and a
refresh_token is available, regardless of the expired flag.
2026-03-15 17:22:36 -04:00
Bortlesboat
ebc3fcb044
feat(gmail): auto-populate In-Reply-To/References when thread_id is provided
...
When draft_gmail_message is called with a thread_id but without
in_reply_to or references headers, fetch the thread via the Gmail API
to extract Message-ID headers. This ensures reply drafts render inline
in Gmail's thread view instead of appearing as ghost drafts.
Fixes #555
2026-03-15 17:17:15 -04:00
Bortlesboat
b5d7270fea
fix: suppress platform string output to stdout on macOS
2026-03-15 17:13:07 -04:00
Taylor Wilsdon
92b4a7847f
chore: release v1.14.3
2026-03-15 12:16:30 -04:00
seidnerj
4bdc96a554
fix: use consistent "tab" wording in success page CTAs
...
Change "Close Window" to "Close Tab" and "This window will close" to
"This tab will close" on the success page to match the rest of the PR.
2026-03-14 07:35:18 +02:00
seidnerj
31e27b76b6
fix: improve OAuth response pages for browser compatibility
...
window.close() is blocked by modern browsers for tabs not opened via
window.open(). The success page's close button and auto-close timer
silently fail as a result.
- Add tryClose() that attempts window.close() and falls back to
showing "You can close this tab manually" after 500ms
- Remove ineffective auto-close scripts from error pages
2026-03-14 01:37:18 +02:00
Taylor Wilsdon
fbf53d2dcc
Merge pull request #564 from reinlemmens/feature/batch-bullet-list-support
...
Add create_bullet_list operation to batch_update_doc
2026-03-13 11:30:28 -04:00
Rein Lemmens
59b3a2492c
Reject heading_level and named_style_type together in validation
...
Add mutual exclusion guard so clients get a clear error instead of
named_style_type silently overriding heading_level.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-12 21:20:17 +01:00
Rein Lemmens
9285a5f97e
Revert "Extract shared named style constant and use keyword args"
...
This reverts commit 00796f39c6 .
2026-03-12 21:15:57 +01:00
Rein Lemmens
00796f39c6
Extract shared named style constant and use keyword args
...
- Extract VALID_NAMED_STYLE_TYPES constant in docs_helpers.py, reuse in validation_manager.py
- Switch build_paragraph_style call to keyword arguments for clarity and resilience
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-12 21:15:39 +01:00
Rein Lemmens
e441ade35f
Display meeting links in calendar event output
...
Conference/meeting links (Google Meet, Zoom, etc.) were fetched from the
API but never included in get_events() output. Extract video entry point
from conferenceData (with hangoutLink fallback) and display it in all
three output modes: single detailed, multi detailed, and basic list.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-12 21:08:16 +01:00
Rein Lemmens
a9db471345
Add create_bullet_list operation to batch_update_doc
...
Exposes native Google Docs createParagraphBullets and
deleteParagraphBullets APIs via the batch operation manager.
Supports UNORDERED (bullets), ORDERED (numbered), and NONE
(remove formatting) list types with optional nesting levels.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-12 21:06:34 +01:00
Rein Lemmens
38ad39bea6
Add named_style_type support to update_paragraph_style operation
...
Allows setting TITLE and SUBTITLE paragraph styles directly, in addition
to the existing heading_level (0-6) parameter. The new named_style_type
parameter accepts all Google Docs named styles: NORMAL_TEXT, TITLE,
SUBTITLE, HEADING_1 through HEADING_6.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-12 20:34:36 +01:00
hindmakarem-qa
4d79bf2817
fix : #457 llm will add rfp compliant id when replying
2026-03-12 02:30:34 +01:00
Taylor Wilsdon
5a2e1f3089
Merge pull request #553 from taylorwilsdon/issues/545
...
enh: expand get_form schema
2026-03-10 11:50:18 -04:00
Taylor Wilsdon
aa75b3f2dd
pr feedback
2026-03-10 11:45:24 -04:00
Taylor Wilsdon
6e6c97baa7
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into issues/545
2026-03-10 11:40:12 -04:00
Taylor Wilsdon
37930346f6
Merge pull request #554 from taylorwilsdon/issues/552
...
fix: Issues/552 - Docker [disk] storage
2026-03-09 14:34:31 -04:00
github-actions[bot]
5eb5e06a1e
style: auto-fix ruff lint and format
2026-03-09 16:52:41 +00:00
Taylor Wilsdon
7c550e55b2
declarative dockerfile
2026-03-09 12:52:00 -04:00
Taylor Wilsdon
d3fde86296
docker py-key-value-aio[disk]
2026-03-09 12:47:40 -04:00
github-actions[bot]
dd547c931a
style: auto-fix ruff lint and format
2026-03-09 16:20:51 +00:00
Taylor Wilsdon
ea078623b3
add
2026-03-09 12:20:04 -04:00
Taylor Wilsdon
6a2633984a
Fix grammatical error in README description
...
Corrected a minor grammatical error in the README.
2026-03-06 11:45:54 -05:00
Taylor Wilsdon
4001e3f868
Refine README content for clarity and detail
...
Updated the README to enhance the description of features and capabilities, including details about OAuth 2.1 support and hosting options.
2026-03-06 11:45:39 -05:00
Taylor Wilsdon
dc4cefc17c
Merge pull request #540 from mickey-mikey/feat/tasks-manage-permission
...
feat: add tasks:manage permission level
2026-03-05 08:54:43 -05:00
Taylor Wilsdon
c7b0afa74c
readme cleanup
2026-03-05 08:52:48 -05:00
Taylor Wilsdon
bf2eb4c0c7
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into feat/tasks-manage-permission
2026-03-05 08:47:35 -05:00
Taylor Wilsdon
f80f12cb54
Update README.md
2026-03-05 08:04:20 -05:00
mickey-mikey
f26c2f9e87
Merge branch 'taylorwilsdon:main' into feat/tasks-manage-permission
2026-03-05 15:13:08 +11:00
Taylor Wilsdon
c1204815cd
Merge pull request #541 from taylorwilsdon/issues/511
...
fix: only suggest re-authentication for auth-related HTTP errors
2026-03-04 16:38:23 -05:00
Taylor Wilsdon
4cc456602f
drive scope fix
2026-03-04 16:36:34 -05:00
github-actions[bot]
3faeb6d832
style: auto-fix ruff lint and format
2026-03-04 14:32:13 +00:00
Taylor Wilsdon
9de1fcb6ea
fix: only suggest re-authentication for auth-related HTTP errors
...
When an HttpError occurs in Google Tasks tools, the error handler now checks
the HTTP status code before suggesting re-authentication. Re-auth messages are
only shown for 401 (Unauthorized) and 403 (Forbidden) errors.
This prevents misleading re-authentication suggestions for non-auth errors like
400 (Bad Request) with malformed arguments, allowing the LLM to focus on the
actual root cause instead of being misdirected by incorrect auth guidance.
The fix applies to both CLI mode (stdio legacy oauth) and MCP mode (OAuth 2.1).
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com >
2026-03-04 09:30:59 -05:00
mickey-mikey
0e7c2a2318
refactor: move test_tasks_manage_is_valid_level to TestParsePermissionsArg
...
Addresses CodeRabbit Review 4 nitpick: the test validates
parse_permissions_arg() so it belongs with that test class.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-04 16:47:29 +11:00
mickey-mikey
acc3e665d0
fix: assert cumulative readonly scope in tasks full-level test
...
Addresses CodeRabbit Review 3 nitpick: verify TASKS_READONLY_SCOPE is
present at full level, confirming cumulative scope expansion.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-04 16:40:50 +11:00
mickey-mikey
69dd5069dc
fix: add test docstrings and reset fixture per CodeRabbit review
...
- Add docstrings to test methods for coverage threshold
- Add autouse fixture to reset permission state between tests
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-04 16:29:28 +11:00
mickey-mikey
0fce7c78b6
fix: also deny clear_completed under tasks:manage
...
Addresses CodeRabbit review — clear_completed is destructive and should
be blocked alongside delete at the manage permission level.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-04 16:21:51 +11:00
mickey-mikey
377791080c
feat: add tasks:manage permission level to deny delete without blocking other writes
...
The consolidated manage_task tool bundles create/update/delete/move into a
single tool, making it impossible to deny just the delete action via tool
tiers or scope-based filtering.
This adds:
- A `manage` permission level for tasks (between readonly and full)
- A SERVICE_DENIED_ACTIONS registry mapping (service, level) to denied actions
- An is_action_denied() helper that tools call before executing actions
- Guards in manage_task and manage_task_list that reject denied actions
Usage: --permissions tasks:manage
Allows create, update, move. Denies delete.
tasks:full remains unchanged (all actions allowed).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-04 15:04:31 +11:00
Taylor Wilsdon
89e1974984
chore: release v1.14.2
2026-03-03 18:19:07 -05:00
Taylor Wilsdon
130ed48cc7
Merge pull request #423 from gpminsuk/feat/server-instructions-user-email
...
feat: Add USER_GOOGLE_EMAIL to server instructions for single-user mode
2026-03-03 17:54:12 -05:00
Taylor Wilsdon
0f941650bb
Merge pull request #539 from slowpoison/feature_doc_tab
...
Add support for GDoc Tabs
2026-03-03 17:47:45 -05:00
Taylor Wilsdon
3d7fc02e84
refac for the better
2026-03-03 17:46:50 -05:00
Taylor Wilsdon
a5a896977f
refac
2026-03-03 17:36:21 -05:00
Taylor Wilsdon
548394efbb
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into feature_doc_tab
2026-03-03 17:34:26 -05:00
Vishal Verma
10cdcdd7e5
Add support for GDoc Tabs
2026-03-03 09:12:31 -08:00
Taylor Wilsdon
8a856cfecd
Merge pull request #538 from taylorwilsdon/issues/536
...
enh: better fallback logic for html in emails
2026-03-03 11:28:08 -05:00
github-actions[bot]
95120d6f26
style: auto-fix ruff lint and format
2026-03-03 15:12:33 +00:00
Taylor Wilsdon
92840ac8e8
better fallback logic for html in emails
2026-03-02 09:29:53 -05:00
Taylor Wilsdon
04b9ae027c
chore: release v1.14.1
2026-03-01 18:29:25 -05:00
Taylor Wilsdon
d514c6219d
Merge pull request #523 from jack-distl/claude/fix-cors-middleware-error-sPbo6
...
Fix TypeError: CORSMiddleware.__call__() missing 2 required positiona…
2026-03-01 18:29:10 -05:00
Taylor Wilsdon
e999982848
cache test
2026-03-01 18:21:23 -05:00
Taylor Wilsdon
5b5da3386c
refac
2026-03-01 18:21:12 -05:00
Taylor Wilsdon
c9facbff3d
refac
2026-03-01 17:59:45 -05:00
Taylor Wilsdon
217d727a9d
Merge branch 'main' of https://github.com/taylorwilsdon/google_workspace_mcp into claude/fix-cors-middleware-error-sPbo6
2026-03-01 17:47:02 -05:00
Taylor Wilsdon
5af66ee0d2
refac
2026-03-01 17:47:00 -05:00
Taylor Wilsdon
ab5c95a5d0
Merge pull request #532 from isair/fix/pkce-code-verifier
...
Fix PKCE code verifier not generated for initial OAuth flow
2026-03-01 17:39:59 -05:00
Taylor Wilsdon
662383b8b2
Merge branch 'main' of https://github.com/taylorwilsdon/google_workspace_mcp into fix/pkce-code-verifier
2026-03-01 17:34:12 -05:00
Taylor Wilsdon
8463e4fd29
auth test
2026-03-01 17:34:11 -05:00
Taylor Wilsdon
ef9c6a9c69
make better
2026-03-01 17:34:02 -05:00
Taylor Wilsdon
4d17c83057
chore: release v1.14.0
2026-03-01 17:26:40 -05:00
Taylor Wilsdon
d20685cf78
Merge pull request #533 from taylorwilsdon/issues/526
...
enh: defusedxml
2026-03-01 17:26:06 -05:00
Taylor Wilsdon
d8567f2beb
defusedxml
2026-03-01 17:22:34 -05:00
Taylor Wilsdon
4e48fd2bb5
Merge pull request #531 from taylorwilsdon/tool_consolidation
...
enh: Tool Consolidation
2026-03-01 17:09:02 -05:00
github-actions[bot]
985a5a780f
style: auto-fix ruff lint and format
2026-03-01 22:07:23 +00:00
Taylor Wilsdon
ce296ded29
Merge branch 'tool_consolidation' of https://github.com/taylorwilsdon/google_workspace_mcp into tool_consolidation
2026-03-01 17:07:07 -05:00
Taylor Wilsdon
2c26338296
pr feedback
2026-03-01 17:06:55 -05:00
Taylor Wilsdon
c077b4b4b4
Update gappsscript/apps_script_tools.py
...
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-03-01 17:04:35 -05:00
Taylor Wilsdon
49073995c9
refac
2026-03-01 16:00:39 -05:00
Baris Sencan
3361ed29e6
Fix PKCE code verifier not being generated for initial OAuth flow
...
When `create_oauth_flow()` is called without an explicit `code_verifier`
(i.e. during the initial auth flow in `start_auth_flow()`), the function
never sets `autogenerate_code_verifier=True` on the Flow constructor.
oauthlib 3.2+ automatically adds `code_challenge` to the authorization
URL at the session level, so Google expects a matching `code_verifier`
during the token exchange. However, since `Flow.code_verifier` remains
`None`, that `None` gets stored in the session store and later passed
back during the callback — causing Google to reject the token exchange
with `(invalid_grant) Missing code verifier`.
The fix adds `autogenerate_code_verifier=True` in the else branch so
the Flow object generates and exposes a proper PKCE code verifier that
gets stored and reused during the callback token exchange.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-01 18:38:29 +00:00
github-actions[bot]
1f34a8b8cc
style: auto-fix ruff lint and format
2026-03-01 18:26:42 +00:00
Taylor Wilsdon
d2651add30
merge
2026-03-01 13:26:14 -05:00
Taylor Wilsdon
e9c9c28844
cleanup
2026-03-01 13:23:40 -05:00
github-actions[bot]
eaab19b1ca
style: auto-fix ruff lint and format
2026-03-01 17:54:47 +00:00
Taylor Wilsdon
5e4db385d3
refac
2026-03-01 12:50:40 -05:00
Taylor Wilsdon
241433937b
Merge branch 'main' of https://github.com/taylorwilsdon/google_workspace_mcp into tool_consolidation
2026-03-01 12:36:10 -05:00
Taylor Wilsdon
6753531e9d
refactor tools to consolidate all modify actions
2026-03-01 12:36:09 -05:00
Taylor Wilsdon
e89935abcd
Merge pull request #530 from taylorwilsdon/issues/525
...
fix: issues/525 and issues/485
2026-03-01 12:27:05 -05:00
Taylor Wilsdon
3fc864928e
fix issues/525 and issues/485
2026-03-01 12:06:23 -05:00
Taylor Wilsdon
51d027ec8a
Merge pull request #524 from 04cb/fix/docs-hyphenation
...
Fix docs: hyphenation for compound adjectives
2026-03-01 11:02:31 -05:00
Taylor Wilsdon
7cd46d72c7
Merge pull request #528 from taylorwilsdon/feature/checkbox-understanding
...
enh: Docs Checkbox Handling
2026-03-01 09:40:22 -05:00
github-actions[bot]
2778bc75a6
style: auto-fix ruff lint and format
2026-03-01 14:31:38 +00:00
Taylor Wilsdon
47160a5fc3
bump version
2026-03-01 09:30:28 -05:00
Taylor Wilsdon
df9640b321
Add Google Docs checklist/checkbox recognition in markdown output
...
Detect checklist items in Google Docs API responses and render them as
- [ ] (unchecked) and - [x] (checked) in markdown, so LLMs understand
checkbox state instead of writing literal [x] or DONE text.
Closes #516
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-01 09:30:05 -05:00
04cb
5df7382fa1
Fix docs: hyphenation for compound adjectives
2026-03-01 14:49:55 +08:00
Claude
cd326d0f2d
Fix TypeError: CORSMiddleware.__call__() missing 2 required positional arguments
...
The _wrap_well_known_endpoint function assumed all route endpoints are regular
request handlers (async def handler(request) -> Response). However, the MCP
SDK's cors_middleware wraps handlers with CORSMiddleware, which is an ASGI app
expecting (scope, receive, send). When the wrapper called
`await endpoint(request)` on a CORSMiddleware instance, it passed only 1
argument instead of the required 3 ASGI args.
The fix detects whether the endpoint is a regular handler function or an ASGI
app (using the same inspect check as Starlette's Route constructor), and uses
the appropriate calling convention:
- Regular handlers: called as `await endpoint(request)` (existing behavior)
- ASGI apps: invoked via the ASGI interface `await endpoint(scope, receive, send)`
with response capture to apply cache-busting headers
https://claude.ai/code/session_011S5zFTWRfKBJBUEanrhvQg
2026-03-01 04:56:33 +00:00
Taylor Wilsdon
ca00c74634
Update README.md
2026-02-28 18:23:44 -04:00
Taylor Wilsdon
97c8ea28fd
Update README.md
2026-02-28 18:23:25 -04:00
Taylor Wilsdon
3ee06351d8
Update README.md
2026-02-28 18:23:07 -04:00
Taylor Wilsdon
2bbd2e7ff7
Merge branch 'main' of https://github.com/taylorwilsdon/google_workspace_mcp
2026-02-28 18:21:59 -04:00
Taylor Wilsdon
93a7429b1c
Delete .beads/issues.jsonl
2026-02-28 18:21:52 -04:00
Taylor Wilsdon
03bf50426b
gitignore beads
2026-02-28 18:20:23 -04:00
Taylor Wilsdon
643b5c0871
gitignore beads
2026-02-28 18:19:50 -04:00
Taylor Wilsdon
88afb51f9d
chore: release v1.13.1
2026-02-28 18:15:00 -04:00
Taylor Wilsdon
30a1f765f3
Merge pull request #508 from fmgs31/search_with_file_type
...
feat: Search with file type
2026-02-28 18:12:37 -04:00
Taylor Wilsdon
6c04e4f5a0
refac
2026-02-28 18:05:59 -04:00
Taylor Wilsdon
44205b66e0
merge conflicts
2026-02-28 17:53:39 -04:00
Taylor Wilsdon
328619412d
Merge pull request #513 from fmgs31/drive_files_pagination_fix
...
Bugfix: Adding missing nextPageToken for pagination in drive tools
2026-02-28 17:45:48 -04:00
Taylor Wilsdon
8b69a49d40
ruff
2026-02-28 17:44:37 -04:00
Taylor Wilsdon
f29f16e591
refac
2026-02-28 17:43:44 -04:00
Taylor Wilsdon
3e175c9998
Merge branch 'main' of https://github.com/taylorwilsdon/google_workspace_mcp into drive_files_pagination_fix
2026-02-28 17:13:30 -04:00
Taylor Wilsdon
bbdd61d08d
fix attachments + test
2026-02-28 17:12:30 -04:00
Taylor Wilsdon
d7e02772eb
Merge pull request #510 from taylorwilsdon/issues/503
...
enh: Partial Scope Grants & Granular Permissions
2026-02-28 16:58:44 -04:00
Taylor Wilsdon
252aa2aede
tests
2026-02-28 16:56:30 -04:00
Taylor Wilsdon
768ec5eef0
refac
2026-02-28 16:17:43 -04:00
Taylor Wilsdon
65e347568b
Merge branch 'issues/503' of https://github.com/taylorwilsdon/google_workspace_mcp into issues/503
2026-02-28 11:50:22 -04:00
Taylor Wilsdon
34ada2c7ad
better cachce management
2026-02-28 11:50:09 -04:00
github-actions[bot]
58256e42ee
style: auto-fix ruff lint and format
2026-02-28 15:40:51 +00:00
Taylor Wilsdon
edf9e94829
cachebusting for oauth endpoints, more tests, startup check for perms
2026-02-28 11:40:29 -04:00
Taylor Wilsdon
f2986dcf2f
pr feedback & readme update
2026-02-28 11:19:19 -04:00
Taylor Wilsdon
1e9078262f
Merge branch 'issues/503' of https://github.com/taylorwilsdon/google_workspace_mcp into issues/503
2026-02-28 11:14:27 -04:00
Taylor Wilsdon
9f329fc935
ruff
2026-02-28 11:14:22 -04:00
Taylor Wilsdon
8ae833f0c7
Merge branch 'main' of https://github.com/taylorwilsdon/google_workspace_mcp into issues/503
2026-02-28 11:13:23 -04:00
Taylor Wilsdon
fcb7bad415
Merge pull request #520 from taylorwilsdon/issues/518
...
fix: pcke
2026-02-28 11:13:14 -04:00
Taylor Wilsdon
9dc9b1c825
pkce fix
2026-02-28 10:06:50 -04:00
github-actions[bot]
e394ad90e2
style: auto-fix ruff lint and format
2026-02-27 21:00:00 +00:00
Taylor Wilsdon
92d2c15b80
Merge branch 'issues/503' of https://github.com/taylorwilsdon/google_workspace_mcp into issues/503
2026-02-27 16:59:38 -04:00
Taylor Wilsdon
bb197243cd
pr feedback
2026-02-27 16:59:18 -04:00
Taylor Wilsdon
608772497d
Merge branch 'main' of https://github.com/taylorwilsdon/google_workspace_mcp into issues/503
2026-02-27 16:52:53 -04:00
Taylor Wilsdon
3d3932c562
Merge branch 'main' into drive_files_pagination_fix
2026-02-27 13:20:35 -04:00
Taylor Wilsdon
53e9bf73a2
Merge pull request #515 from fmgs31/hidden_details_drive_items
...
Optional hidden details in drive search and list
2026-02-27 13:17:28 -04:00
Francisco
1fab9a82fe
gdrive - Moving nextPageToken to the end
2026-02-27 11:21:18 +13:00
Taylor Wilsdon
0e44ef924e
Update README.md
2026-02-26 11:30:37 -04:00
Francisco
351afa4331
Optional hidden details in drive search and list
2026-02-26 22:53:40 +13:00
Francisco
35994ce1c5
Gdrive file type fileter - Fixing problems detected by coderabbitai
2026-02-26 13:03:19 +13:00
Francisco
117c6af88b
Adding nextPageToken for pagination in drive tools
2026-02-26 12:46:51 +13:00
github-actions[bot]
86a8e1be4d
style: auto-fix ruff lint and format
2026-02-25 23:44:33 +00:00
Taylor Wilsdon
e81d0e367f
no safe_print for exit error messages
2026-02-25 09:03:48 -04:00
Francisco
a6c0d9d298
adding extra types for search filter
2026-02-25 22:22:27 +13:00
Francisco
5aafffe091
Test for search with file type
2026-02-25 21:42:09 +13:00
Francisco
7e33626b72
Search with file type
2026-02-25 21:27:29 +13:00
Taylor Wilsdon
cfc68d8605
implement --permissions flag
2026-02-24 21:28:50 -04:00
Taylor Wilsdon
aa520b72d3
fix all them tests
2026-02-24 21:09:14 -04:00
Taylor Wilsdon
9631b9e3eb
chore: release v1.13.0
2026-02-24 11:24:38 -04:00
Taylor Wilsdon
0b0890a2e8
Merge branch 'main' of https://github.com/taylorwilsdon/google_workspace_mcp
2026-02-24 11:24:25 -04:00
Taylor Wilsdon
a1a14c8925
Merge pull request #468 from taylorwilsdon/fastmcp_v3
...
enh: Implement FastMCP v3
2026-02-24 11:24:05 -04:00
Taylor Wilsdon
eaac938737
prep for release
2026-02-24 11:23:43 -04:00
Taylor Wilsdon
e85b7aa3db
logfix
2026-02-24 11:23:22 -04:00
Taylor Wilsdon
b9524a9090
review fixes
2026-02-24 11:20:27 -04:00
Taylor Wilsdon
e1cf0d44da
address pr feedback
2026-02-24 10:47:53 -04:00
Taylor Wilsdon
0c4a9708fe
avoid early return in read only oauth 2 mode
2026-02-24 10:38:06 -04:00
Taylor Wilsdon
b7d1f613d0
pin 3.0.2 for now
2026-02-24 10:36:23 -04:00
Taylor Wilsdon
b0c6a83c5f
Merge branch 'fastmcp_v3' of https://github.com/taylorwilsdon/google_workspace_mcp into fastmcp_v3
2026-02-24 10:31:41 -04:00
Taylor Wilsdon
1ae72ef85b
Merge branch 'main' of https://github.com/taylorwilsdon/google_workspace_mcp into fastmcp_v3
2026-02-24 10:31:33 -04:00
Taylor Wilsdon
8d2b23ab0e
Merge pull request #502 from stakeswky/fix/non-ascii-attachment-filenames
...
fix: use RFC 2231 encoding for non-ASCII attachment filenames
2026-02-24 10:31:20 -04:00
Taylor Wilsdon
252487fd88
Apply suggestions from code review
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-02-24 10:30:36 -04:00
github-actions[bot]
3f9821b525
style: auto-fix ruff lint and format
2026-02-24 14:29:22 +00:00
Taylor Wilsdon
f38dbc48a9
Merge branch 'fastmcp_v3' of https://github.com/taylorwilsdon/google_workspace_mcp into fastmcp_v3
2026-02-24 10:29:04 -04:00
Taylor Wilsdon
de1cd84730
Merge branch 'main' of https://github.com/taylorwilsdon/google_workspace_mcp into fastmcp_v3
2026-02-24 10:28:57 -04:00
Taylor Wilsdon
285406e2ee
Merge pull request #495 from mickey-mikey/fix/windows-attachment-corruption
...
Fix Windows attachment corruption: add O_BINARY flag to os.open
2026-02-24 10:28:53 -04:00
github-actions[bot]
c454cc9630
style: auto-fix ruff lint and format
2026-02-24 14:27:22 +00:00
Taylor Wilsdon
69f1a0e9bb
remove direct _components usage, prep for v3 rollout
2026-02-24 10:26:52 -04:00
Taylor Wilsdon
1ebc758490
Merge branch 'main' of https://github.com/taylorwilsdon/google_workspace_mcp into fastmcp_v3
...
# Conflicts:
# uv.lock
2026-02-24 10:13:14 -04:00
Taylor Wilsdon
1e3dab2121
merge
2026-02-24 10:11:00 -04:00
User
2526b87a52
fix: also strip null bytes from attachment filename for consistency
2026-02-23 11:14:21 +08:00
stakeswky
0dc9985d33
fix: use RFC 2231 encoding for non-ASCII attachment filenames
...
When creating Gmail drafts with attachments whose filenames contain
non-ASCII characters (e.g. umlauts like ü, ö, ä), Gmail displays
"noname" instead of the actual filename.
The root cause is that Content-Disposition was built via string
formatting (f'attachment; filename="{safe_filename}"'), which embeds
raw non-ASCII bytes in the header. Gmail cannot parse these and falls
back to "noname".
Fix: pass the filename as a keyword argument to add_header(), which
makes Python's email library automatically apply RFC 2231 encoding
(filename*=utf-8''...) for non-ASCII names while keeping ASCII
filenames unchanged.
Fixes #500
2026-02-23 10:40:56 +08:00
mickey-mikey
1e36375493
Merge branch 'taylorwilsdon:main' into fix/windows-attachment-corruption
2026-02-22 19:54:41 +11:00
mickey-mikey
ffeba1f2f3
fix: add O_BINARY flag to os.open for Windows attachment writes
...
Fixes #494 - Windows attachment corruption for PNG/PDF files.
On Windows, os.open() defaults to text mode, which translates LF (0x0a)
bytes to CRLF (0x0d 0x0a) during os.write(). This corrupts any binary
attachment containing 0x0a bytes (PNG headers, PDFs, etc.).
The fix adds os.O_BINARY to the os.open() flags using the standard
getattr(os, 'O_BINARY', 0) idiom, which returns the flag on Windows
and 0 (no-op) on platforms where it doesn't exist.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-22 11:45:37 +11:00
Taylor Wilsdon
724234e509
Update README.md
2026-02-21 07:56:01 -05:00
Taylor Wilsdon
519578cdf7
chore: release v1.12.0
2026-02-19 10:05:36 -05:00
Taylor Wilsdon
c3d1e250e6
Merge pull request #428 from francescomucio/feature/create-drive-folder
...
feat(drive): add create_drive_folder tool and unit test
2026-02-19 10:04:26 -05:00
Taylor Wilsdon
24a4f376d8
refac
2026-02-19 09:58:49 -05:00
Taylor Wilsdon
4f5c65953c
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into feature/create-drive-folder
2026-02-19 09:55:07 -05:00
Taylor Wilsdon
e9d4d291e2
Merge pull request #488 from drewgillson/feat/chat-attachment-download
...
Add chat attachment support: surface metadata and download files
2026-02-19 09:47:20 -05:00
Taylor Wilsdon
bdc815a723
fix missing readme and tool tier entry for previous addition
2026-02-19 09:46:51 -05:00
Taylor Wilsdon
7d5c0fdbca
ruff & mimetype
2026-02-19 09:42:42 -05:00
Taylor Wilsdon
eaa13d3f7e
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into feat/chat-attachment-download
2026-02-19 09:41:06 -05:00
Taylor Wilsdon
6f2a88c105
Merge pull request #489 from MaxGhenis/feat/comment-anchor-text
...
feat: surface quotedFileContent (anchor text) in comment reading
2026-02-19 09:39:56 -05:00
Taylor Wilsdon
8b8d74cc3f
Merge pull request #490 from MaxGhenis/feat/doc-markdown-export
...
feat(docs): add get_doc_as_markdown tool with comment context
2026-02-19 09:38:26 -05:00
Max Ghenis
7b7fcfdb58
fix: add URL-to-ID extraction, comment_mode validation, and pipe escaping
...
Address CodeRabbit review feedback:
- Extract doc ID from full Google Docs URLs (e.g. /d/<id>/)
- Validate comment_mode against allowed values
- Escape pipe characters in table cell text
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-18 19:26:31 -08:00
Max Ghenis
08ad7ad308
feat(docs): add get_doc_as_markdown tool with comment context
...
Adds a new `get_doc_as_markdown` tool that converts Google Docs to clean
Markdown preserving formatting (headings, bold/italic/strikethrough, links,
code spans, ordered/unordered lists with nesting, and tables).
Optionally overlays comments with their anchor text (quotedFileContent) —
the specific text each comment is attached to — in two modes:
- inline: footnote-style references placed at the anchor text location
- appendix: all comments grouped at the bottom with blockquoted anchors
This gives AI agents full document context in a single tool call, unlike
get_doc_content which strips all formatting to plain text.
New files:
- gdocs/docs_markdown.py: Converter + comment formatting logic
- tests/gdocs/test_docs_markdown.py: 18 tests
Tool tier: extended (alongside search_docs, export_doc_to_pdf, etc.)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-18 19:15:56 -08:00
Max Ghenis
d4070a209b
feat: surface quotedFileContent (anchor text) in comment reading
...
When reading comments via read_document_comments / read_spreadsheet_comments /
read_presentation_comments, the Drive API's quotedFileContent.value field is
now requested and displayed as "Quoted text:" in the output. This shows which
specific text in the document each comment is anchored to.
Comments without anchor text (document-level comments) omit the line.
Relates to #210
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-18 19:12:21 -08:00
Drew Gillson
4f3eec459d
Add chat attachment support: surface metadata and download images/files
...
Previously, get_messages and search_messages completely ignored the
attachment field on Chat API messages. This adds:
- Attachment metadata (filename, type) displayed inline in get_messages
and search_messages output
- New download_chat_attachment tool that downloads attachments via the
Chat API media endpoint and saves to local disk
The download uses httpx with a Bearer token against the
chat.googleapis.com/v1/media endpoint (with alt=media), which works
correctly in both OAuth 2.0 and OAuth 2.1 modes. The attachment's
downloadUri field is intentionally ignored as it points to
chat.google.com which requires browser session cookies.
Key details:
- Uses attachmentDataRef.resourceName for the media endpoint URL
- No new OAuth scopes required (existing chat_read is sufficient)
- Tool registered in the extended tier
- 10 unit tests covering metadata display, download, and edge cases
2026-02-18 17:02:18 -07:00
Taylor Wilsdon
860bc4c16f
Merge pull request #484 from sethladd/add-chat-spaces-readonly-scope
...
Add chat.spaces.readonly scope for listing spaces
2026-02-18 13:21:24 -05:00
Taylor Wilsdon
a6988cf643
fix ruff workflow
2026-02-18 13:19:49 -05:00
Taylor Wilsdon
9b8dc6568c
chat spaces readonly scope
2026-02-18 12:46:08 -05:00
Taylor Wilsdon
28f03c2e92
ruff
2026-02-18 12:36:25 -05:00
Taylor Wilsdon
96725470ec
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into add-chat-spaces-readonly-scope
2026-02-18 12:36:18 -05:00
Taylor Wilsdon
6b21632e58
Merge pull request #486 from taylorwilsdon/issues/483
...
enh: Refresh flow when scopes change since last authorization
2026-02-18 12:34:11 -05:00
Taylor Wilsdon
f62e0bbd26
pr feedback
2026-02-18 12:28:17 -05:00
Taylor Wilsdon
3cc40c1357
Merge branch 'issues/483' of github.com:taylorwilsdon/google_workspace_mcp into issues/483
2026-02-18 12:22:32 -05:00
Taylor Wilsdon
90a2a9c00b
set for scopes
2026-02-18 12:22:13 -05:00
github-actions[bot]
950206c707
style: auto-fix ruff lint and format
2026-02-18 16:49:48 +00:00
Taylor Wilsdon
a28fa0a249
address issues/483
2026-02-18 11:48:53 -05:00
Seth Ladd
d964324e5d
Add chat.spaces.readonly scope for listing spaces
...
The list_spaces tool was using chat.messages.readonly which is overly
broad for simply enumerating available spaces. This adds the
chat.spaces.readonly scope and uses it for list_spaces, following the
principle of least privilege.
Closes #479
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-17 20:58:08 -08:00
Taylor Wilsdon
a047572c98
Merge pull request #482 from drewgillson/feat/chat-enhancements
...
feat(chat): People API sender resolution, rich links, threads, and reactions
2026-02-17 21:11:16 -05:00
Taylor Wilsdon
d542d4aadb
cache that shit
2026-02-17 21:10:52 -05:00
Taylor Wilsdon
3d9d0fb473
refactor github actions for ruff
2026-02-17 21:06:03 -05:00
Taylor Wilsdon
e90e22d719
refac
2026-02-17 21:02:48 -05:00
Taylor Wilsdon
2b551e5f57
Merge branch 'main' of https://github.com/taylorwilsdon/google_workspace_mcp into feat/chat-enhancements
2026-02-17 21:01:46 -05:00
Taylor Wilsdon
6eca4ddcc4
ruff
2026-02-17 21:01:44 -05:00
Taylor Wilsdon
ace2bebd5c
Create FUNDING.yml
2026-02-17 20:56:51 -05:00
Drew Gillson
be2f68ff68
feat(chat): add People API sender resolution, rich links, threads, and reactions
...
Resolves several gaps in the Google Chat tools:
**Sender resolution via People API:**
- Chat API doesn't return displayName for service account access
- New `_resolve_sender()` uses People API to look up user IDs
- In-memory cache avoids repeated lookups
- get_messages and search_messages now use `require_multiple_services`
to inject both chat and people services
**Rich link (smart chip) extraction:**
- When users paste Workspace URLs that render as smart chips, the URL
is stripped from the `text` field and only available in annotations
- New `_extract_rich_links()` extracts RICH_LINK annotation URIs
- Surfaced as `[linked: <url>]` in get_messages and search_messages
**Thread support:**
- get_messages shows `[thread: ...]` for threaded replies
- send_message gains `thread_name` param for replying in existing threads
using `messageReplyOption=REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD`
- Fixes existing `thread_key` param which was missing messageReplyOption
**Emoji reactions:**
- get_messages shows `[reactions: 👍 x3, 🎉 x1]` from emojiReactionSummaries
- New `create_reaction` tool to add emoji reactions to messages
2026-02-17 17:28:29 -07:00
Taylor Wilsdon
6322bf8f67
chore: release v1.11.5
2026-02-17 16:54:01 -05:00
Taylor Wilsdon
1d4efd4376
bump
2026-02-17 16:53:53 -05:00
Taylor Wilsdon
f8b7ef16ce
chore: release v1.11.4
2026-02-17 16:52:08 -05:00
Taylor Wilsdon
d3bbd4eec5
bump
2026-02-17 16:51:56 -05:00
Taylor Wilsdon
c0cdaa6e39
chore: release v1.11.3
2026-02-17 16:50:47 -05:00
Taylor Wilsdon
b86dba469b
clean up dxt, update license in pyproject
2026-02-17 16:50:38 -05:00
Taylor Wilsdon
9df78a2e16
Merge pull request #436 from the-gigi-pplx/feature/doc-links
...
Add hyperlink support to modify_doc_text
2026-02-17 15:10:44 -05:00
Taylor Wilsdon
1eae403b64
add link url
2026-02-17 14:54:34 -05:00
Taylor Wilsdon
de8865333c
ruff
2026-02-17 14:49:59 -05:00
Taylor Wilsdon
40e827810a
refac
2026-02-17 14:49:49 -05:00
Taylor Wilsdon
d4bbd6db1c
chore: release v1.11.2
2026-02-15 17:01:52 -05:00
Taylor Wilsdon
7cc281e26a
dxt
2026-02-15 17:01:46 -05:00
Taylor Wilsdon
9d1c8f86f3
Merge pull request #415 from xuiltul/fix/attachment-storage-absolute-path
...
fix: use absolute path for attachment storage and improve filename resolution
2026-02-15 17:01:30 -05:00
Taylor Wilsdon
5a784a2ea7
use os.write for short write loops
2026-02-15 16:54:37 -05:00
Taylor Wilsdon
9588396fcb
ruff
2026-02-15 16:46:28 -05:00
Taylor Wilsdon
39fe339dc8
fixes
2026-02-15 16:46:19 -05:00
Taylor Wilsdon
7cfa10f457
readme and storage improvements
2026-02-15 16:28:34 -05:00
Taylor Wilsdon
0131f5472f
fixes
2026-02-15 16:17:03 -05:00
Taylor Wilsdon
bb87e6f9c8
main and ruff
2026-02-15 12:25:16 -05:00
Taylor Wilsdon
87b7889e5b
Merge branch 'main' of https://github.com/taylorwilsdon/google_workspace_mcp into fix/attachment-storage-absolute-path
2026-02-15 12:25:08 -05:00
Taylor Wilsdon
4c7f373902
Merge pull request #472 from cfdude/feat/batch-paragraph-style
...
feat(docs): add update_paragraph_style to batch operations
2026-02-14 12:19:29 -05:00
Taylor Wilsdon
935fb29398
ruff
2026-02-14 12:16:25 -05:00
Taylor Wilsdon
360da94e9e
refac, add tests
2026-02-14 12:15:43 -05:00
Rob Sherman
f07072d1d9
fix: remove duplicate .gitignore entries
2026-02-13 17:08:51 -08:00
Rob Sherman
c34751fa22
chore: add local development files to .gitignore
...
Exclude local-only files from version control:
- .serena/ - local development directory
- Caddyfile - local Caddy reverse proxy config
- ecosystem.config.cjs - local PM2 ecosystem config
2026-02-13 16:48:16 -08:00
Rob Sherman
fd4aaace19
fix(docs): address CodeRabbit review feedback
...
- Allow negative indent_first_line values for hanging indents (Google
Docs API supports this)
- Add update_paragraph_style to get_validation_summary() for consistency
2026-02-13 15:11:31 -08:00
Rob Sherman
d02d147252
feat(docs): add update_paragraph_style to batch_update_doc operations
...
Enable paragraph-level styling (headings, alignment, spacing, indentation)
within atomic batch operations, complementing the existing format_text support.
2026-02-13 15:11:18 -08:00
Taylor Wilsdon
755aa5550f
Merge pull request #471 from cfdude/fix/credential-store-list-users
...
fix(auth): filter non-credential files from list_users()
2026-02-13 17:11:31 -05:00
Rob Sherman
f1705ce81b
fix(auth): filter non-credential files from list_users()
...
LocalDirectoryCredentialStore.list_users() enumerates all .json files
in the credentials directory, but oauth_states.json (written by
PersistentOAuthStateStore) is not a user credential file. In
single-user mode, this file can be picked up first alphabetically,
causing a TypeError when accessing credentials.scopes (None) since
the state file has no scopes field.
Filter out known non-credential files and filenames without '@' to
ensure only actual user credential files are returned.
2026-02-13 13:40:56 -08:00
Taylor Wilsdon
0f481ef81a
Merge pull request #470 from taylorwilsdon/dpopes_knows_best
...
enh: harden security around attachment functionality
2026-02-13 16:32:29 -05:00
Taylor Wilsdon
cb628bafa4
cleanup http if error not httpx
2026-02-13 16:27:23 -05:00
Taylor Wilsdon
a756b1846f
Merge branch 'dpopes_knows_best' of https://github.com/taylorwilsdon/google_workspace_mcp into dpopes_knows_best
2026-02-13 16:14:21 -05:00
Taylor Wilsdon
39e055a350
readme
2026-02-13 16:14:10 -05:00
Taylor Wilsdon
3ea29dc14d
Update core/utils.py
...
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-02-13 16:13:33 -05:00
Taylor Wilsdon
dffdb7ffa7
pr feedback
2026-02-13 16:12:00 -05:00
Taylor Wilsdon
5280f3c634
refac
2026-02-13 16:05:56 -05:00
Taylor Wilsdon
59f8823c6b
refac
2026-02-13 16:04:03 -05:00
Taylor Wilsdon
7f90073fb4
ruff
2026-02-13 15:26:37 -05:00
Taylor Wilsdon
71c054c664
harden security around attachment functionality and explicitly disallow reading sensitive files
2026-02-13 15:24:57 -05:00
Taylor Wilsdon
ffba4c2f29
chore: release v1.11.1
2026-02-13 14:36:08 -05:00
Taylor Wilsdon
08c1682d7c
update dxt
2026-02-13 14:35:54 -05:00
Taylor Wilsdon
b3ee7d0826
chore: release v1.11.0
2026-02-13 14:35:11 -05:00
Taylor Wilsdon
ac10811fa8
update dxt
2026-02-13 14:27:30 -05:00
Taylor Wilsdon
5aec402a07
update dxt
2026-02-13 14:27:25 -05:00
Taylor Wilsdon
a5c1bd7c45
Merge pull request #469 from NxFerrara/fix/oauth21-refresh-store-session
...
fix: add missing token_uri, client_id, client_secret to OAuth 2.1 refresh store_session
2026-02-13 14:26:39 -05:00
Nicholas Xavier Ferrara
eddf940454
fix: add missing token_uri, client_id, client_secret to OAuth 2.1 refresh store_session
...
The store_session call in the OAuth 2.1 credential refresh path (get_credentials)
omits token_uri, client_id, client_secret, and issuer. These are stored as None,
causing subsequent refresh attempts to fail and forcing full re-authentication.
The correct pattern already exists in three other store_session calls in the same
file (lines 151, 522, 750) — this aligns the refresh path to match.
2026-02-13 13:51:47 -05:00
Taylor Wilsdon
0be2776504
v3 auth middleware fix
2026-02-13 10:20:49 -05:00
Taylor Wilsdon
0075e8338f
v3 auth middleware fix
2026-02-13 10:20:39 -05:00
Taylor Wilsdon
49b8238b1c
Merge pull request #463 from taylorwilsdon/alert-autofix-51
...
Potential fix for code scanning alert no. 51: Workflow does not contain permissions
2026-02-13 10:18:46 -05:00
Taylor Wilsdon
ed8718ee09
Merge pull request #467 from taylorwilsdon/cleanup_bodyparams
...
fix: clean up bodyparams logic
2026-02-13 10:18:14 -05:00
Taylor Wilsdon
41b3e3be0d
fix docker
2026-02-13 10:16:47 -05:00
Taylor Wilsdon
9a6d597e69
ruff
2026-02-13 10:15:31 -05:00
Taylor Wilsdon
a336131558
clean up bodyparams logic
2026-02-13 10:07:10 -05:00
Taylor Wilsdon
1a1e64875e
Potential fix for code scanning alert no. 51: Workflow does not contain permissions
...
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2026-02-12 21:11:46 -05:00
Taylor Wilsdon
a3107e900b
Merge pull request #346 from DrFaust92/publish-docker
...
Update GitHub Actions workflows: standardize action versions and add Docker publish workflow
2026-02-12 17:52:10 -05:00
Taylor Wilsdon
320ac1956a
Merge pull request #459 from taylorwilsdon/issues/440
...
fix: Issues/440
2026-02-11 19:05:16 -05:00
Taylor Wilsdon
a24804771a
get idiomatic with it
2026-02-11 19:03:24 -05:00
Taylor Wilsdon
2232094616
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into issues/440
2026-02-11 19:02:00 -05:00
Taylor Wilsdon
ad53debf2f
Merge pull request #432 from Milofax/fix/cross-service-scopes
...
fix(auth): add cross-service Drive scopes for docs and sheets tools
2026-02-11 15:38:14 -05:00
Milofax
821804cf60
style: format DOCS_SCOPES list for ruff compliance
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-11 18:06:19 +01:00
Taylor Wilsdon
d31e2816a4
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into issues/440
2026-02-11 11:58:24 -05:00
Taylor Wilsdon
f6aaf75b4f
remove Field designation
2026-02-11 11:58:19 -05:00
Taylor Wilsdon
ad6b940ccd
Merge pull request #458 from taylorwilsdon/issues/457
...
enh: add message id headers for proper threading in in non-gmail clients
2026-02-11 11:55:52 -05:00
Taylor Wilsdon
8c92390576
add message id headers for proper threading in in non-gmail clients
2026-02-11 11:52:07 -05:00
Taylor Wilsdon
670aca0522
Merge pull request #453 from consciousfounders/fix/ssrf-create-drive-file
...
fix: add SSRF protection to create_drive_file
2026-02-11 11:43:11 -05:00
Taylor Wilsdon
52b0ff8190
Merge pull request #454 from taylorwilsdon/dependabot/uv/uv-d1091effbf
...
Bump cryptography from 46.0.4 to 46.0.5 in the uv group across 1 directory
2026-02-11 10:45:23 -05:00
dependabot[bot]
2002e87690
Bump cryptography in the uv group across 1 directory
...
Bumps the uv group with 1 update in the / directory: [cryptography](https://github.com/pyca/cryptography ).
Updates `cryptography` from 46.0.4 to 46.0.5
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst )
- [Commits](https://github.com/pyca/cryptography/compare/46.0.4...46.0.5 )
---
updated-dependencies:
- dependency-name: cryptography
dependency-version: 46.0.5
dependency-type: direct:production
dependency-group: uv
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-02-11 03:01:14 +00:00
consciousfounders
eab0aa61e8
fix: add SSRF protection to create_drive_file
...
Add _validate_url_not_internal() check for HTTP/HTTPS URLs in
create_drive_file, matching the existing protection in
import_to_google_doc (line 888).
Closes #452
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-10 18:55:30 -08:00
Taylor Wilsdon
78a0db215e
Merge pull request #451 from taylorwilsdon/issues/449
...
fix: prune logs & persist refresh
2026-02-10 17:28:00 -05:00
Taylor Wilsdon
bbee795c16
ruff
2026-02-10 17:22:28 -05:00
Taylor Wilsdon
35fc66f329
persistence call
2026-02-10 17:19:18 -05:00
Taylor Wilsdon
b85b563cdc
stop httpx logging full urls
2026-02-10 17:17:17 -05:00
Taylor Wilsdon
3b75ab11fb
fix 448
2026-02-10 17:00:41 -05:00
Taylor Wilsdon
bc2279bc10
Merge pull request #450 from taylorwilsdon/issues/448
...
fix: cli mode google functions
2026-02-10 16:45:08 -05:00
Taylor Wilsdon
dd248f5af6
garbage import fix
2026-02-10 16:41:21 -05:00
Taylor Wilsdon
487db5c849
sentinel safeguard
2026-02-10 14:25:25 -05:00
Taylor Wilsdon
a4a3bdb5c9
pydantic
2026-02-10 14:20:49 -05:00
Taylor Wilsdon
b0991018ff
refac
2026-02-10 14:15:12 -05:00
Taylor Wilsdon
2bef6d0c0b
fix cli mode
2026-02-10 14:05:56 -05:00
Taylor Wilsdon
58a730f735
Merge pull request #442 from Leandro3996/fix/appscript-get-content-endpoint
...
fix: use getContent() instead of get() for Apps Script file retrieval
2026-02-10 10:36:33 -05:00
Taylor Wilsdon
9bd3bedec6
refac
2026-02-10 10:34:27 -05:00
Taylor Wilsdon
ee2bf4b893
merge
2026-02-10 10:32:03 -05:00
Taylor Wilsdon
53de232639
Merge pull request #444 from taylorwilsdon/issues/443
...
fix issues/443
2026-02-09 14:31:41 -05:00
Taylor Wilsdon
4c09a35c0f
feedback
2026-02-09 14:27:52 -05:00
Taylor Wilsdon
ce9d4190e1
remove beads
2026-02-09 14:23:14 -05:00
Taylor Wilsdon
a897353435
remove beads
2026-02-09 14:22:43 -05:00
Taylor Wilsdon
8eac9c0575
fix issues/443
2026-02-09 14:22:04 -05:00
Leandro3996
2af9ced64d
fix: use getContent() instead of get() for Apps Script file retrieval
...
projects().get() only returns project metadata (title, scriptId, dates),
not file contents. This caused get_script_project to always show an empty
files list and get_script_content to return "File not found" for
container-bound scripts.
The correct method is projects().getContent() which maps to
GET /v1/projects/{scriptId}/content and returns all files with
their source code.
Fixes #441
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-09 13:47:21 -03:00
Taylor Wilsdon
6c32126796
chore: release v1.10.7
2026-02-08 21:09:23 -05:00
Taylor Wilsdon
8fc737fd65
version
2026-02-08 21:09:12 -05:00
Taylor Wilsdon
4811224bd9
chore: release v1.10.6
2026-02-08 21:08:29 -05:00
Taylor Wilsdon
fb3d806de4
release
2026-02-08 21:08:16 -05:00
Taylor Wilsdon
6422f6e149
no publish flow
2026-02-08 21:02:38 -05:00
Taylor Wilsdon
e93ab8b4cb
chore: release v1.10.5
2026-02-08 20:53:17 -05:00
Taylor Wilsdon
06c09fac16
version
2026-02-08 20:53:09 -05:00
Taylor Wilsdon
862c29c597
add server.json
2026-02-08 20:50:36 -05:00
Taylor Wilsdon
8f608cc6b5
chore: release v1.10.4
2026-02-08 20:49:29 -05:00
Taylor Wilsdon
c8f4986ea7
automate publishing to mcp registry
2026-02-08 20:49:18 -05:00
Taylor Wilsdon
4103210f47
publish to mcp registry workflow
2026-02-08 20:32:37 -05:00
Taylor Wilsdon
9e8b918628
chore: release v1.10.3
2026-02-08 20:07:15 -05:00
Taylor Wilsdon
2224e6961d
mcp registry
2026-02-08 20:07:08 -05:00
Taylor Wilsdon
cb0c64e5f8
chore: release v1.10.2
2026-02-08 20:02:48 -05:00
Taylor Wilsdon
d69ce93997
mcp registry
2026-02-08 20:02:33 -05:00
Taylor Wilsdon
31f44fc193
dxt
2026-02-08 19:05:07 -05:00
Taylor Wilsdon
fb053cf473
chore: release v1.10.1
2026-02-08 19:04:35 -05:00
Taylor Wilsdon
09af70bcd3
Merge pull request #438 from taylorwilsdon/issues/366
...
enh: Add paragraph-level list formatting support to Google Docs + Hyperlinks for sheets
2026-02-08 19:04:17 -05:00
Taylor Wilsdon
5340887658
refac
2026-02-08 19:00:52 -05:00
Taylor Wilsdon
47443730df
refac
2026-02-08 18:53:47 -05:00
Taylor Wilsdon
be6a42e6e5
refac
2026-02-08 18:15:36 -05:00
Taylor Wilsdon
02a0d214e5
beads
2026-02-08 17:44:08 -05:00
Taylor Wilsdon
5646672ded
hyperlink support
2026-02-08 17:41:15 -05:00
Taylor Wilsdon
4112e67df2
nesting for paragraph styling
2026-02-08 17:38:20 -05:00
Taylor Wilsdon
ad25ec304f
Merge branch 'issues/366' of github.com:taylorwilsdon/google_workspace_mcp into issues/366
2026-02-08 16:12:25 -05:00
Taylor Wilsdon
b6ead2e23c
pr feedback
2026-02-08 16:09:37 -05:00
Taylor Wilsdon
f0d442145b
Delete docs/README.md
2026-02-08 16:08:01 -05:00
Taylor Wilsdon
464bd8090f
Add paragraph-level list formatting support to Google Docs
...
Enhanced the update_paragraph_style tool to support creating bulleted and
numbered lists with nested indentation levels (0-8). This enables agents to
create well-structured documents that match professional document styles.
Changes:
- Enhanced update_paragraph_style tool with:
- create_list parameter: Create bulleted (UNORDERED) or numbered (ORDERED) lists
- list_nesting_level parameter: Support nested list items (0-8 levels)
- Updated create_bullet_list_request helper to accept nesting_level parameter
- Updated documentation in README.md, docs/README.md, and docs/README_NEW.md
- Tool remains in Extended tier as defined in tool_tiers.yaml
This addresses the feature request to expose paragraph-level formatting
operations (named styles, bullets, indentation) that were previously missing
from the character-level modify_doc_text tool.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-02-08 15:42:58 -05:00
Taylor Wilsdon
40af5f1528
Merge pull request #437 from taylorwilsdon/copilot/fix-invalid-path-saving-pc
...
Remove Windows-incompatible filename with asterisk character
2026-02-08 14:28:50 -05:00
copilot-swe-agent[bot]
aff64e7e79
Remove Windows-incompatible filename and exclude agent instructions from distribution
...
Co-authored-by: taylorwilsdon <6508528+taylorwilsdon@users.noreply.github.com >
2026-02-08 19:27:38 +00:00
copilot-swe-agent[bot]
9ab27857be
Initial plan
2026-02-08 19:26:17 +00:00
Gigi Sayfan
34957de2e4
Add hyperlink support to modify_doc_text
2026-02-07 13:44:09 -08:00
Taylor Wilsdon
79a578eda9
Merge pull request #435 from taylorwilsdon/issues/422
...
enh: add drive perms tool
2026-02-07 14:19:53 -05:00
Taylor Wilsdon
771de29288
fixes
2026-02-07 14:18:10 -05:00
Taylor Wilsdon
67dbede82a
ruff
2026-02-07 13:52:55 -05:00
Taylor Wilsdon
3e3af2b5bd
add drive perms tool
2026-02-07 13:49:31 -05:00
Taylor Wilsdon
5ed87d8d10
dxt
2026-02-07 13:44:24 -05:00
Taylor Wilsdon
60ab4f171d
chore: release v1.10.0
2026-02-07 13:43:54 -05:00
Taylor Wilsdon
d8f3d08b2d
Merge pull request #430 from taylorwilsdon/external-oauth-clean
...
Fix: External Oauth Token Handling
2026-02-07 13:40:09 -05:00
Taylor Wilsdon
72f06d5853
refac
2026-02-07 13:35:53 -05:00
Taylor Wilsdon
24dca13425
refac
2026-02-07 13:35:32 -05:00
Taylor Wilsdon
dbab29d356
fix #433
2026-02-07 13:29:22 -05:00
Milofax
d91070502f
fix(auth): add cross-service Drive scopes for docs and sheets tools
...
Several docs tools (search_docs, get_doc_content, list_docs_in_folder,
export_doc_to_pdf) and sheets tools (list_spreadsheets) internally use
the Google Drive API but only receive docs/sheets-specific OAuth scopes
when configured with `--tools docs sheets` (without `drive`).
This adds the minimal required Drive scopes as cross-service dependencies:
- docs: drive.readonly (metadata queries) + drive.file (PDF export)
- sheets: drive.readonly (spreadsheet listing)
This follows the existing pattern where appscript already includes
DRIVE_FILE_SCOPE for its Drive API dependency.
The alternative workaround of adding `--tools drive` exposes 14
full-access Drive tools which is undesirable from a security perspective.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-07 12:19:05 +01:00
Taylor Wilsdon
bae425f754
refac
2026-02-06 20:33:59 -05:00
Taylor Wilsdon
88542afe31
refac
2026-02-06 14:45:15 -05:00
Taylor Wilsdon
fab19d69e0
uv
2026-02-06 14:40:31 -05:00
Taylor Wilsdon
ece2ee12d7
fix
2026-02-06 14:40:16 -05:00
Taylor Wilsdon
a0a0a9667f
Merge pull request #416 from ugoano/feature/enhanced-sheets-formatting
...
feat(sheets): add text wrapping, alignment, and font formatting to format_sheet_range
2026-02-06 14:40:08 -05:00
Taylor Wilsdon
b30fc1c83d
ruff
2026-02-06 14:35:03 -05:00
Taylor Wilsdon
b0743ec923
fix import
2026-02-06 14:33:24 -05:00
Taylor Wilsdon
1877d70077
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into external-oauth-clean
2026-02-06 12:50:07 -05:00
Taylor Wilsdon
8fee8eab1f
Merge pull request #425 from taylorwilsdon/jwt_handling_enh
...
enh: jwt handling improvements
2026-02-06 12:49:23 -05:00
Alexander
b7d8f61cf7
Update external_oauth_provider.py
...
avoided depreciated date time format
2026-02-06 12:10:43 -05:00
Taylor Wilsdon
2df308c7f7
ruff
2026-02-06 10:59:46 -05:00
Taylor Wilsdon
0f80ce1a4d
Revert "fix: address Copilot review feedback on PR #416 "
...
This reverts commit e5a746d8ca .
2026-02-06 10:54:44 -05:00
Taylor Wilsdon
c7d677ffff
refac _find_any_credentials to tuple for legacy mode refresh fix
2026-02-06 10:53:59 -05:00
Francesco Mucio
d6e9e9c7a3
style: apply ruff format to create_drive_folder changes
2026-02-06 11:38:02 +01:00
Francesco Mucio
cc2b23d3db
feat(drive): add create_drive_folder tool and unit test
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-02-06 11:32:19 +01:00
Arno
e5a746d8ca
fix: address Copilot review feedback on PR #416
...
- Use consistent terminology in confirmation message ("background color"
to match "text color")
- Tighten test assertions for invalid parameter validation to check
parameter name and all allowed values instead of loose substring matches
- Remove unrelated calendar_tools.py changes (lambda reformatting, guest
permissions, query_freebusy) that belong in separate PRs
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-06 00:01:53 +00:00
Taylor Wilsdon
817db85522
refac
2026-02-05 14:30:57 -05:00
Taylor Wilsdon
8cdd674a0c
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into feature/enhanced-sheets-formatting
2026-02-05 14:24:11 -05:00
Taylor Wilsdon
885a413a5a
ruff
2026-02-05 11:31:44 -05:00
Taylor Wilsdon
13b6092cda
jwt handling improvements
2026-02-05 11:17:59 -05:00
Taylor Wilsdon
9f16273cb8
Update README.md
2026-02-05 11:07:14 -05:00
gpminsuk
4f6b64c9bd
Rename *.instructions.md to general.instructions.md
2026-02-04 16:39:06 -08:00
gpminsuk
3d8bacaf4f
feat: Add USER_GOOGLE_EMAIL to server instructions for single-user mode
...
When USER_GOOGLE_EMAIL environment variable is set, include it in the MCP
server instructions so that AI clients know which email to use for
Google Workspace tools without asking the user.
This improves the experience for desktop apps that handle OAuth externally
and pass credentials via GOOGLE_MCP_CREDENTIALS_DIR + USER_GOOGLE_EMAIL.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-04 12:35:42 -08:00
Arno
a8ed232050
fix: apply ruff formatting to sheets formatting feature
...
Fixed formatting issues in:
- gcalendar/calendar_tools.py
- gsheets/sheets_tools.py
- tests/gsheets/test_format_sheet_range.py
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-02-04 09:16:10 +00:00
Alexander
75eb8fa182
External oauth bugfix ( #7 )
...
* external oauth bugfix
* cleanup for non-essential expiry logic
* default session time addition
* ruff audit
2026-02-03 14:01:16 -05:00
Ugo Anomelechi
4cecad7d8c
docs: add format_sheet_range to main README.md
2026-02-02 14:22:49 +00:00
Ugo Anomelechi
6c2a4a8127
feat(sheets): add text wrapping, alignment, and font formatting to format_sheet_range
...
Extends format_sheet_range with new parameters:
- wrap_strategy: WRAP, CLIP, OVERFLOW_CELL
- horizontal_alignment: LEFT, CENTER, RIGHT
- vertical_alignment: TOP, MIDDLE, BOTTOM
- bold: boolean for bold text
- italic: boolean for italic text
- font_size: integer for font size in points
All parameters work alongside existing color and number format options.
Includes 21 unit tests covering all new functionality.
Added to extended tier in tool_tiers.yaml.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-02 14:18:53 +00:00
xuiltul
57daf2ab30
fix: use absolute path for attachment storage and improve filename resolution
...
Fixes #327
- Use absolute path (~/.workspace-mcp/attachments/) instead of relative
./tmp/attachments to avoid polluting working directories
- Make storage directory configurable via WORKSPACE_ATTACHMENT_DIR env var
- Return file path from save_attachment() instead of UUID for direct
filesystem access (useful in stdio mode where HTTP URLs are unavailable)
- Preserve original filenames with UUID suffix for uniqueness
- Use format="full" instead of format="metadata" when fetching attachment
info, as metadata format doesn't include attachmentId in parts
- Add multi-level filename matching: exact attachmentId → size-based
fallback → single-attachment fallback (handles ephemeral IDs)
2026-02-02 16:43:34 +09:00
Taylor Wilsdon
802ea7861c
Update README.md
2026-02-01 18:01:57 -05:00
Taylor Wilsdon
3c1fb7ac55
Update README.md
2026-02-01 15:42:04 -05:00
Taylor Wilsdon
a95e6d1d83
dxt
2026-02-01 15:38:57 -05:00
Taylor Wilsdon
47190df2df
chore: release v1.9.0
2026-02-01 15:37:36 -05:00
Taylor Wilsdon
4bc30960ef
Merge pull request #324 from leolln/feat/docs-styling-and-import
...
feat(docs,drive): add styling tools and import_to_google_doc
2026-02-01 14:53:12 -05:00
Taylor Wilsdon
0bbb8ec4da
readme
2026-02-01 14:52:23 -05:00
Taylor Wilsdon
57e1d41c55
refac into single component
2026-02-01 14:47:32 -05:00
Taylor Wilsdon
1197518473
ruff
2026-02-01 12:07:00 -05:00
Taylor Wilsdon
cfab4a59f7
remove leo stuff
2026-02-01 12:06:49 -05:00
Taylor Wilsdon
f8748ccd10
uv
2026-02-01 11:51:25 -05:00
Taylor Wilsdon
4610bc3566
Merge pull request #413 from taylorwilsdon/feature/add-host-argument
...
enh: Add configurable host env var
2026-02-01 11:47:57 -05:00
Taylor Wilsdon
d7e92cc90c
Merge branch 'main' of https://github.com/taylorwilsdon/google_workspace_mcp into feature/add-host-argument
2026-02-01 11:34:23 -05:00
Taylor Wilsdon
c1bcff95a9
refac to env var
2026-02-01 11:34:21 -05:00
Taylor Wilsdon
04ff5b40b5
Merge pull request #412 from taylorwilsdon/cli_mode
...
feat: CLI mode for full Workspace control
2026-02-01 11:33:06 -05:00
Taylor Wilsdon
6be03d62ab
refac
2026-02-01 11:31:26 -05:00
Taylor Wilsdon
f8f50a45e3
ruff
2026-02-01 11:28:13 -05:00
Taylor Wilsdon
50fb570c69
start minimal server on invocation
2026-02-01 11:27:08 -05:00
Taylor Wilsdon
e8c929e5e4
Merge main into cli_mode: resolve conflict keeping both --cli and --read-only args
2026-02-01 11:21:27 -05:00
Taylor Wilsdon
1c539ff9f7
add cli mode
2026-02-01 11:20:17 -05:00
Taylor Wilsdon
ef8f09ad65
Merge branch 'main' of https://github.com/taylorwilsdon/google_workspace_mcp into feature/add-host-argument
2026-02-01 11:06:04 -05:00
Taylor Wilsdon
c02904c7c4
Merge pull request #334 from DixonDs/feature/read-only-mode
...
feat: implement --read-only mode with tool filtering
2026-02-01 11:05:36 -05:00
Taylor Wilsdon
a23ef1135b
ruff
2026-02-01 10:56:02 -05:00
Taylor Wilsdon
b2c7cf55f5
refac
2026-02-01 10:54:59 -05:00
Taylor Wilsdon
9e5832053c
readme
2026-02-01 10:44:34 -05:00
Roland Huß
a1c5c63ca0
Add --host argument for configurable bind address
...
Add a --host command line argument to allow configuring which address
the HTTP server binds to. This is useful for containerized deployments
where a TLS-terminating sidecar (like nginx) handles external traffic,
and the MCP server should only be accessible via localhost.
Use case: Kubernetes deployment with nginx sidecar for HTTPS termination.
The MCP server binds to 127.0.0.1 while nginx handles TLS on the pod's
external interface, providing defense-in-depth security.
Default behavior remains unchanged (0.0.0.0).
Assisted-By: Claude Code
2026-02-01 10:32:17 +01:00
Taylor Wilsdon
eca3444777
merge upstream
2026-01-31 13:14:27 -05:00
Taylor Wilsdon
4dfcf8d69c
Merge pull request #407 from chetan/fix/service-mem-leak
...
fix/service mem leak
2026-01-30 12:45:16 -05:00
Taylor Wilsdon
6cf5911e9f
Create *.instructions.md
2026-01-30 11:56:08 -05:00
Taylor Wilsdon
d4c55795b1
dxt
2026-01-30 11:39:54 -05:00
Taylor Wilsdon
5394bfa5d5
chore: release v1.8.3
2026-01-30 11:39:08 -05:00
Taylor Wilsdon
390931c8c5
Merge pull request #352 from peterhartree/feat/gmail-from-name
...
feat(gmail): Add from_name parameter for sender display name
2026-01-30 11:38:50 -05:00
Taylor Wilsdon
ddcc45d026
ruff
2026-01-30 10:47:54 -05:00
Taylor Wilsdon
7bf67ecbb9
feedbvack
2026-01-30 10:43:04 -05:00
Taylor Wilsdon
7910cfe6a3
rfc 5322
2026-01-30 10:33:49 -05:00
Chetan Sarva
da182ed39d
cleanup: ruff
2026-01-30 10:27:11 -05:00
Taylor Wilsdon
054780664d
ruff
2026-01-30 10:20:05 -05:00
Chetan Sarva
59873342e9
fix: memory leak in external OAuth 2.1 session storage
...
In external OAuth 2.1 mode, skip session storage entirely.
The access token arrives fresh with every request from the external
provider, there's no refresh_token, and the mcp_session_id is
ephemeral (new UUID per request in stateless mode). Storing these
transient tokens creates unbounded dict growth (memory leak) with
entries that are never cleaned up or reused.
Credit to @ljagiello in PR #383
Co-authored-by: lukasz@jagiello.org
2026-01-30 10:17:22 -05:00
Taylor Wilsdon
e12599773c
Merge pull request #386 from karbassi/feat/contacts-api
...
feat: add Google Contacts (People API) support
2026-01-30 10:11:36 -05:00
Taylor Wilsdon
238b9a6830
add readme
2026-01-30 10:10:44 -05:00
Taylor Wilsdon
99e86d0198
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into feat/contacts-api
2026-01-30 10:04:17 -05:00
Chetan Sarva
37d1256efc
fix: always close services (to avoid mem leaks)
2026-01-30 10:03:44 -05:00
Taylor Wilsdon
c5fd6a2b7f
Merge pull request #406 from chetan/fix/external-auth-token
...
fix: subclass AccessToken with custom fields
2026-01-30 10:03:30 -05:00
Taylor Wilsdon
c60f679a3f
cleanup
2026-01-30 10:02:54 -05:00
Taylor Wilsdon
61e91cd4d1
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into fix/external-auth-token
2026-01-30 09:47:48 -05:00
Taylor Wilsdon
663950eeaf
Update README.md
2026-01-30 09:05:14 -05:00
Taylor Wilsdon
6cbe8e266a
Update README.md
2026-01-30 09:04:55 -05:00
Taylor Wilsdon
6eb39b9266
Update README.md
2026-01-30 09:04:38 -05:00
Taylor Wilsdon
0fcec83579
Update README.md
2026-01-30 09:04:00 -05:00
Taylor Wilsdon
cac3378cf6
Merge pull request #381 from songmeo/main
...
Send emails with attachments
2026-01-29 19:44:35 -05:00
Taylor Wilsdon
46eeeb6524
fixes
2026-01-29 19:43:21 -05:00
Taylor Wilsdon
736f2756d6
fixes
2026-01-29 19:43:09 -05:00
Taylor Wilsdon
e99479b63c
ruff
2026-01-29 19:23:23 -05:00
Taylor Wilsdon
3246f21ef0
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into songmeo/main
2026-01-29 19:22:48 -05:00
Chetan Sarva
6cdbc7706a
fix: subclass AccessToken with custom fields
2026-01-29 16:06:00 -05:00
Taylor Wilsdon
24dd57a8ad
fix yaml format
2026-01-29 12:31:43 -05:00
Taylor Wilsdon
32c4a99af4
dxt
2026-01-29 11:22:25 -05:00
Taylor Wilsdon
068657b8d8
chore: release v1.8.2
2026-01-29 11:21:48 -05:00
Taylor Wilsdon
ae2d75ad0b
Merge pull request #405 from taylorwilsdon/external_oauth-fix
...
fix: authorization resource for EXTERNAL_OAUTH21_PROVIDER=true
2026-01-29 11:12:01 -05:00
Taylor Wilsdon
0d8dc4c935
merge
2026-01-29 10:59:09 -05:00
Taylor Wilsdon
8bfbeca1e3
cleanup
2026-01-29 10:51:37 -05:00
Taylor Wilsdon
a96ad430ff
add checks for maintainer access and PR template
2026-01-29 10:51:37 -05:00
Ugo Anomelechi
d7c6e35c0e
docs: Add batch_update_form to tool tiers and README documentation
...
Add batch_update_form to the Complete tier in tool_tiers.yaml and
document it in both README files as requested in PR review.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-29 10:51:37 -05:00
Ugo Anomelechi
47959d2ac7
feat(forms): Add batch_update_form tool for Google Forms API
...
Add batch_update_form MCP tool that exposes the Google Forms
batchUpdate API endpoint. Supports createItem, updateItem,
deleteItem, moveItem, updateFormInfo, and updateSettings operations.
Includes _batch_update_form_impl internal function for testability
and 6 unit tests covering multiple requests, single request, empty
replies, missing replies key, URL generation, and mixed reply types.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-29 10:51:37 -05:00
ryo
1c559dca6b
Apply suggestions from code review
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-01-29 10:51:37 -05:00
Taylor Wilsdon
6464c3c123
Merge pull request #390 from ugoano/feature/forms-batch-update
...
feat(forms): Add batch_update_form tool for Google Forms API
2026-01-28 16:54:11 -05:00
Taylor Wilsdon
0ddc73149b
pull in main
2026-01-28 16:48:46 -05:00
Taylor Wilsdon
47b7e5f5cb
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into feature/forms-batch-update
2026-01-28 16:48:38 -05:00
Taylor Wilsdon
051c9d7c11
add checks for maintainer access and PR template
2026-01-28 16:47:14 -05:00
Taylor Wilsdon
6bb10b2596
ruff
2026-01-28 16:39:53 -05:00
ryo
de461c7c7f
fix the authorization resource for EXTERNAL_OAUTH21_PROVIDER=true
2026-01-28 16:23:14 -05:00
Taylor Wilsdon
94825ac415
dxt
2026-01-28 14:32:59 -05:00
Taylor Wilsdon
9f159083f9
chore: release v1.8.1
2026-01-28 14:30:15 -05:00
Taylor Wilsdon
f08aa39101
Merge pull request #400 from taylorwilsdon/fastmcp_oauth_fix
...
fix: fix for fastmcp v2.14.4 + oauth access token retrieval
2026-01-28 14:29:44 -05:00
Taylor Wilsdon
f36bcdd335
ruff
2026-01-28 14:28:28 -05:00
Taylor Wilsdon
e4edc111df
fix
2026-01-28 14:22:02 -05:00
Taylor Wilsdon
7da6f34fc7
ruff fmt
2026-01-28 14:20:17 -05:00
Taylor Wilsdon
5365584efd
simplify flow
2026-01-28 14:12:37 -05:00
Taylor Wilsdon
d74d31ced7
ruff
2026-01-28 13:07:03 -05:00
Taylor Wilsdon
e7fe1ef2f9
remove unused import
2026-01-28 13:01:16 -05:00
Taylor Wilsdon
e9ff13f385
reorder
2026-01-28 12:59:58 -05:00
Taylor Wilsdon
ca627c857f
fix for fastmcp v2.14.4
2026-01-28 12:55:27 -05:00
Taylor Wilsdon
2442736749
Merge pull request #399 from adrianlaureda/fix/tool-tiers-yaml-indentation
...
Fix YAML indentation error in tool_tiers.yaml
2026-01-28 12:00:40 -05:00
Huong Pham
fe497a86fe
Merge branch 'main' into main
2026-01-28 13:39:37 +02:00
adrianlaureda
4b44ed5a6d
Fix YAML indentation error in tool_tiers.yaml
...
The `extended` key under `calendar` was missing proper indentation,
causing YAML parsing errors when loading tools with `--tool-tier complete`.
Fixes #398
2026-01-28 07:37:19 +01:00
Taylor Wilsdon
5fac9beb51
add dxt
2026-01-27 20:12:52 -05:00
Taylor Wilsdon
fbb90fe2f5
chore: release v1.8.0
2026-01-27 20:11:51 -05:00
Taylor Wilsdon
dba9cb6c21
Merge pull request #349 from jrank/feature/freebusy-api
...
Add FreeBusy API support to Google Calendar tools
2026-01-27 20:10:51 -05:00
Ugo Anomelechi
b7a2f08a76
docs: Add batch_update_form to tool tiers and README documentation
...
Add batch_update_form to the Complete tier in tool_tiers.yaml and
document it in both README files as requested in PR review.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-28 00:54:47 +00:00
Taylor Wilsdon
1f1a8ff977
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp
2026-01-27 19:32:48 -05:00
Taylor Wilsdon
53109b9a50
update readme and block single user mode + oauth to avoid user confusion
2026-01-27 19:32:45 -05:00
Taylor Wilsdon
8c007e2a9b
Update core/tool_tiers.yaml
2026-01-27 19:31:58 -05:00
Taylor Wilsdon
4a9f574d23
Merge pull request #350 from jrank/feature/guest-permissions
...
Add guest permission controls to calendar events
2026-01-27 19:29:01 -05:00
Taylor Wilsdon
2463778deb
disclaimers
2026-01-27 19:20:52 -05:00
Taylor Wilsdon
8184a948ca
Merge pull request #394 from taylorwilsdon/pr_fix_start_google_oauth
...
enh: Remove start_google_auth when OAuth2.1 enabled
2026-01-27 18:48:23 -05:00
Taylor Wilsdon
4ced1c42d0
cleanup
2026-01-27 18:48:07 -05:00
Taylor Wilsdon
be0308eba8
fix
2026-01-27 18:41:32 -05:00
Taylor Wilsdon
cea593ecb2
Merge pull request #393 from taylorwilsdon/issues/380
...
fix: issues/380
2026-01-27 17:59:03 -05:00
Taylor Wilsdon
7a3ba9aa47
ensures that when OAuth tokens expire or are revoked, FastMCP will properly receive a GoogleAuthenticationError exception
2026-01-27 17:57:59 -05:00
Taylor Wilsdon
d0b1bccc8a
Merge pull request #392 from taylorwilsdon/issues/362
...
enh: Copy Drive File - supports any drive file
2026-01-27 17:50:24 -05:00
Taylor Wilsdon
76a6ec7b8e
Update gdrive/drive_tools.py
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-01-27 17:49:00 -05:00
Taylor Wilsdon
ec7a55dc11
update readme, tool tiers
2026-01-27 17:46:09 -05:00
Taylor Wilsdon
ea9405ebe4
add copy functionality
2026-01-27 17:44:20 -05:00
Taylor Wilsdon
ce81f725c7
Merge pull request #391 from taylorwilsdon/copilot/fix-pdf-export-issue
...
Add PDF export support for Google Sheets
2026-01-27 17:23:58 -05:00
copilot-swe-agent[bot]
5c1fe04f16
Add PDF export support for Google Sheets
...
Co-authored-by: taylorwilsdon <6508528+taylorwilsdon@users.noreply.github.com >
2026-01-27 22:20:02 +00:00
copilot-swe-agent[bot]
72455b22bc
Initial plan
2026-01-27 22:17:50 +00:00
Taylor Wilsdon
ef820972aa
Merge pull request #388 from taylorwilsdon/dependabot/uv/uv-3adca6f4ae
...
Bump the uv group across 1 directory with 2 updates
2026-01-27 17:01:06 -05:00
Ugo Anomelechi
134cffc88e
feat(forms): Add batch_update_form tool for Google Forms API
...
Add batch_update_form MCP tool that exposes the Google Forms
batchUpdate API endpoint. Supports createItem, updateItem,
deleteItem, moveItem, updateFormInfo, and updateSettings operations.
Includes _batch_update_form_impl internal function for testability
and 6 unit tests covering multiple requests, single request, empty
replies, missing replies key, URL generation, and mixed reply types.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-27 16:47:47 +00:00
dependabot[bot]
5ff1ead0fb
Bump the uv group across 1 directory with 2 updates
...
Bumps the uv group with 2 updates in the / directory: [protobuf](https://github.com/protocolbuffers/protobuf ) and [python-multipart](https://github.com/Kludex/python-multipart ).
Updates `protobuf` from 6.33.2 to 7.34.0rc1
- [Release notes](https://github.com/protocolbuffers/protobuf/releases )
- [Commits](https://github.com/protocolbuffers/protobuf/commits )
Updates `python-multipart` from 0.0.21 to 0.0.22
- [Release notes](https://github.com/Kludex/python-multipart/releases )
- [Changelog](https://github.com/Kludex/python-multipart/blob/master/CHANGELOG.md )
- [Commits](https://github.com/Kludex/python-multipart/compare/0.0.21...0.0.22 )
---
updated-dependencies:
- dependency-name: protobuf
dependency-version: 7.34.0rc1
dependency-type: indirect
dependency-group: uv
- dependency-name: python-multipart
dependency-version: 0.0.22
dependency-type: indirect
dependency-group: uv
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-27 00:10:27 +00:00
Ali Karbassi
eed562bf9f
feat: add Google Contacts (People API) support
...
Add 16 MCP tools for managing Google Contacts via the People API:
Core tier:
- list_contacts, get_contact, search_contacts, create_contact
Extended tier:
- update_contact, delete_contact, list_contact_groups, get_contact_group
Complete tier:
- batch_create_contacts, batch_update_contacts, batch_delete_contacts
- create_contact_group, update_contact_group, delete_contact_group
- modify_contact_group_members
Includes:
- OAuth scopes for contacts and contacts.readonly
- People API service configuration
- Tool tier definitions
- Unit tests for helper functions
2026-01-25 01:13:49 -06:00
Song Meo
5df04b6d28
Merge upstream/main: integrate Send As feature with attachment support
2026-01-23 20:24:37 +02:00
Song Meo
7a724650b3
Fix docstring to match Optional type annotation for attachments
2026-01-23 20:21:00 +02:00
Song Meo
2266e7da58
Address Copilot review: sanitize filename and fix mutable default
2026-01-23 20:16:55 +02:00
Song Meo
21bac3a713
Fix attachment parameter type inconsistency in send_gmail_message
2026-01-23 20:12:42 +02:00
owengo
57d140d5aa
Update core/tool_registry.py
...
Copilot fix
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-01-23 18:40:17 +01:00
Taylor Wilsdon
af17085509
Merge pull request #379 from martinschenk/feature/gmail-send-as-support
...
feat(gmail): Add Send As support for send_gmail_message and draft_gmail_message
2026-01-23 12:20:39 -05:00
Song Meo
edeeaa82bc
Add attachment support to Gmail send and draft functions
...
- Add file path and base64 content attachment support
- Auto-detect MIME types from file extensions
- Support attachments in both send_gmail_message and draft_gmail_message
- Accept attachments via 'path' (file path) or 'content' (base64) + 'filename'
- Note: FastMCP schema generation issue prevents List[Dict] from appearing in MCP tool schema
2026-01-23 02:33:58 +02:00
Song Meo
c2ddb2efaf
feat(drive): add PDF export support for Google Sheets
...
- Add export_format='pdf' option for Google Sheets in get_drive_file_download_url
- Previously only supported csv and xlsx formats for Sheets
- Update docstring and parameter documentation
- Tested with production Google Sheet and confirmed working
2026-01-23 02:33:58 +02:00
Martin Schenk
e78fecd8c1
feat(gmail): Add Send As support for send_gmail_message and draft_gmail_message
...
- Add optional from_email parameter to send_gmail_message
- Add optional from_email parameter to draft_gmail_message
- Allows sending/drafting from configured Gmail Send As aliases
- Falls back to authenticated user email if not specified
- Requires Send As alias to be configured in Gmail settings (Settings > Accounts > Send mail as)
- Updated docstrings with new parameter documentation and examples
This enables users to send emails from different email addresses configured
in their Gmail "Send mail as" settings, which is useful for users who manage
multiple email identities through a single Gmail account.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-22 19:35:55 +01:00
Taylor Wilsdon
e6e8aba754
Merge pull request #377 from jonhearsch/claude/fix-gmail-filters-tool-tiers-C2iS6
...
fix: Add missing Gmail filter tools to tool_tiers.yaml
2026-01-22 13:35:51 -05:00
Taylor Wilsdon
a377c15848
Merge pull request #378 from taylorwilsdon/dependabot/uv/uv-0ade37cc74
...
Bump the uv group across 1 directory with 2 updates
2026-01-22 13:34:43 -05:00
Taylor Wilsdon
a27aa96f84
Merge pull request #374 from cvrt-gmbh/main
...
fix: respect WORKSPACE_MCP_CREDENTIALS_DIR for multi-account support
2026-01-22 13:34:28 -05:00
cvrt-jh
8d291018e8
Delete PROGRESS.md
2026-01-22 18:48:50 +01:00
cvrt-jh
bbef6d5ec1
Delete AGENTS.md
2026-01-22 18:48:38 +01:00
dependabot[bot]
dccb8bc8c1
Bump the uv group across 1 directory with 2 updates
...
Bumps the uv group with 2 updates in the / directory: [pyasn1](https://github.com/pyasn1/pyasn1 ) and [urllib3](https://github.com/urllib3/urllib3 ).
Updates `pyasn1` from 0.6.1 to 0.6.2
- [Release notes](https://github.com/pyasn1/pyasn1/releases )
- [Changelog](https://github.com/pyasn1/pyasn1/blob/main/CHANGES.rst )
- [Commits](https://github.com/pyasn1/pyasn1/compare/v0.6.1...v0.6.2 )
Updates `urllib3` from 2.6.2 to 2.6.3
- [Release notes](https://github.com/urllib3/urllib3/releases )
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst )
- [Commits](https://github.com/urllib3/urllib3/compare/2.6.2...2.6.3 )
---
updated-dependencies:
- dependency-name: pyasn1
dependency-version: 0.6.2
dependency-type: indirect
dependency-group: uv
- dependency-name: urllib3
dependency-version: 2.6.3
dependency-type: indirect
dependency-group: uv
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-22 17:45:57 +00:00
Taylor Wilsdon
0c09710aeb
Merge pull request #357 from sam-ent/feature/apps-script-integration
...
Add Google Apps Script API integration
2026-01-22 12:44:52 -05:00
Claude
39c9faca1b
fix: Add missing Gmail filter tools to tool_tiers.yaml
...
The list_gmail_filters, create_gmail_filter, and delete_gmail_filter
tools were implemented in gmail_tools.py but not exposed in the
tool_tiers.yaml configuration, causing them to be filtered out when
using the tier-based tool loading system.
Also added get_gmail_attachment_content which was similarly missing.
Changes:
- Added get_gmail_attachment_content to extended tier
- Added list_gmail_filters to extended tier
- Added create_gmail_filter to extended tier
- Added delete_gmail_filter to extended tier
- Removed duplicate get_gmail_attachment_content entry
2026-01-22 04:59:58 +00:00
cvrt-jh
5c26b9f815
docs: update progress with PR status and cleanup todos
2026-01-20 21:39:16 +01:00
cvrt-jh
e930874ed9
docs: add project documentation and progress tracking
2026-01-20 17:12:12 +01:00
cvrt-jh
e98bb7115d
fix: respect WORKSPACE_MCP_CREDENTIALS_DIR for multi-account support
...
- Add WORKSPACE_MCP_CREDENTIALS_DIR as primary env var (preferred)
- Keep GOOGLE_MCP_CREDENTIALS_DIR for backward compatibility
- Add os.path.expanduser() to handle ~ in paths
- Add logging to show which credentials directory is being used
- Display credentials directory in startup configuration
This enables running multiple MCP instances with different Google
accounts by configuring separate credential directories.
Fixes #373
2026-01-20 17:07:01 +01:00
leolln
c22ca65736
chore: update uv.lock after rebase to v1.7.1
...
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-01-16 17:49:13 +00:00
leolln
a9567b6f17
feat: add leo custom tier for personalized tool selection
...
- Add 'leo' tier as standalone (non-cumulative) tier
- Configure leo tier with curated tools for gmail, drive, docs, slides
- Updated tool_tier_loader to support standalone tiers
- Removed deprecated tools from leo tier (format_text_style, create_list, remove_list_formatting)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-01-16 17:49:13 +00:00
leolln
08f8ad5265
refactor(docs): remove redundant formatting tools
...
Per maintainer feedback (@taylorwilsdon):
- Delete format_text_style (redundant with modify_doc_text)
- Delete create_list (redundant with insert_doc_elements)
- Delete remove_list_formatting (use batch_update_doc)
- Delete _hex_to_rgb helper (use existing _normalize_color)
Preserved unique tools:
- format_paragraph_style (paragraph-level properties)
- apply_heading_style (named styles H1-H6)
- import_to_google_doc (new import feature)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-01-16 17:47:28 +00:00
leolln
6678b96d65
feat(docs,drive): add styling tools and import_to_google_doc
...
Google Docs styling tools:
- format_text_style: Rich text formatting (bold, italic, underline, colors, fonts)
- format_paragraph_style: Paragraph formatting (alignment, spacing, indentation)
- apply_heading_style: Apply H1-H6 heading styles using namedStyleType
- create_list: Convert paragraphs to bullet/numbered lists with visual indentation
- remove_list_formatting: Remove list formatting from paragraphs
Google Drive import tool:
- import_to_google_doc: Import files (MD, DOCX, TXT, HTML, RTF, ODT) as native
Google Docs with automatic format conversion by Google Drive
Security:
- SSRF protection for file_url parameter (blocks localhost and private IPs)
All tools include input validation, error handling, and comprehensive docstrings.
2026-01-16 17:47:28 +00:00
sam-ent
03c48c054a
style: fix ruff lint errors and format
2026-01-15 21:01:45 +00:00
sam-ent
818efdc0b8
Add version management, metrics, and trigger code generation tools
...
New tools added:
- delete_script_project: Full CRUD support for script projects
- list_versions: List all versions of a script
- create_version: Create immutable version snapshots
- get_version: Get details of a specific version
- get_script_metrics: Get execution analytics (active users, executions, failures)
- generate_trigger_code: Generate Apps Script code for time-based and event triggers
Changes:
- Updated auth/scopes.py with script.metrics scope and drive.file for delete
- Updated core/tool_tiers.yaml with new tools in core and extended tiers
- Updated gappsscript/README.md with new features documentation
- Added 8 new unit tests (18 total)
This brings total Apps Script tools from 11 to 17, covering the complete REST API.
2026-01-15 05:54:01 +00:00
sam-ent
58efda24eb
Fix unit test mock and remove unused variables
...
- Fix test_create_deployment to mock versions().create() call
- Remove unused process_type and user_access_level variables
2026-01-14 01:01:36 +00:00
sam-ent
089e5a088c
Add missing OAuth scopes and improve documentation
...
Changes:
- Add script.processes and drive.readonly scopes to SCRIPT_SCOPES
(required for list_script_processes and list_script_projects)
- Update README.md with detailed Google Cloud setup instructions
- Add run_script_function API Executable deployment documentation
- Create TESTING.md with unit test and E2E testing guides
- Update manual_test.py to use configurable credential paths
- Add headless Linux authentication flow documentation
2026-01-14 01:01:36 +00:00
sam-ent
aa07177230
Update unit test for list_script_projects Drive API change
...
The function now uses Drive API (files.list) instead of Script API
(projects.list), so the mock needs to reflect this change.
2026-01-14 01:01:36 +00:00
sam-ent
d25b8b4a1c
Fix Apps Script issues found during E2E testing
...
apps_script_tools.py:
- list_script_projects: Use Drive API instead of non-existent Script API method
- create_deployment: Create version first before creating deployment
manual_test.py:
- Add headless OAuth flow for CLI testing
- Add appsscript.json manifest to test files
- Add required scopes (drive.readonly, openid)
- Use _impl functions to bypass FastMCP decorators
- Build separate services for Drive and Script APIs
E2E test results: 6/8 tests pass
- List Projects requires Drive API enabled
- Run Function requires manual API Executable deployment setup
2026-01-14 01:01:36 +00:00
sam-ent
12dca1e750
Fix Apps Script integration with main server
...
- Add appscript to --tools CLI choices, tool_imports, and tool_icons
- Add script service to SERVICE_CONFIGS in service_decorator
- Add script scope imports and SCOPE_GROUPS mappings
- Fix variable shadowing in _get_script_project_impl
These changes complete the Apps Script integration by adding the
missing wiring in main.py and service_decorator.py that was needed
to make the feature functional.
2026-01-13 22:11:35 +00:00
sam-ent
800c4340b7
Enhance Apps Script documentation with value proposition and examples
...
README.md:
- Updated Apps Script bullets to emphasize value (automation, debugging, bridging services)
README_NEW.md:
- Added Apps Script to main tagline
- Added complete Apps Script tool table (11 tools)
- Included brief description and trigger limitation note
gappsscript/README.md:
- NEW: Why Apps Script section with comparison table
- NEW: Complete workflow example (form submission automation)
- NEW: AI agent workflow pattern (inspect, analyze, propose, update, deploy, monitor)
- NEW: Limitations & Non-Goals section (triggers, debugging, IDE features)
- ENHANCED: Common Workflows with 4 detailed examples including conversational flow
- ENHANCED: References section with comprehensive Google documentation links
Key additions:
- Emphasizes AI makes Apps Script accessible without coding
- Shows strategic value (automation glue vs individual APIs)
- Provides complete narrative examples
- Honest about limitations and non-goals
- Links to all relevant Google documentation
2026-01-13 21:43:41 +00:00
sam-ent
003f69e0a4
Refactor Apps Script tools for testability
...
- Separated business logic from decorators by creating _impl functions
- Updated all 11 tools to use internal implementation functions
- Rewrote unit tests to test _impl functions directly
- All 10 unit tests now passing
- Fixed decorator mocking issues that caused 'FunctionTool not callable' errors
2026-01-13 20:18:50 +00:00
sam-ent
fb951d6314
Add comprehensive tests and documentation for Apps Script
...
Testing:
- Created unit tests with mocked API responses (test_apps_script_tools.py)
- 20+ test cases covering all 11 tools
- Tests for success cases, edge cases, and error handling
- Created manual test script for real API testing (manual_test.py)
Documentation:
- Created gappsscript module README with usage examples
- Updated main README.md with Apps Script section
- Added Apps Script to features list
- Added Apps Script API to enable links
- Added complete tool reference table
- No em dashes or emojis per requirements
All documentation follows existing codebase style and patterns.
2026-01-13 19:29:44 +00:00
sam-ent
f5702b32b8
Implement Google Apps Script integration
...
Core implementation:
- Added OAuth scopes for Apps Script API (auth/scopes.py)
- Created gappsscript module with 11 tools
- Implemented 6 core tools (list, get, create, update, run)
- Implemented 5 extended tools (deployments, processes)
- Added tool tier definitions to tool_tiers.yaml
Tools follow existing patterns:
- Async with asyncio.to_thread for API calls
- Proper decorator chain (@server.tool, @handle_http_errors, @require_google_service)
- Formatted string outputs for user readability
- Comprehensive logging
All tools tested for pattern compliance with existing codebase.
2026-01-13 19:20:40 +00:00
Olivier Schiavo
2cdc55ac7d
fix_start_google_auth
2026-01-12 16:05:32 +01:00
Peter Hartree
ead1229874
feat(gmail): Add from_name parameter for sender display name
...
Add optional from_name parameter to send_gmail_message and draft_gmail_message
functions. When provided, the From header is formatted as "Name <email>" instead
of just the email address.
This allows users to include their display name in sent emails, matching the
behaviour of composing emails directly in Gmail.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-09 19:14:27 +01:00
Jacob Rank
30e79181e0
Add guest permission controls to calendar events
...
- Add guests_can_modify, guests_can_invite_others, and guests_can_see_other_guests parameters to create_event and modify_event
- Allow control over whether attendees can modify events, invite others, and see other guests
- Defaults to None to use Google Calendar defaults
2026-01-09 10:57:38 -05:00
Jacob Rank
506820aa3b
Add FreeBusy API support to Google Calendar tools
...
- Implement query_freebusy tool to query free/busy information for calendars
- Add support for time range queries with RFC3339 format
- Support multiple calendar queries in a single request
- Include optional parameters for group and calendar expansion limits
- Add tool to core tier in tool_tiers.yaml for essential availability checking
- Follow existing patterns for authentication, error handling, and logging
2026-01-09 10:06:03 -05:00
Ilia
0b0025ea2d
Update GitHub Actions workflows: standardize action versions and add Docker publish workflow
2026-01-08 13:42:14 -08:00
Taylor Wilsdon
2b72c4508f
Merge pull request #339 from DixonDs/pr/add-gmail-date-header
...
feat(gmail): Add Date header to message content tools
2026-01-07 12:12:18 -05:00
Taylor Wilsdon
ca21ce73d0
Merge pull request #345 from taylorwilsdon/issues/343
...
fix: add attachment tool to tool tiers
2026-01-07 12:09:24 -05:00
Taylor Wilsdon
a66fd8b71e
add to tool tiers
2026-01-07 12:08:39 -05:00
Dmytro Dziuma
1957466c08
Add Date header to Gmail tools output and update docstrings.
...
- Update 'GMAIL_METADATA_HEADERS' to include 'Date'.
- Update 'get_gmail_message_content' to display the 'Date' field.
- Update 'get_gmail_messages_content_batch' to display the 'Date' field in both metadata and full formats.
- Update docstrings to include 'Date' and 'Message-ID' in Returns description.
2026-01-05 23:37:00 +00:00
Dmytro Dziuma
0d4394ae27
feat: implement --read-only mode with tool filtering
...
- Adds --read-only CLI flag to restrict OAuth scopes to read-only permissions
- Implements dynamic tool filtering to disable tools requiring write permissions when in read-only mode
- Updates auth/scopes.py to manage read-only scope mappings
- Enhances @require_google_service and handle_http_errors decorators to propagate scope metadata
- Updates documentation in README.md
2025-12-30 22:08:11 +00:00
Taylor Wilsdon
a446b72104
dxt
2025-12-28 12:54:25 -08:00
Taylor Wilsdon
014a7d8adf
chore: release v1.7.1
2025-12-28 12:53:17 -08:00
Taylor Wilsdon
517d0876a1
fix valkey optional dep
2025-12-28 12:52:40 -08:00
Taylor Wilsdon
3eb81e16b0
dxt update
2025-12-27 12:31:16 -08:00
Taylor Wilsdon
e523a39773
chore: release v1.7.0
2025-12-27 12:30:00 -08:00
Taylor Wilsdon
81a7bce7a3
uv
2025-12-27 12:29:40 -08:00
Taylor Wilsdon
f34f867a5e
merge
2025-12-27 12:29:02 -08:00
Taylor Wilsdon
bcd1cb6823
Merge pull request #328 from taylorwilsdon/pr_valkey_oauth_storage
...
enh: Pluggable Storage Backends, Valkey | Disk | Memory
2025-12-27 12:27:34 -08:00
Taylor Wilsdon
7d32e2b915
uv
2025-12-27 12:26:07 -08:00
Taylor Wilsdon
24f8f635cb
Merge pull request #320 from DixonDs/feature/gmail-rfc822-id
...
feat(gmail): add RFC822 Message-ID support
2025-12-27 12:25:33 -08:00
Taylor Wilsdon
fe27085d76
ruff
2025-12-27 12:24:39 -08:00
Taylor Wilsdon
7f34dd190c
refac, helper function
2025-12-27 12:23:49 -08:00
Taylor Wilsdon
cd2fd826c5
ruff
2025-12-27 12:20:26 -08:00
Taylor Wilsdon
2ee83177ac
helper function
2025-12-27 12:16:58 -08:00
Taylor Wilsdon
736988a36d
uv update
2025-12-27 12:09:53 -08:00
Taylor Wilsdon
70d4a234f9
ruff
2025-12-27 12:08:58 -08:00
Taylor Wilsdon
c2318fb569
ruff
2025-12-27 12:08:09 -08:00
Taylor Wilsdon
b95a87e15a
add memory and disk storage backends, readme
2025-12-27 12:06:20 -08:00
Taylor Wilsdon
321d9eaef0
bump
2025-12-27 11:54:52 -08:00
Taylor Wilsdon
0f60bee263
bump
2025-12-27 11:54:02 -08:00
Taylor Wilsdon
b5baead3ba
Update gmail/gmail_tools.py
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-12-27 10:27:07 -08:00
Taylor Wilsdon
cba6665a77
Merge pull request #323 from taylorwilsdon/issues/319
...
fix: resolve issues/319
2025-12-27 10:19:44 -08:00
Taylor Wilsdon
f8bd398910
Merge pull request #325 from usiegj00/fix/export-doc-to-pdf-supports-all-drives
...
fix: remove invalid supportsAllDrives param from export_media()
2025-12-27 10:19:01 -08:00
Taylor Wilsdon
bf4fc86989
Update gdocs/docs_tools.py
2025-12-27 10:18:18 -08:00
Taylor Wilsdon
7a26d4c128
Update gdocs/docs_tools.py
2025-12-27 10:18:13 -08:00
Taylor Wilsdon
1c9e51a831
pr fixes
2025-12-27 10:16:49 -08:00
Jonathan Siegel
a4f0c66c55
fix: remove invalid supportsAllDrives param from export_media()
...
The Google Drive API export_media() method does not accept the
supportsAllDrives parameter (unlike get(), list(), create(), etc.).
This caused export_doc_to_pdf to fail with:
"Got an unexpected keyword argument supportsAllDrives"
The fix removes the invalid parameter. File access for shared drives
is already validated by the preceding files().get() call which does
use supportsAllDrives=True.
Tested with Google Docs in shared drives - exports work correctly.
2025-12-26 21:19:32 +09:00
Taylor Wilsdon
05bd5ead5e
resolve issues/319
2025-12-24 12:29:38 -08:00
Dmytro Dziuma
53a93948c6
feat(gmail): add RFC822 Message-ID support
2025-12-24 10:50:49 +00:00
Taylor Wilsdon
258ea58436
fastmcp deployment config
2025-12-23 08:35:52 -08:00
Olivier Schiavo
a93d1885bd
feat: valkey oauth storage for truly stateless oauth 2.1 proxy
2025-12-23 14:14:49 +01:00
Taylor Wilsdon
82703cffa8
safety pin
2025-12-22 12:33:49 -08:00
Taylor Wilsdon
844f8bfab1
pin version
2025-12-22 11:39:20 -08:00
Taylor Wilsdon
ae5c1eab1e
Merge pull request #318 from openwengo/pr_fix_color_2
...
fix: simplify color in modify_color
2025-12-22 09:29:12 -08:00
Olivier Schiavo
72999a1531
fix: simplify color in modify_color
2025-12-22 09:37:25 +01:00
Taylor Wilsdon
6417d9c14f
Merge pull request #317 from taylorwilsdon/copilot/fix-get-gmail-attachment-error
...
Fix serve_attachment() TypeError on FastMCP custom_route with path parameters
2025-12-20 21:26:09 -08:00
copilot-swe-agent[bot]
f016c87757
Fix serve_attachment() missing request argument error
...
Co-authored-by: taylorwilsdon <6508528+taylorwilsdon@users.noreply.github.com >
2025-12-21 05:08:17 +00:00
copilot-swe-agent[bot]
e4226dd2b6
Initial plan
2025-12-21 05:03:41 +00:00
Taylor Wilsdon
61c38a7780
chore: release v1.6.3
2025-12-19 21:51:59 -08:00
Taylor Wilsdon
20965716c5
update dxt
2025-12-19 21:51:40 -08:00
Taylor Wilsdon
60ac812de3
Merge pull request #305 from jacks0n/feature/google-drive-permissions
...
Add Google Drive sharing and permission management tools
2025-12-20 00:49:19 -05:00
Taylor Wilsdon
ca23ac4d7d
fix issues/313
2025-12-19 21:47:48 -08:00
Taylor Wilsdon
e91ee55242
fix imports
2025-12-19 21:47:02 -08:00
Taylor Wilsdon
aa6b709c03
restore
2025-12-19 21:41:11 -08:00
Taylor Wilsdon
667d4f740d
merge
2025-12-19 16:19:35 -05:00
Taylor Wilsdon
928bb7940a
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into feature/google-drive-permissions
2025-12-19 16:19:31 -05:00
Taylor Wilsdon
428ec5bbc8
Merge pull request #314 from taylorwilsdon/html_fallback
...
enh: handle HTML-only emails elegantly
2025-12-19 16:16:11 -05:00
Taylor Wilsdon
c8391d77b5
ruff
2025-12-19 16:13:01 -05:00
Taylor Wilsdon
c945472f15
fix
2025-12-19 16:10:24 -05:00
Taylor Wilsdon
db38f5156b
ruff
2025-12-19 16:00:28 -05:00
Taylor Wilsdon
1a2ca23d3f
fallback for html only messages
2025-12-19 15:58:45 -05:00
Taylor Wilsdon
2e72f66db0
Merge pull request #297 from openwengo/pr_sheet_errors
...
fix: read_sheet_values and modify_sheet_values give error details
2025-12-19 14:35:34 -05:00
Olivier Schiavo
24bdb7e974
fix: read_sheet_values and modify_sheet_values give error details for #ERROR cells (and all #xx error values)
2025-12-19 10:52:48 +01:00
Jackson Cooper
97284a3522
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into feature/google-drive-permissions
2025-12-19 19:24:36 +11:00
Jackson Cooper
a7208f3fb9
Fix ruff formatting issues
...
Apply ruff format to pass CI checks.
2025-12-19 19:12:31 +11:00
Taylor Wilsdon
cdea5a5e65
Merge pull request #309 from openwengo/pr_fix_color_typing
...
fix: color typing
2025-12-18 12:56:06 -05:00
Olivier Schiavo
c63021c530
fix: color typing
2025-12-16 10:26:20 +01:00
Jackson Cooper
32347d9543
Merge origin/main
2025-12-16 07:13:03 +11:00
Taylor Wilsdon
31a46348b5
package updates
2025-12-14 15:34:49 -05:00
Jackson Cooper
70bdaece23
Add Google Drive sharing and permission tools
...
New tools: share_drive_file, batch_share_drive_file, get_drive_shareable_link,
get_drive_file_permissions, update_drive_permission, remove_drive_permission,
transfer_drive_ownership
share_drive_file supports user/group/domain/anyone types, so there's no need
for a separate make_drive_file_public tool.
2025-12-14 18:03:04 +11:00
Taylor Wilsdon
267ad120c0
readme update
2025-12-13 20:00:12 -07:00
Taylor Wilsdon
37abc0b545
Merge pull request #304 from taylorwilsdon/dependabot/pip/pip-2d69776b52
...
Bump fastmcp from 2.12.5 to 2.13.0 in the pip group across 1 directory
2025-12-13 14:11:19 -08:00
dependabot[bot]
1738d88342
Bump fastmcp from 2.12.5 to 2.13.0 in the pip group across 1 directory
...
Bumps the pip group with 1 update in the / directory: [fastmcp](https://github.com/jlowin/fastmcp ).
Updates `fastmcp` from 2.12.5 to 2.13.0
- [Release notes](https://github.com/jlowin/fastmcp/releases )
- [Changelog](https://github.com/jlowin/fastmcp/blob/main/docs/changelog.mdx )
- [Commits](https://github.com/jlowin/fastmcp/compare/v2.12.5...v2.13.0 )
---
updated-dependencies:
- dependency-name: fastmcp
dependency-version: 2.13.0
dependency-type: direct:production
dependency-group: pip
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-12-13 22:10:30 +00:00
Taylor Wilsdon
d9f8fc8ae1
Create dependabot.yml
2025-12-13 14:10:03 -08:00
Taylor Wilsdon
03eaecc443
Create glama.json
2025-12-13 14:07:12 -08:00
Taylor Wilsdon
427062571f
Merge pull request #303 from taylorwilsdon/ruff_format
...
enh: apply ruff formatting
2025-12-13 13:53:12 -08:00
Taylor Wilsdon
956e88e910
apply ruff formatting
2025-12-13 13:52:48 -08:00
Taylor Wilsdon
6b8352a354
apply ruff formatting
2025-12-13 13:49:28 -08:00
Taylor Wilsdon
1d80a24ca4
Merge pull request #302 from taylorwilsdon/codex/evaluate-and-implement-issue-299
...
Add Gmail filter CRUD tools
2025-12-13 13:48:41 -08:00
Taylor Wilsdon
de53b6e804
deps
2025-12-13 13:48:18 -08:00
Taylor Wilsdon
23d2fb10b2
dxt
2025-12-13 13:47:41 -08:00
Taylor Wilsdon
2cbeaa5a13
Add Gmail filter management tools
2025-12-13 13:40:05 -08:00
Taylor Wilsdon
4c914b0de9
chore: release v1.6.2
2025-12-13 13:02:56 -08:00
Taylor Wilsdon
2434d3bc54
dxt
2025-12-13 13:02:43 -08:00
Taylor Wilsdon
30df07e54d
Merge pull request #300 from taylorwilsdon/pr_doc_format
...
enh: Text & Background Color Formatting
2025-12-13 13:01:52 -08:00
Taylor Wilsdon
b467c2c91c
refac
2025-12-13 13:01:24 -08:00
Taylor Wilsdon
115bead29a
refac
2025-12-13 12:57:00 -08:00
Taylor Wilsdon
5f59b4e9a7
fix imports
2025-12-13 11:21:35 -08:00
Taylor Wilsdon
ad792921a0
validators
2025-12-13 11:11:04 -08:00
Taylor Wilsdon
1ed965926b
merge
2025-12-13 10:50:51 -08:00
Taylor Wilsdon
c615a6d743
Merge pull request #298 from openwengo/pr_tab_title
2025-12-12 13:11:51 -08:00
Josh Dzielak
d5537f1230
Add get_drive_file_download_url tool for downloading Drive files via HTTP
...
Implements a new tool that follows the same pattern as Gmail attachment downloads:
- Downloads files from Google Drive (handles shortcuts automatically)
- For Google native files (Docs/Sheets/Slides), exports to useful formats:
* Docs → PDF (default) or DOCX
* Sheets → XLSX (default) or CSV
* Slides → PDF (default) or PPTX
- Saves files to AttachmentStorage (reuses existing infrastructure)
- Returns a download URL that works with the existing /attachments/{file_id} route
- Files expire after 1 hour (same as Gmail attachments)
- Handles stateless mode gracefully
This enables agents to download binary files from Drive, which was previously
not possible with get_drive_file_content (text-only). The agent receives a
URL it can fetch to download the file, following the same pattern as Gmail
attachment downloads.
2025-12-12 12:41:21 -08:00
Taylor Wilsdon
4bf1274e39
Merge pull request #282 from openwengo/pr_sheet_format
2025-12-12 12:36:59 -08:00
Olivier Schiavo
16a14dab07
refactor
2025-12-12 18:55:16 +01:00
Olivier Schiavo
76378d583e
feat: gsheet formatting + conditionnal formatting
2025-12-12 18:30:32 +01:00
Taylor Wilsdon
25211f3d74
Merge pull request #296 from durandom/feature/add-visibility-parameter
...
feat(gcalendar): Add visibility parameter to create_event and modify_event
2025-12-12 09:23:55 -08:00
Olivier Schiavo
c528fe5bc4
fix: tab title
2025-12-12 16:07:51 +01:00
Marcel Hild
0e7f1af755
feat(gcalendar): Add visibility parameter to create_event and modify_event
...
- Add '_apply_visibility_if_valid' helper function for visibility validation
- Support 'default', 'public', 'private', and 'confidential' visibility values
- Add visibility parameter to create_event function with documentation
- Add visibility parameter to modify_event function with documentation
- Validates input and logs visibility setting or warning
Follows same pattern as transparency parameter (commit 148127e ).
Closes #295
2025-12-12 09:52:12 +01:00
Taylor Wilsdon
9fa2455cc7
Merge pull request #284 from jhutar/read-slides-text
...
feat: Make get_presentation tool to also extract text in slides
2025-12-08 16:16:38 -05:00
Taylor Wilsdon
e8a11514b6
chore: release v1.6.1
2025-12-08 10:06:12 -05:00
Taylor Wilsdon
9c63e0267c
update dxt
2025-12-08 10:04:10 -05:00
Taylor Wilsdon
68c264003d
Merge pull request #286 from joshed-io/feat/gmail-search-pagination
...
Add pagination for search_gmail_messages tool
2025-12-08 10:03:38 -05:00
Taylor Wilsdon
5ee1c19871
Update README.md
...
Add claude code docs
2025-12-08 09:54:51 -05:00
Taylor Wilsdon
3adcbcd0f6
Merge pull request #288 from joshed-io/feat/gmail-attachment-http-serving
...
Add HTTP URL-based Attachment Serving for Gmail Attachments
2025-12-08 09:49:36 -05:00
Taylor Wilsdon
a60a556359
token refresh uses the embedded creds with optional client secret path
2025-12-08 09:35:40 -05:00
Taylor Wilsdon
216fd4246a
Update gmail_tools.py
2025-12-08 09:22:28 -05:00
Josh Dzielak
a30438bb83
Address Copilot review comments
...
- Add missing parentheses to .execute() method call
- Remove redundant pass statement after logger.debug
- Keep urlsafe_b64decode() for consistency with codebase convention
Note: Copilot suggested using b64decode() instead of urlsafe_b64decode(),
but the codebase consistently uses urlsafe_b64decode() for Gmail message
body data (lines 72, 87 in gmail_tools.py). We follow the existing
codebase convention for consistency.
2025-12-06 07:49:08 +01:00
Josh Dzielak
d8204eb0df
Fix ruff errors: remove unused imports
2025-12-06 07:43:08 +01:00
Josh Dzielak
ee1db221af
Add HTTP URL-based attachment serving for Gmail attachments
...
This commit implements a new feature that allows Gmail attachments to be
served via HTTP URLs instead of returning base64-encoded data in the tool
response. This avoids consuming LLM context window space and token budgets
for large attachments.
Architecture:
-------------
The implementation works in both stdio and streamable-http transport modes:
1. Temp File Storage (core/attachment_storage.py):
- New AttachmentStorage class manages temporary file storage in ./tmp/attachments/
- Uses UUID-based file IDs to prevent guessing/unauthorized access
- Tracks metadata: filename, mime type, size, creation/expiration times
- Files expire after 1 hour (configurable) with automatic cleanup support
- Handles base64 decoding and file writing
2. HTTP Route Handlers:
- Added /attachments/{file_id} route to main FastMCP server (streamable-http mode)
- Added same route to MinimalOAuthServer (stdio mode)
- Both routes serve files with proper Content-Type headers via FileResponse
- Returns 404 for expired or missing attachments
3. Modified get_gmail_attachment_content():
- Now saves attachments to temp storage and returns HTTP URL
- Attempts to fetch filename/mimeType from message metadata (best effort)
- Handles stateless mode gracefully (skips file saving, shows preview)
- Falls back to base64 preview if file saving fails
- URL generation respects WORKSPACE_EXTERNAL_URL for reverse proxy setups
Key Features:
-------------
- Works in both stdio and streamable-http modes (uses existing HTTP servers)
- Respects stateless mode (no file writes when WORKSPACE_MCP_STATELESS_MODE=true)
- Secure: UUID-based file IDs prevent unauthorized access
- Automatic expiration: Files cleaned up after 1 hour
- Reverse proxy support: Uses WORKSPACE_EXTERNAL_URL if configured
- Graceful degradation: Falls back to preview if storage fails
Benefits:
---------
- Avoids context window bloat: Large attachments don't consume LLM tokens
- Better performance: Clients can stream/download files directly
- More efficient: No need to decode base64 in client applications
- Works across network boundaries: URLs accessible from any client
The feature maintains backward compatibility - if file saving fails or stateless
mode is enabled, the function falls back to showing a base64 preview.
2025-12-04 16:37:10 +01:00
Josh Dzielak
470dcae813
Fix ruff errors: remove f-string prefix from strings without placeholders
2025-12-04 16:21:43 +01:00
Jan Hutar
77b2d1d694
feat: Get text from other shapes as well and address some other code review comments
...
Assisted-by: Gemini
2025-12-01 14:19:38 +01:00
Josh Dzielak
02c1f2ee01
Add pagination for search_gmail_messages tool
2025-11-29 14:45:05 +01:00
Taylor Wilsdon
0402b1a0b8
chore: release v1.6.0
2025-11-28 14:14:16 -05:00
Taylor Wilsdon
1ce2f068af
Merge pull request #285 from taylorwilsdon/fix_require_multiple_services
...
fix: better approach for issues/244
2025-11-28 14:13:37 -05:00
Taylor Wilsdon
705cf20044
better approach
2025-11-28 13:53:34 -05:00
Jan Hutar
af75926b25
feat: Make get_presentation tool to also extract text in slides
2025-11-28 17:04:06 +01:00
Olivier Schiavo
7e2f9cdd96
feat: use colors in gdocs
2025-11-27 17:26:35 +01:00
Kevin Littlejohn
252ebe482e
Remove extra_fields from resolve_drive_item call
...
Removed the extra_fields parameter from resolve_drive_item call.
2025-11-27 17:26:22 +01:00
Kevin Littlejohn
b43365df1d
Fix formatting issue in drive_tools.py
2025-11-27 17:26:22 +01:00
Taylor Wilsdon
4a1eb2227a
merge main
2025-11-27 17:26:22 +01:00
Kevin Littlejohn
2bd8dccaa6
Remove shortcut_resolution patch artifact
2025-11-27 17:26:22 +01:00
Kevin Littlejohn
dfd925ba45
Handle Drive shortcuts transparently
2025-11-27 17:26:22 +01:00
Taylor Wilsdon
5183aef08e
Merge pull request #272 from silarsis/main
...
Issue #269 - supporting shortcuts
2025-11-25 17:14:19 -05:00
Kevin Littlejohn
c9d4cd803c
Remove extra_fields from resolve_drive_item call
...
Removed the extra_fields parameter from resolve_drive_item call.
2025-11-25 13:43:48 +08:00
Kevin Littlejohn
6c06e90123
Fix formatting issue in drive_tools.py
2025-11-25 13:36:02 +08:00
Taylor Wilsdon
7936097b7b
merge main
2025-11-16 14:22:06 -05:00
Taylor Wilsdon
d470fbdd13
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into silarsis/main
2025-11-16 14:22:02 -05:00
Taylor Wilsdon
bf99eabe0b
Merge pull request #275 from taylorwilsdon/issues/274
...
fix: fix media calls
2025-11-12 12:00:06 -05:00
Taylor Wilsdon
fd26e4037a
fix media calls
2025-11-12 11:54:55 -05:00
Kevin Littlejohn
cbeabb36a1
Remove shortcut_resolution patch artifact
2025-11-11 16:44:39 +08:00
Kevin Littlejohn
55dfba3d83
Handle Drive shortcuts transparently
2025-11-11 16:43:00 +08:00
Taylor Wilsdon
973f921c32
chore: release v1.5.5
2025-11-10 11:17:44 -05:00
Taylor Wilsdon
78a458b226
dxt update
2025-11-10 11:17:37 -05:00
Taylor Wilsdon
d0faa593e9
Merge pull request #270 from yairwein/main
...
feat: Add support for file:// URLs in create_drive_file
2025-11-10 11:17:04 -05:00
Taylor Wilsdon
72dd6330b6
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into yairwein/main
2025-11-10 11:14:53 -05:00
Taylor Wilsdon
f9fdb94529
add streamable http check
2025-11-10 11:13:47 -05:00
Taylor Wilsdon
9f969f05a5
ruff
2025-11-10 11:03:44 -05:00
Taylor Wilsdon
b3efc76399
address feedback
2025-11-10 11:03:38 -05:00
Taylor Wilsdon
4c92a542da
Merge pull request #266 from benjaminjackson/fix/add-to-cc-metadata-fields
...
fix(gmail): add To and Cc fields to message metadata responses
2025-11-10 10:56:16 -05:00
Taylor Wilsdon
d8c0e719df
Merge pull request #268 from cfdude/feat/update-drive-file-tool
...
feat(drive): add update_drive_file tool for comprehensive file metadata management
2025-11-10 10:55:49 -05:00
Taylor Wilsdon
902ca92bb6
address feedback
2025-11-10 10:54:38 -05:00
Yair Weinberger
12e2be0807
feat: Add support for file:// URLs in create_drive_file
...
Added ability to upload local files to Google Drive using file:// URL scheme
in the create_drive_file tool. This enables uploading files from /tmp and
other local paths without requiring HTTP/HTTPS hosting.
Changes:
- Added urllib.parse.urlparse and pathlib.Path imports
- Detect file:// URLs and read directly from local filesystem
- Validate file exists before attempting upload
- Updated docstring to reflect support for file://, http://, and https://
- Added error handling for unsupported URL schemes
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-11-09 17:12:26 +00:00
Rob Sherman
541677388b
feat(drive): implement update_drive_file function with OAuth scope fix
...
- Added comprehensive update_drive_file function to modify Google Drive file metadata
- Fixed OAuth scope issue by using 'drive_file' instead of non-existent 'drive_write'
- Supports moving files, renaming, updating descriptions, managing sharing permissions
- Includes support for custom properties and file status (starred/trashed)
- Updated README.md and tool_tiers.yaml documentation
- Successfully tested with all parameters
Fixes #220 (OAuth stdio mode authentication issues)
2025-11-05 22:58:44 -08:00
Benjamin Jackson
ca61416acb
fix(gmail): add To and Cc fields to message metadata responses
...
Previously, the metadataHeaders parameter only requested Subject and
From fields from the Gmail API, even though To and Cc are standard
metadata fields. This updates all metadata API calls to include To
and Cc in both single message and batch operations.
Changes:
- Updated metadataHeaders to include To, Cc in all API calls
- Extended _extract_headers() calls to request To, Cc
- Updated response formatting to display To, Cc fields
- Handles missing To/Cc gracefully with empty strings
- Updated docstrings to reflect new fields in responses
Affected functions:
- get_gmail_message_content() (gmail/gmail_tools.py:369-457)
- get_gmail_messages_content_batch() (gmail/gmail_tools.py:463-638)
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-11-04 16:40:04 -05:00
Taylor Wilsdon
c7b1a633d1
Merge pull request #264 from taylorwilsdon/all_drive_support
...
enh: All Drive API operations now include supportsAllDrives=True
2025-11-04 11:20:35 -05:00
Taylor Wilsdon
332bc9c9ae
Update README.md
2025-11-04 11:17:00 -05:00
Taylor Wilsdon
9b873092b2
remove alldrives from comments
2025-11-04 11:02:20 -05:00
Taylor Wilsdon
01a0de105a
trailing comma
2025-11-04 10:39:53 -05:00
Taylor Wilsdon
8363ae1c06
add additional bits
2025-11-04 10:36:49 -05:00
Taylor Wilsdon
24d79ab470
All Drive API operations now include supportsAllDrives=True
2025-11-04 10:19:37 -05:00
Taylor Wilsdon
7ac9087939
Update README.md
2025-11-03 12:21:20 -05:00
Taylor Wilsdon
2fc133ec5a
Update README.md
2025-11-03 12:20:42 -05:00
Taylor Wilsdon
a9625dd71a
update dxt
2025-11-02 08:44:08 -05:00
Taylor Wilsdon
e9e8c40ab7
chore: release v1.5.4
2025-11-02 08:43:15 -05:00
Taylor Wilsdon
ee6242627b
bump vers
2025-11-02 08:43:06 -05:00
Taylor Wilsdon
6691de4ccf
chore: release v1.5.3
2025-11-02 08:42:57 -05:00
Taylor Wilsdon
64d4050bda
Merge pull request #237 from olivermdb/fix-gmail-attachment-ephemeral-ids
...
Add Gmail attachment support with ephemeral ID handling
2025-11-02 08:40:18 -05:00
Taylor Wilsdon
3b9805a5b7
Merge pull request #248 from yairwein/main
...
feat: add external OAuth 2.1 provider mode for bearer token authentic…
2025-11-02 08:04:29 -05:00
Taylor Wilsdon
6833ebd70b
populate synthetic token object
2025-11-02 08:03:50 -05:00
Taylor Wilsdon
39bea59f40
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into yairwein/main
2025-11-02 08:03:32 -05:00
Taylor Wilsdon
519434e7bd
Merge pull request #249 from loserbcc/fix/gmail-from-header-bug
...
Fix: Gmail send_message now respects user_google_email for From header
2025-11-02 08:01:14 -05:00
Taylor Wilsdon
c45ddeba7e
Update README.md
2025-11-01 19:59:49 -04:00
LoserBcc
2d4a2baefd
Fix: Gmail send_message now respects user_google_email for From header
...
## Problem
Emails sent via send_gmail_message were always showing as from a default
user account regardless of which account was specified in the
user_google_email parameter.
## Root Cause
The _prepare_gmail_message() function was not setting the From header in
the MIME message. Gmail API defaults to the primary send-as address when
no From header is provided.
## Solution
- Added from_email parameter to _prepare_gmail_message()
- Set From header explicitly: message["From"] = from_email
- Updated send_gmail_message() to pass user_google_email as from_email
- Updated draft_gmail_message() to pass user_google_email as from_email
- Capitalized MIME headers (Subject, From, To, Cc, Bcc) per conventions
## Testing
Verified emails now correctly show sender address for multiple accounts.
Each account now properly displays its own address in the From field.
Fixes multi-account email sending functionality.
2025-10-24 21:40:36 -04:00
Yair Weinberger
241f0987ae
feat: add external OAuth 2.1 provider mode for bearer token authentication
...
Add support for external OAuth 2.1 provider mode where authentication
is handled by external systems that issue Google OAuth access tokens.
**Changes:**
1. **New Environment Variable: `EXTERNAL_OAUTH21_PROVIDER`**
- Enables external OAuth mode when set to `true`
- Requires `MCP_ENABLE_OAUTH21=true`
- Disables protocol-level auth (MCP handshake/tools list work without auth)
- Requires bearer tokens in Authorization headers for tool calls
2. **New File: `auth/external_oauth_provider.py`**
- Custom provider extending FastMCP's GoogleProvider
- Handles ya29.* Google OAuth access tokens
- Validates tokens via google-auth library + userinfo API
- Returns properly formatted AccessToken objects
3. **Modified: `auth/oauth_config.py`**
- Add `external_oauth21_provider` config option
- Validation that external mode requires OAuth 2.1
- Helper methods for checking external provider mode
4. **Modified: `core/server.py`**
- Use ExternalOAuthProvider when external mode enabled
- Use standard GoogleProvider otherwise
- Set server.auth = None for external mode (no protocol auth)
5. **Modified: `README.md`**
- New "External OAuth 2.1 Provider Mode" section
- Usage examples and configuration
- Added to environment variables table
**How It Works:**
- MCP handshake and tools/list do NOT require authentication
- Tool calls require `Authorization: Bearer ya29.xxx` headers
- Tokens validated by calling Google's userinfo API
- Multi-user support via per-request authentication
- Stateless-compatible for containerized deployments
**Use Cases:**
- Integrating with existing authentication systems
- Custom OAuth flows managed by your application
- API gateways handling authentication upstream
- Multi-tenant SaaS with centralized auth
- Mobile/web apps with their own OAuth implementation
**Example Configuration:**
```bash
export MCP_ENABLE_OAUTH21=true
export EXTERNAL_OAUTH21_PROVIDER=true
export GOOGLE_OAUTH_CLIENT_ID=your_client_id
export GOOGLE_OAUTH_CLIENT_SECRET=your_client_secret
export WORKSPACE_MCP_STATELESS_MODE=true # Optional
```
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-10-24 15:43:29 +03:00
Taylor Wilsdon
ec41ba18c9
fix type hints
2025-10-23 14:49:47 -04:00
Taylor Wilsdon
a14ee47ee8
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into fix-gmail-attachment-ephemeral-ids
2025-10-23 14:39:55 -04:00
Taylor Wilsdon
95d5c8b4ad
remove mcpo
2025-10-19 16:18:42 -04:00
Taylor Wilsdon
d4b7cab7ab
update dxt
2025-10-19 16:17:06 -04:00
Taylor Wilsdon
8adc7527dd
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp
2025-10-19 15:33:02 -04:00
Taylor Wilsdon
1caecee035
Merge pull request #239 from shawnzhu/fix/file-download-upload
...
enh: tempfile downloads to save memory in non-stateless mode
2025-10-19 14:25:34 -04:00
Taylor Wilsdon
33a0938fb5
use that var
2025-10-19 14:24:06 -04:00
Taylor Wilsdon
e35973c14d
Wrapped the in-memory download path with MediaIoBaseUpload so Drive receives a proper upload object even when stateless (gdrive/drive_tools.py:296). Keep the Content-Type override synced by updating mime_type before constructing the uploader
2025-10-19 14:18:06 -04:00
Taylor Wilsdon
52edcd4172
address review feedback
2025-10-19 14:14:20 -04:00
Taylor Wilsdon
bfb8cb40a3
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into fix/file-download-upload
2025-10-19 14:10:28 -04:00
Taylor Wilsdon
3e48fdb683
bump pyproject.toml
2025-10-19 14:09:55 -04:00
Shawn Zhu
d613dc204c
supports redirects for downloading file
2025-10-19 12:02:16 -04:00
Shawn Zhu
2b50b4caa0
do not use tmp file during stateless mode
2025-10-19 11:59:56 -04:00
Taylor Wilsdon
582195b6be
Merge pull request #240 from taylorwilsdon/timezones_n_stuff
...
timezone awareness handling improvements and tasks fix
2025-10-18 14:22:26 -04:00
Taylor Wilsdon
b0f04eff69
more feedback
2025-10-18 13:44:31 -04:00
Taylor Wilsdon
f70da12dfd
review comments
2025-10-18 13:19:24 -04:00
Taylor Wilsdon
33b41a59d8
timezone awareness handling improvements and tasks fix
2025-10-18 13:01:43 -04:00
Taylor Wilsdon
a995fa4fde
fastmcp specific deployment
2025-10-17 18:20:38 -04:00
Shawn Zhu
b91ed69914
address review comment
2025-10-17 12:59:10 -04:00
Shawn
811e17e167
Update gdrive/drive_tools.py
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-10-17 12:58:31 -04:00
Shawn
f4a3d3cafe
Update gdrive/drive_tools.py
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-10-17 12:57:04 -04:00
Taylor Wilsdon
f611c00091
Merge pull request #232 from accorvin/calendar-event-attachments
...
Add attachment details support to calendar events
2025-10-17 12:18:32 -04:00
Shawn Zhu
67331a766d
fix: improves file download
2025-10-16 21:13:42 -04:00
olivermdb
4cd28ad9d7
Fix ruff linting errors - remove unnecessary f-string prefixes
...
Removed f-string prefixes from strings without placeholders
in get_gmail_attachment_content function (lines 672, 675, 677, 678, 679).
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-10-16 01:00:10 -04:00
Taylor Wilsdon
b373e12e5b
Update gcalendar/calendar_tools.py
2025-10-15 16:17:56 -04:00
olivermdb
06cbdd91cd
Add Gmail attachment support with ephemeral ID handling
...
This commit adds comprehensive Gmail attachment functionality:
1. New helper function `_extract_attachments()`:
- Recursively extracts attachment metadata from message payloads
- Returns filename, mimeType, size, and attachmentId for each attachment
2. Enhanced `get_gmail_message_content()`:
- Now displays attachment information when present
- Shows attachment ID needed for downloading
3. New tool `get_gmail_attachment_content()`:
- Downloads email attachments via Gmail API
- Returns base64-encoded attachment data
- Handles ephemeral attachment ID issue correctly
Key technical insight: Gmail attachment IDs are ephemeral and change
between API calls for the same message. To avoid ID mismatches, the
download function uses the attachment ID provided by the caller directly
without refetching the message, as refetching would generate new IDs
that don't match the original ID.
The attachment download endpoint returns size information directly, while
filename and mime type should be obtained from the initial message fetch
that provided the attachment ID.
2025-10-15 16:12:52 -04:00
Taylor Wilsdon
7a70bfefd4
Merge pull request #234 from luutuankiet/feat/gmail_create_draft_html_type
...
chore: Gmail tool enable html message for `draft_gmail_message`
2025-10-13 15:47:01 -04:00
luutuankiet
7ef0c2503a
chore: port same html arguments to draft_gmail_message
2025-10-13 12:15:18 +07:00
Taylor Wilsdon
31e6987010
update dxt
2025-10-12 09:59:25 -04:00
Alex Corvin
4fbddb6c42
Add attachment details support to calendar events
...
Enhance the get_events function to include detailed attachment information
when include_attachments=True, including:
- File ID (fileId)
- File URL (fileUrl)
- MIME type (mimeType)
- File title
Changes:
- Add _format_attachment_details() helper function following existing code patterns
- Add include_attachments parameter to get_events() (defaults to False)
- Update get_events() to display attachment details in both single and multiple event detailed views
- Maintain backward compatibility - attachments only shown when include_attachments=True and detailed=True
- Update function docstring with comprehensive documentation for LLM usage
Resolves #231
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-10-09 09:42:50 -04:00
Taylor Wilsdon
577bfafb7c
chore: release v1.5.2
2025-10-07 18:01:21 -04:00
Taylor Wilsdon
24101902f1
version
2025-10-07 18:01:17 -04:00
Taylor Wilsdon
0adab0cdd7
cleanup
2025-10-07 18:01:06 -04:00
Taylor Wilsdon
ad198ef2a9
dxt
2025-10-07 17:56:03 -04:00
Taylor Wilsdon
a624d3661c
chore: release v1.5.1
2025-10-07 17:54:59 -04:00
Taylor Wilsdon
bc711bc606
version
2025-10-07 17:54:56 -04:00
Taylor Wilsdon
d3a06aac38
gtasks fix
2025-10-07 17:54:35 -04:00
Taylor Wilsdon
1c7354cb5e
update dxt
2025-10-07 14:33:08 -04:00
Taylor Wilsdon
91ec3c6947
chore: release v1.5.0
2025-10-07 14:31:38 -04:00
Taylor Wilsdon
7269a1042a
Merge pull request #229 from accorvin/google-calendar-responses
...
Add attendee response status and details to calendar events
2025-10-07 13:55:44 -04:00
Alex Corvin
158780ab10
Add attendee response status and details to calendar events
...
Enhance the get_events function to include detailed attendee information
when detailed=True, including:
- Response status (accepted/declined/tentative/needsAction)
- Organizer flag
- Optional attendee flag
Changes:
- Add _format_attendee_details() helper function following existing code patterns
- Update get_events() to display attendee details in both single and multiple event views
- Maintain backward compatibility - new field only shown in detailed mode
- Update function docstring to document new attendee details
Resolves #228
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-10-07 13:15:45 -04:00
Taylor Wilsdon
26981cac24
Merge pull request #227 from benjaminjackson/main
...
feat(gcalendar): Add event transparency option
2025-10-07 12:50:01 -04:00
Taylor Wilsdon
8fcedefa6e
refactor into helper function
2025-10-07 12:30:49 -04:00
Taylor Wilsdon
c64cfd6866
Merge pull request #225 from taylorwilsdon/auth_simplification
...
feat: FastMCP Native OAuth 2.1 Provider Support
2025-10-07 11:48:43 -04:00
Taylor Wilsdon
43fed1741e
fix ruff return groups
2025-10-07 10:30:05 -04:00
Taylor Wilsdon
03297f0670
prune dependency groups
2025-10-07 09:57:50 -04:00
Taylor Wilsdon
8f4bcad3a6
prune dependency groups
2025-10-07 09:57:31 -04:00
Taylor Wilsdon
b8703d229a
refactor pyproject.toml to best practices, chunk out runtime dependencies from dev dependencies
2025-10-07 09:50:23 -04:00
Benjamin Jackson
148127e364
feat(gcalendar): Add event transparency option
...
- Add 'transparency' parameter to create_event and modify_event functions
- Supports 'opaque' (Busy) and 'transparent' (Available/Free) modes
- Validates input and logs transparency setting or warning
- Defaults to None, preserving existing Google Calendar behavior
Provides more granular control over event scheduling and visibility.
2025-10-06 19:15:53 -04:00
Taylor Wilsdon
923df7eca5
refactor oauth2.1 support to fastmcp native
2025-10-05 18:00:10 -04:00
Taylor Wilsdon
6e194c83d9
update fastmcp
2025-10-05 17:21:18 -04:00
Taylor Wilsdon
4551e64613
Merge pull request #224 from taylorwilsdon/issues/222
...
feat: add support for html message send
2025-10-05 16:53:56 -04:00
Taylor Wilsdon
dc261fa82f
add support for html message send
2025-10-05 16:50:58 -04:00
Taylor Wilsdon
1e9feaa48f
fix issuer
2025-09-30 15:35:10 -04:00
Taylor Wilsdon
482f4e33f9
chore: release v1.4.8
2025-09-29 17:08:33 -04:00
Taylor Wilsdon
086c0adef3
add new dxt
2025-09-29 17:08:24 -04:00
Taylor Wilsdon
a7c0a78963
Merge pull request #219 from taylorwilsdon/oauth_feedback
...
enh: Legacy OAuth session binding & compatibility with modern methods
2025-09-29 17:03:29 -04:00
Taylor Wilsdon
6087b74578
dynamically set oauth base
2025-09-29 17:02:32 -04:00
Taylor Wilsdon
8b035d7033
add userinfo and fix issuer
2025-09-29 16:01:28 -04:00
Taylor Wilsdon
bbab827652
timezone aware handling
2025-09-28 16:13:55 -04:00
Taylor Wilsdon
238a314fef
session binding and legacy compatibility
2025-09-28 16:08:41 -04:00
Taylor Wilsdon
e58ca9ec73
Merge pull request #218 from taylorwilsdon/fix/197
...
fix: typing to resolve #197
2025-09-28 15:39:03 -04:00
Taylor Wilsdon
ff7ced33e5
yank optional
2025-09-28 15:38:39 -04:00
Taylor Wilsdon
db6861c33b
typing to resolve #197
2025-09-28 15:34:19 -04:00
Taylor Wilsdon
c20e0388ff
Merge pull request #216 from ForrestTrepte/differentiate-subtasks
...
feat: show subtask hierarchy
2025-09-20 17:13:11 -04:00
Taylor Wilsdon
1c235c33a4
Update gtasks/tasks_tools.py
2025-09-20 17:09:32 -04:00
Forrest Trepte
c5bede71c7
resolves #204 by differentiating subtasks for top-level tasks
...
Also:
* Creates placeholder parents for orphaned subtasks, grouping them together even though their parent isn't available.
* Performs sorting of tasks in a simpler way.
* Fixes mypy type warnings in tasks_tools.py so that mypy runs clean on this one file. See #194 for more info about type checking.
2025-09-20 13:15:10 -07:00
Taylor Wilsdon
a8eeebb385
Merge pull request #213 from taylorwilsdon/taylorwilsdon-patch-12
...
Update README.md
2025-09-18 16:33:07 -04:00
Taylor Wilsdon
d82c3baa25
Update README.md
...
Closes #207
2025-09-18 16:32:54 -04:00
Taylor Wilsdon
abd6c58b7b
Merge pull request #195 from ForrestTrepte/fix-completed-tasks-hidden
...
explain that when show_completed is set, show_hidden should also be set
2025-09-18 16:27:15 -04:00
Taylor Wilsdon
550cc65937
Merge pull request #212 from ForrestTrepte/fix-205-tasks-parameters
...
fix: types for tasks parameters that work with both MCP inspector and Claude Desktop
2025-09-18 16:25:48 -04:00
Taylor Wilsdon
bf061293cf
Merge pull request #206 from emanuilo/update-readme
...
chore: update readme with export_doc_to_pdf tool
2025-09-18 16:24:53 -04:00
Forrest Trepte
a8ee7defa2
fix list_tasks with max_results, boolean params
2025-09-17 15:41:41 -07:00
Forrest Trepte
b2fae7e91e
fix list_task_lists with max_results
2025-09-17 15:41:23 -07:00
Taylor Wilsdon
b64b950548
Update README.md
2025-09-14 08:43:15 -04:00
Taylor Wilsdon
960bd59405
add security.md
2025-09-11 11:37:00 -04:00
Taylor Wilsdon
a0b13c113c
chore: release v1.4.7
2025-09-09 11:27:57 -04:00
Taylor Wilsdon
cff5882edb
yank more emojis
2025-09-09 11:27:52 -04:00
Taylor Wilsdon
239a4bf3ac
yank more emojis
2025-09-09 11:13:30 -04:00
Taylor Wilsdon
1bf058ce9b
chore: release v1.4.6
2025-09-09 11:10:08 -04:00
Taylor Wilsdon
a75136e80d
remove stupid emoji from startup logging
2025-09-09 11:09:58 -04:00
Emanuilo Jovanovic
353b9133bf
chore: update readme with export_doc_to_pdf tool
2025-09-08 11:34:16 +02:00
Forrest Trepte
7f8b327633
explain that when show_completed is set, show_hidden should also be set
...
fixes #139
add comment from https://developers.google.com/workspace/tasks/reference/rest/v1/tasks/list about the parameter show_completed
When Google's web UI and Google's mobile apps complete a task, they also make it hidden. When using MCP, if you ask for your hidden tasks, the LLM won't find them if it doesn't know this.
2025-08-29 13:50:37 -07:00
Taylor Wilsdon
5b8e8477c0
ruff
2025-08-24 14:09:23 -04:00
Taylor Wilsdon
2521694eaa
fix dxt
2025-08-24 14:04:50 -04:00
Taylor Wilsdon
e43766d633
fix claude problems
2025-08-24 14:03:36 -04:00
Taylor Wilsdon
1c28e93e93
chore: release v1.4.5
2025-08-24 14:00:35 -04:00
Taylor Wilsdon
5626bae905
update scope retrieval for legacy oauth2callback
2025-08-24 14:00:21 -04:00
Taylor Wilsdon
9d035fa24f
update dxt
2025-08-24 11:37:22 -04:00
Taylor Wilsdon
7dc50ce51d
chore: release v1.4.4
2025-08-24 11:36:31 -04:00
Taylor Wilsdon
797b710c12
smithery?
2025-08-24 11:26:45 -04:00
Taylor Wilsdon
c1d63c6c3d
smithery?
2025-08-24 11:19:35 -04:00
Taylor Wilsdon
cfec397fa2
Merge pull request #192 from taylorwilsdon/issues/191
...
enh: scope the scopes
2025-08-24 11:15:29 -04:00
Taylor Wilsdon
ec9a20d8a3
scope the scopes
2025-08-24 11:15:11 -04:00
Taylor Wilsdon
24abf2a0f0
scope the scopes
2025-08-24 10:37:04 -04:00
Taylor Wilsdon
bfe984d3fa
smithery
2025-08-23 13:44:03 -04:00
Taylor Wilsdon
318d683849
routes
2025-08-23 13:29:54 -04:00
Taylor Wilsdon
700603317d
Merge branch 'WORKSPACE_MCP_STATELESS_MODE'
2025-08-23 13:05:44 -04:00
Taylor Wilsdon
aeb0302d71
Merge pull request #189 from taylorwilsdon/WORKSPACE_MCP_STATELESS_MODE
...
feat: Stateless Mode for Container Deployments & user_google_email removal
2025-08-23 13:05:19 -04:00
Taylor Wilsdon
b2ffa8f182
stateless
2025-08-23 13:04:37 -04:00
Taylor Wilsdon
38f445f35b
reorder
2025-08-23 12:26:52 -04:00
Taylor Wilsdon
3c6a66b616
whitespace
2025-08-23 12:25:31 -04:00
Taylor Wilsdon
d734e30c05
fix fastmcp_server
2025-08-23 12:24:44 -04:00
Taylor Wilsdon
248c9395da
refac
2025-08-23 12:22:27 -04:00
Taylor Wilsdon
26ef6cc12e
refac
2025-08-23 12:20:27 -04:00
Taylor Wilsdon
788e39368d
refac decorator, add configure_logt_formatting helper, fixed variable scope & pep8
2025-08-23 12:04:04 -04:00
Taylor Wilsdon
57748df9c2
dynamically modify function params when in oauth2.1 mode
2025-08-23 11:39:37 -04:00
Taylor Wilsdon
3280a76a65
stateless mode for fastmcp entrypoint
2025-08-23 11:19:46 -04:00
Taylor Wilsdon
8f9a46e55b
implement WORKSPACE_MCP_STATELESS_MODE
2025-08-23 11:12:21 -04:00
Taylor Wilsdon
0ab155e10e
Merge pull request #185 from emanuilo/feat/docs-pdf-export
...
Add PDF export functionality for Google Docs
2025-08-23 10:19:19 -04:00
Taylor Wilsdon
42a3e9d6a2
ruff
2025-08-23 10:18:50 -04:00
Taylor Wilsdon
d0f277435a
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into feat/docs-pdf-export
2025-08-23 10:16:40 -04:00
Taylor Wilsdon
d05409a93a
avoid recreating file object
2025-08-23 10:16:32 -04:00
Taylor Wilsdon
5d90f8802c
tool tier
2025-08-23 10:11:13 -04:00
Taylor Wilsdon
5b6bc1d0f7
Update core/tool_tiers.yaml
2025-08-23 10:10:04 -04:00
Taylor Wilsdon
fc65c0c5be
Add fastmcp entrypoint
2025-08-22 13:52:56 -04:00
Taylor Wilsdon
090019a645
chore: release v1.4.3
2025-08-22 11:36:46 -04:00
Taylor Wilsdon
0158548de1
dxt update
2025-08-22 11:36:06 -04:00
Taylor Wilsdon
4be6d79c3d
Merge pull request #187 from abelsr/main
...
Refactor base URL handling and add Docker Compose for local development
2025-08-22 11:27:14 -04:00
Taylor Wilsdon
a591783a9b
ruff
2025-08-22 11:03:34 -04:00
Taylor Wilsdon
705cf29df3
update base uri per fastmcp #1387
2025-08-22 10:13:13 -04:00
Taylor Wilsdon
c136e6276f
ruff
2025-08-22 09:52:12 -04:00
Taylor Wilsdon
f1b06446bc
WORKSPACE_EXTERNAL_URL - add an document usage
2025-08-22 09:51:49 -04:00
Taylor Wilsdon
4c424d95d5
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into abelsr/main
2025-08-22 09:34:17 -04:00
Taylor Wilsdon
1336f9eb19
Merge pull request #184 from taylorwilsdon/safe_log_and_int
...
enh: Safe logging & Log Formatting
2025-08-22 09:32:49 -04:00
Taylor Wilsdon
01f48b6c5e
Update auth/google_remote_auth_provider.py
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-08-22 09:31:05 -04:00
Abel Santillan Rodriguez
fb8ea1cf40
fix: update permissions for store_creds volume in Dockerfile
2025-08-22 00:02:02 -06:00
Abel Santillan Rodriguez
1b19930e15
fix: reorder USER command in Dockerfile for proper permissions
2025-08-22 00:00:42 -06:00
Abel Santillan Rodriguez
723e2df335
fix: add permission changes for store_creds volume in Dockerfile
2025-08-21 23:59:39 -06:00
Abel Santillan Rodriguez
a1e4e2632b
fix: correct GOOGLE_MCP_CREDENTIALS_DIR path in docker-compose for gws_mcp service
2025-08-21 23:57:58 -06:00
Abel Santillan Rodriguez
242ff2ea08
fix: update volume mapping for gws_mcp service in docker-compose
2025-08-21 23:55:38 -06:00
Abel Santillan Rodriguez
9c228001c1
fix: update docker-compose to include environment variables and volumes for gws_mcp service
2025-08-21 23:48:08 -06:00
Abel Santillan Rodriguez
8d27afc7e8
feat: add initial docker-compose configuration for gws_mcp service
2025-08-21 17:53:19 -06:00
Abel Santillan Rodriguez
399999144c
fix: ensure trailing slash in resource URL for OAuth protected resource
2025-08-21 13:33:36 -06:00
Abel Santillan Rodriguez
4e1e02d1de
fix: add base_url to authorization_servers and resource_server_url in GoogleRemoteAuthProvider
2025-08-21 13:09:23 -06:00
Abel Santillan Rodriguez
ff364596c3
fix: remove port from authorization and resource server URLs in GoogleRemoteAuthProvider
2025-08-21 13:04:50 -06:00
Abel Santillan Rodriguez
effae6649f
fix: update base_url to exclude port from OAuth configuration
2025-08-21 12:54:39 -06:00
Emanuilo Jovanovic
c552b559ae
feat: add a tool to tool_tiers
2025-08-21 12:38:35 +02:00
Emanuilo Jovanovic
4c5ad0ae78
feat: add docs pdf export
2025-08-21 12:31:55 +02:00
Taylor Wilsdon
fd6afaaa82
log formatting
2025-08-20 18:35:36 -04:00
Taylor Wilsdon
e16654b719
fix typing
2025-08-20 16:46:21 -04:00
Taylor Wilsdon
6cd852e440
fix typing
2025-08-20 16:46:11 -04:00
Taylor Wilsdon
8062cd6803
str -> int for tasks maxresults
2025-08-20 15:25:13 -04:00
Taylor Wilsdon
d89e0e90c8
str -> int for tasks maxresults
2025-08-20 15:24:54 -04:00
Taylor Wilsdon
c32931d72f
str -> int for tasks maxresults
2025-08-20 15:24:15 -04:00
Taylor Wilsdon
c9c2adffa6
bump fastmcp
2025-08-20 09:48:25 -04:00
Taylor Wilsdon
7a19fc76af
safe logging
2025-08-20 09:47:06 -04:00
Taylor Wilsdon
0cb4e569ea
refac docker startup & helm
2025-08-19 16:35:06 -04:00
Taylor Wilsdon
8702415c96
docker tools flag
2025-08-19 16:31:08 -04:00
Taylor Wilsdon
c582174377
bump manifest
2025-08-19 14:59:58 -04:00
Taylor Wilsdon
662a41c40c
chore: release v1.4.2
2025-08-19 14:59:27 -04:00
Taylor Wilsdon
2ec5c52aa4
bump manifest
2025-08-19 14:59:23 -04:00
Taylor Wilsdon
d83a7b356c
chore: release v1.4.1
2025-08-19 14:59:16 -04:00
Taylor Wilsdon
748293bbf2
add tool tiers to build
2025-08-19 14:59:04 -04:00
Taylor Wilsdon
e78d29dbb6
bump manifest
2025-08-19 14:27:08 -04:00
Taylor Wilsdon
bf2b18f26b
Merge pull request #173 from cfdude/integration-fresh
...
feat: enhance Google Docs and Drive functionality with image insertion and permission checking
2025-08-19 14:25:53 -04:00
Taylor Wilsdon
7fe312192f
versioning
2025-08-19 14:16:30 -04:00
Taylor Wilsdon
c94a9cf6a8
restore
2025-08-19 14:15:53 -04:00
Taylor Wilsdon
737b493878
refactor other helpers into helpers lib, consolidate
2025-08-19 14:15:04 -04:00
Taylor Wilsdon
25dddda9b8
restore inadvertently removed tool
2025-08-19 13:59:41 -04:00
Taylor Wilsdon
eb1f0e007d
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into integration-fresh
2025-08-19 13:57:01 -04:00
Rob Sherman
d3049b87f8
fix: remove unused import create_insert_image_request
...
- Fixes ruff F401 linting error for unused import
- Cleanup after removing image insertion functions
2025-08-19 10:45:57 -07:00
Rob Sherman
80d668443e
feat: implement Taylor's requested changes for PR #173
...
- Remove all image insertion functions from gdocs/docs_tools.py as requested
- Add tool tiers for Drive permission functions in 'complete' tier
- Keep Drive permission functionality (get_drive_file_permissions, check_drive_file_public_access)
- Remove insert_doc_image from docs complete tier in tool_tiers.yaml
Addresses Taylor's feedback: 'drop the image insert stuff as that's already available'
and 'Need to add tool tiers for these, let me know which you want I'm assuming complete'
2025-08-19 10:44:29 -07:00
Taylor Wilsdon
b7b53d6684
Update README.md
2025-08-19 12:23:51 -04:00
Taylor Wilsdon
08c6f35421
chore: release v1.4.0
2025-08-18 13:21:55 -04:00
Taylor Wilsdon
1e01535a76
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp
2025-08-18 13:21:31 -04:00
Taylor Wilsdon
a56ebd80c4
manifest.json bump
2025-08-18 13:21:27 -04:00
Taylor Wilsdon
00d9da64aa
update dxt
2025-08-18 13:21:08 -04:00
Taylor Wilsdon
bdd8fcb61f
Merge pull request #161 from shawnzhu/credential-provider
...
feat: abstract credential store
2025-08-18 13:11:57 -04:00
Taylor Wilsdon
34c4a5f8e7
code now properly checks the boolean return value from store_credential instead of overwriting the
...
credentials object.
2025-08-18 13:09:05 -04:00
Taylor Wilsdon
03cb54a2e1
Merge branch 'main' of https://github.com/taylorwilsdon/google_workspace_mcp into credential-provider
2025-08-18 13:04:36 -04:00
Taylor Wilsdon
8d2167222f
Update README.md
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-08-18 13:04:02 -04:00
Taylor Wilsdon
97b59a2b4d
Merge pull request #175 from ForrestTrepte/sort_tasks
...
feat: sort tasks in the same order as the google task list
2025-08-18 13:03:37 -04:00
Taylor Wilsdon
0484b3a842
fstring begone
2025-08-18 12:59:02 -04:00
Taylor Wilsdon
b931636169
Merge branch 'main' of https://github.com/taylorwilsdon/google_workspace_mcp into sort_tasks
2025-08-18 12:47:28 -04:00
Taylor Wilsdon
db12f9e104
docstring formatter
2025-08-18 12:47:09 -04:00
Shawn Zhu
13d0d66f4e
doc: how to use credential store
2025-08-17 17:41:23 -04:00
Forrest Trepte
0ae2c16f97
add note to sort_tasks_by_position docstring
2025-08-17 11:06:40 -07:00
Forrest Trepte
51f7376d0f
LIST_TASKS_MAX_POSITION constant
2025-08-17 11:03:50 -07:00
Taylor Wilsdon
2699eecf90
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into integration-fresh
2025-08-17 14:01:00 -04:00
Forrest Trepte
6db94a0e0b
LIST_TASKS_MAX_RESULTS_DEFAULT/MAX constants
2025-08-17 10:34:28 -07:00
Taylor Wilsdon
29f677f47b
Merge pull request #176 from taylorwilsdon/tool_tiers
...
enh: Tool tiers - granular tools registration control
2025-08-17 11:50:33 -04:00
Taylor Wilsdon
c66ef56fbe
updates
2025-08-17 11:43:46 -04:00
Taylor Wilsdon
33907b4776
more fmt
2025-08-17 11:40:56 -04:00
Taylor Wilsdon
ce0838f230
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into tool_tiers
2025-08-17 11:39:58 -04:00
Taylor Wilsdon
45ea1eb0b5
more fmt
2025-08-17 11:39:54 -04:00
Taylor Wilsdon
f58036cafc
better tool tiers
2025-08-17 11:27:23 -04:00
Taylor Wilsdon
f4f73478ba
more readme
2025-08-17 11:06:53 -04:00
Taylor Wilsdon
9a60dbeb7d
more readme
2025-08-17 11:06:40 -04:00
Taylor Wilsdon
ce0314d361
more readme
2025-08-17 11:05:00 -04:00
Taylor Wilsdon
d5b9ba17dd
rearrange table
2025-08-17 11:03:43 -04:00
Taylor Wilsdon
206b0314aa
rearrange table
2025-08-17 11:01:58 -04:00
Taylor Wilsdon
811585da2e
rearrange table
2025-08-17 10:41:08 -04:00
Taylor Wilsdon
1821c061aa
rearrange table
2025-08-17 10:40:11 -04:00
Taylor Wilsdon
942538938b
rearrange table
2025-08-17 10:39:47 -04:00
Taylor Wilsdon
cedef24158
rearrange table
2025-08-17 10:38:43 -04:00
Taylor Wilsdon
629958892f
rearrange table
2025-08-17 10:37:44 -04:00
Taylor Wilsdon
9113500566
rearrange table
2025-08-17 10:36:49 -04:00
Taylor Wilsdon
8149c6b106
more readme
2025-08-17 10:02:02 -04:00
Taylor Wilsdon
3f5a248dcd
more readme
2025-08-17 09:49:41 -04:00
Taylor Wilsdon
62365bbaf5
Update README.md
2025-08-16 20:42:58 -04:00
Taylor Wilsdon
98a8f0673c
readme love
2025-08-16 18:50:58 -04:00
Taylor Wilsdon
308d089126
emojis for adults
2025-08-16 18:48:13 -04:00
Taylor Wilsdon
e853de10f5
fix ruff check
2025-08-16 18:10:39 -04:00
Taylor Wilsdon
531fb3b3f9
emojis for adults
2025-08-16 18:03:06 -04:00
Taylor Wilsdon
8afe112e22
tool registry middleware
2025-08-16 17:14:27 -04:00
Taylor Wilsdon
1e938e81dd
overhaul the readme
2025-08-16 17:14:14 -04:00
Taylor Wilsdon
539a3f3781
play nice with --tools
2025-08-16 16:41:35 -04:00
Taylor Wilsdon
84373a06fc
add new tool tier startup flag for flexible tool registration
2025-08-16 16:21:37 -04:00
Forrest Trepte
6ea2f6cd78
support max_results larger than the Google API page size
...
This allows the server to return a large task list in sorted order instead of pages of tasks as returned by the Google API in an arbitrary order.
2025-08-16 12:47:22 -07:00
Forrest Trepte
ccf549df6d
warn about orphaned subtasks
2025-08-16 11:40:26 -07:00
Taylor Wilsdon
8c17bc15b0
add tool tiers - first pass
2025-08-16 14:26:36 -04:00
Forrest Trepte
ee27a9258f
sort tasks by position
2025-08-16 11:15:33 -07:00
Taylor Wilsdon
a8de9916f5
add tool tiers - first pass
2025-08-16 13:29:52 -04:00
Taylor Wilsdon
10f81558c7
consolidated calendar event and events tools
2025-08-16 13:28:48 -04:00
Rob Sherman
40405228f8
fix: resolve ruff linting errors
...
- Remove unused imports (Optional, Dict, Any) from typing
- Fix f-string without placeholder (line 54)
- All ruff checks now pass
2025-08-14 18:47:35 -07:00
Rob Sherman
203005b76d
feat: enhance Google Docs and Drive functionality
...
- Add insert_doc_image_from_drive() with permission checking
- Add insert_doc_image_url() for URL-based image insertion
- Add gdrive/drive_file_permissions.py with permission utilities
- Add gdrive/drive_helpers.py with Drive utility functions
- Add create_insert_text_segment_request() helper for headers/footers
- Improve error handling to distinguish auth vs validation errors
- Maintain backward compatibility with existing functionality
- Include comprehensive error messages and user guidance
Tested successfully with real Google Workspace integration.
2025-08-14 18:38:37 -07:00
Taylor Wilsdon
99018d32d4
Merge pull request #164 from shawnzhu/schema-modifier
...
remove user_google_email parameter for multi-user mode
2025-08-14 11:12:16 -04:00
Taylor Wilsdon
efcd525870
ruff check
2025-08-14 11:10:23 -04:00
Taylor Wilsdon
90533bb5f9
Update main.py
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-08-14 11:06:15 -04:00
Taylor Wilsdon
845d3f0db3
update readme for oauth21
2025-08-14 10:23:09 -04:00
Taylor Wilsdon
985228046e
improve logic a bit, cleanup
2025-08-14 10:22:20 -04:00
Shawn Zhu
3a52f16f14
removes user_google_email argument from tool schema under multi-user mode
2025-08-13 22:36:19 -04:00
Shawn Zhu
f59eb0a0b2
Merge branch 'main' into schema-modifier
2025-08-13 21:20:02 -04:00
Taylor Wilsdon
baff861274
improve smithery
2025-08-13 18:06:21 -04:00
Taylor Wilsdon
cdff04c6bc
try smithery a different way
2025-08-13 17:49:34 -04:00
Taylor Wilsdon
4fe2cd90c3
try smithery a different way
2025-08-13 17:45:37 -04:00
Taylor Wilsdon
b4df2b76d7
simplify docker startup
2025-08-13 17:10:47 -04:00
Taylor Wilsdon
5d9860533c
smithery docs are useless
2025-08-13 16:57:08 -04:00
Taylor Wilsdon
1b06bef0a7
Merge pull request #171 from taylorwilsdon/enh_oauth_and_startup
...
enh: Modularize OAuth Further, Add Startup Port Availability Check
2025-08-13 16:34:09 -04:00
Taylor Wilsdon
23ff1d913e
attempt to unfuck smithery one last time before I delete this outright
2025-08-13 16:33:59 -04:00
Taylor Wilsdon
9bdbd64b27
ruff check
2025-08-13 16:22:49 -04:00
Taylor Wilsdon
f17c4fec15
refac service decorator to simplify and remove unused cache nonsense
2025-08-13 16:21:58 -04:00
Taylor Wilsdon
c3bb9ee5b0
consolidate _update_email_in_args
2025-08-13 15:56:46 -04:00
Taylor Wilsdon
e89161240c
check if port is available in startup flow
2025-08-13 15:46:03 -04:00
Taylor Wilsdon
f3e9c55a0c
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into feat/gmail-html-bodies
2025-08-13 15:39:35 -04:00
Taylor Wilsdon
b3236d6c5e
format
2025-08-13 15:39:32 -04:00
Taylor Wilsdon
09a4f2d311
Merge pull request #168 from Menelaus48/feat/gmail-html-bodies
...
feat(gmail): add HTML body extraction with text fallback
2025-08-13 13:13:59 -04:00
Taylor Wilsdon
9c1b859d12
trim trailing whitespace
2025-08-13 12:05:06 -04:00
Taylor Wilsdon
2a7fdd3a21
Merge branch 'main' of https://github.com/taylorwilsdon/google_workspace_mcp into feat/gmail-html-bodies
2025-08-13 12:04:08 -04:00
Taylor Wilsdon
c2d1c71bed
refac
2025-08-13 12:04:07 -04:00
Taylor Wilsdon
fd0118f912
Update README.md
2025-08-13 10:38:55 -04:00
Taylor Wilsdon
c767aa2357
constant for body limit
2025-08-13 10:20:35 -04:00
Taylor Wilsdon
6d8e4c2ca6
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into feat/gmail-html-bodies
2025-08-13 10:12:21 -04:00
Taylor Wilsdon
7287e958ab
Merge pull request #169 from Menelaus48/feat/gmail-label-array-schema
...
fix(gmail): accept List[str] for label arrays; emit clean array schema (single + batch)
2025-08-13 10:07:04 -04:00
Taylor Wilsdon
d57e9a2927
pull in main
2025-08-13 09:53:05 -04:00
Taylor Wilsdon
461fc877b9
pull in main
2025-08-13 09:48:51 -04:00
Taylor Wilsdon
0954465174
body -> field
2025-08-13 09:48:34 -04:00
Taylor Wilsdon
dd5d5c774e
body -> field
2025-08-13 09:44:53 -04:00
Taylor Wilsdon
3e79c5415b
chore: release v1.3.4
2025-08-13 09:24:23 -04:00
Taylor Wilsdon
7bdac6081b
dxt update
2025-08-13 09:24:05 -04:00
Taylor Wilsdon
6a6b7b806a
bump manifest
2025-08-13 09:23:56 -04:00
Taylor Wilsdon
3538f0b395
bump manifest
2025-08-13 09:23:46 -04:00
Taylor Wilsdon
ffeabd6423
repack dxt
2025-08-13 09:23:27 -04:00
Taylor Wilsdon
968695cfcd
Merge pull request #166 from taylorwilsdon/oauth_cleanup_consolidate
...
enh: Cleanup & Consolidate OAuth Logic
2025-08-13 09:11:13 -04:00
Taylor Wilsdon
2159f5f19d
Update README.md
2025-08-13 08:59:39 -04:00
Taylor Wilsdon
3f6820dbc7
Update README.md
2025-08-13 08:58:25 -04:00
Peter Alfieri
3f1a1d5edc
fix(gmail): accept List[str] for label arrays with empty defaults; fix tool schema (single + batch)
2025-08-13 01:11:35 -04:00
Peter Alfieri
4857b760b5
feat(gmail): add HTML body extraction with text fallback (single + batch)
...
Add _extract_message_bodies() to return text and HTML (BFS over multipart)
Prefer text/plain; gracefully fall back to HTML-only bodies
Update single and batch tools; truncate very large HTML; guard base64 decode
Backward compatible; no new deps
Testing: verified with live eBay emails (single and batch show "[HTML Content Converted]")
2025-08-13 00:14:26 -04:00
Taylor Wilsdon
0cb802ee6f
cleanup & log correct username in output
2025-08-12 18:19:24 -04:00
Taylor Wilsdon
31d902203e
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into oauth_cleanup_consolidate
2025-08-12 10:42:01 -04:00
Taylor Wilsdon
70146c27da
Update README.md
2025-08-12 10:35:43 -04:00
Taylor Wilsdon
f773c81c88
Update README.md
2025-08-12 10:19:44 -04:00
Taylor Wilsdon
16dc019138
add ruff workflow
2025-08-12 09:46:33 -04:00
Taylor Wilsdon
8ff093dc20
ruff check fixes
2025-08-12 09:37:20 -04:00
Taylor Wilsdon
004a462496
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into oauth_cleanup_consolidate
2025-08-12 08:45:34 -04:00
Taylor Wilsdon
dc404fdaef
oauth cleanup
2025-08-12 08:45:24 -04:00
Shawn Zhu
68a3307dd9
addresses review comments
2025-08-11 20:44:14 -04:00
Shawn Zhu
2f0c607d5d
remove user_google_email parameter for multi-user mode
2025-08-11 19:16:41 -04:00
Taylor Wilsdon
30953b9abd
Update README.md
2025-08-11 18:09:54 -04:00
Taylor Wilsdon
604964cba8
Update README.md
2025-08-11 18:08:00 -04:00
Taylor Wilsdon
fff945a063
release
2025-08-11 16:56:11 -04:00
Taylor Wilsdon
5fa1387b18
chore: release v1.3.3
2025-08-11 16:15:15 -04:00
Taylor Wilsdon
989dda8c20
fix registration
2025-08-11 16:15:09 -04:00
Taylor Wilsdon
a0a5d589bd
fix registration
2025-08-11 16:12:47 -04:00
Shawn Zhu
c505a4782b
feat: abstract credential store
2025-08-10 18:11:27 -04:00
Taylor Wilsdon
0384347878
chore: release v1.3.2
2025-08-10 17:51:09 -04:00
Taylor Wilsdon
1a155e3c88
start_google_auth docstring
2025-08-10 17:40:27 -04:00
Taylor Wilsdon
c719b2573d
Merge pull request #159 from taylorwilsdon/enhanced_docs
...
feat: Enhanced Google Doc Editing Granularity
2025-08-10 16:29:15 -04:00
Taylor Wilsdon
a3db9cefa4
table data checks
2025-08-10 16:28:40 -04:00
Taylor Wilsdon
6022d2c7d9
consolidate the doc modification functions
2025-08-10 16:22:27 -04:00
Taylor Wilsdon
0c1edf996e
fixes
2025-08-10 16:10:47 -04:00
Taylor Wilsdon
5bcd149f40
lots of fixes
2025-08-10 15:56:18 -04:00
Taylor Wilsdon
543f85ac1c
helpers for formatting
2025-08-10 15:33:11 -04:00
Taylor Wilsdon
e29ff043fd
refactor into modules
2025-08-10 15:21:10 -04:00
Taylor Wilsdon
8ca2c4e83b
add helpers
2025-08-10 14:54:18 -04:00
Taylor Wilsdon
d67e1fcf0f
clean up docstrings
2025-08-10 14:35:56 -04:00
Taylor Wilsdon
28d0ef1ba7
Merge commit '6fe2fcdfa21e1a89f7b534bf7cc1846a6aeb2ec9' into enhanced_docs
2025-08-10 14:29:21 -04:00
Taylor Wilsdon
6fe2fcdfa2
creating tables actually working reliably
2025-08-10 14:21:01 -04:00
Taylor Wilsdon
0279ffff92
gitignore cleanup
2025-08-10 10:37:57 -04:00
Taylor Wilsdon
fcf407201d
Update gdocs/docs_tools.py
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-08-10 10:36:41 -04:00
Taylor Wilsdon
68f2b41065
Merge pull request #156 from yairwein/fix-modify-sheet-values-type-mismatch
...
fix: handle JSON string input for modify_sheet_values parameter
2025-08-10 10:34:24 -04:00
Taylor Wilsdon
c92a4ae0e4
add python-dotenv
2025-08-10 10:24:15 -04:00
Yair Weinberger
ec01bf7e79
fix: handle JSON string input for modify_sheet_values parameter
...
Fixes type mismatch error preventing MCP clients from calling modify_sheet_values.
## Problem
FastMCP 2.11.1 passes complex nested types (like List[List[str]]) as JSON strings
through the MCP protocol, but the schema validation expected the actual Python type.
This caused validation failures with error: '[["Task"]]' is not valid under any of
the given schemas.
## Solution
- Accept both str and List[List[str]] types for the values parameter
- Parse JSON string input to Python list when received from MCP clients
- Validate structure is a proper 2D array (list of lists)
- Maintain backward compatibility with direct Python list input
## Changes
- Added json import and Union type hint
- Modified values parameter to accept Union[str, List[List[str]]]
- Added JSON parsing logic with proper validation
- Updated docstring to document both input formats
This follows the proven pattern used in calendar_tools.py for handling reminders.
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-08-10 12:00:36 +03:00
Rob Sherman
f369ca1635
feat(docs): add comprehensive Google Docs editing capabilities
...
Add full document editing and manipulation support to Google Docs tools,
expanding beyond read-only operations to match Google Docs API capabilities.
Features added:
- Text operations: update_doc_text, find_and_replace_doc, format_doc_text
- Structural elements: insert_doc_elements, insert_doc_image
- Document management: update_doc_headers_footers, batch_update_doc
- Helper functions module for common document operations
Changes:
- gdocs/docs_tools.py: Add 7 new editing functions with comprehensive error handling
- gdocs/docs_helpers.py: New helper module with utility functions for document operations
- README.md: Update Google Docs description to include full editing capabilities
- CLAUDE.md: Add comprehensive documentation for new editing features
- .mcp.json: Add MCP server configuration file
- .gitignore: Resolve merge conflicts from upstream sync
- uv.lock: Update dependencies from upstream merge
The implementation uses Google Docs API batchUpdate operations for atomic
document modifications and maintains compatibility with existing authentication
and error handling patterns.
All new tools follow the established @require_google_service decorator pattern
and include proper scope management for write operations.
2025-08-09 17:57:34 -07:00
Taylor Wilsdon
eca4845fef
chore: release v1.3.1
2025-08-09 12:26:20 -04:00
Taylor Wilsdon
94a3808d91
update dxt
2025-08-09 12:25:42 -04:00
Taylor Wilsdon
9c3f850be2
Merge pull request #154 from taylorwilsdon/cleanup_oauth
...
enh: cleanup / refac and remove unnecessary legacy module
2025-08-09 12:23:24 -04:00
Taylor Wilsdon
a80735df5e
ruff check cleanup
2025-08-09 12:21:42 -04:00
Taylor Wilsdon
58f55019c4
cleanup / refac and remove unnecessary legacy module
2025-08-09 12:18:08 -04:00
Taylor Wilsdon
c93e9cc0cf
update dxt
2025-08-09 12:00:53 -04:00
Taylor Wilsdon
c6cc859d35
update dxt
2025-08-09 12:00:38 -04:00
Taylor Wilsdon
5afd7c8bdd
chore: release v1.3.0
2025-08-09 11:59:30 -04:00
Taylor Wilsdon
5b8b639f44
Merge pull request #153 from taylorwilsdon/vscode_oauth_support
...
feat: Streamlined VSCode OAuth Support
2025-08-09 11:58:10 -04:00
Taylor Wilsdon
773645794a
source of truth for oauth2.1 enablement
2025-08-09 11:53:00 -04:00
Taylor Wilsdon
374dc9c3e7
simplify cors middleware implementation
2025-08-09 11:44:12 -04:00
Taylor Wilsdon
42dcd54b18
update readme
2025-08-09 11:16:35 -04:00
Taylor Wilsdon
438d1fcd02
remove vscode cruft
2025-08-09 11:15:43 -04:00
Taylor Wilsdon
188eea3d3b
no need for port sillyness
2025-08-09 10:52:14 -04:00
Taylor Wilsdon
6e60979879
refactor to centralize, move to desktop type
2025-08-09 10:46:31 -04:00
Taylor Wilsdon
ed379bbf2c
works in all with /mcp
2025-08-09 10:04:33 -04:00
Taylor Wilsdon
412b892c6d
works with /mcp/ in both mcp inspector and vscode
2025-08-09 10:02:37 -04:00
Taylor Wilsdon
34b18b2ca4
fixerup
2025-08-08 19:34:07 -04:00
Taylor Wilsdon
73d44693aa
no more hardcoded constants
2025-08-08 19:01:56 -04:00
Taylor Wilsdon
d191a0c95c
Update README.md
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-08-08 17:53:25 -04:00
Taylor Wilsdon
9a24b90818
ruff check
2025-08-08 17:51:04 -04:00
Taylor Wilsdon
498a3dd395
rm
2025-08-08 17:50:48 -04:00
Taylor Wilsdon
fb5f1d5f12
readme updates
2025-08-08 17:31:26 -04:00
Taylor Wilsdon
5b0832bfbd
authlib
2025-08-08 17:12:41 -04:00
Taylor Wilsdon
39a97b63a1
break the loop - working again with mcp inspector
2025-08-08 16:43:33 -04:00
Taylor Wilsdon
6d0a674037
works
2025-08-08 13:43:26 -04:00
Taylor Wilsdon
10471e1707
chore: release v1.2.2
2025-08-07 16:07:56 -04:00
Taylor Wilsdon
358ea4373e
update dxt
2025-08-07 16:07:04 -04:00
Taylor Wilsdon
6a6ff34128
Merge pull request #150 from taylorwilsdon/issues/148
...
centralize redirect uri logic and update GOOGLE_OAUTH_REDIRECT_URI docs
2025-08-07 16:06:33 -04:00
Taylor Wilsdon
e5e830a1fa
cleanup
2025-08-07 16:03:10 -04:00
Taylor Wilsdon
f1b6d99301
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into issues/148
2025-08-07 15:59:04 -04:00
Taylor Wilsdon
81c171e884
fix core/server start_auth_flow (thanks @sabhay jain!)
2025-08-07 15:58:22 -04:00
Taylor Wilsdon
436692fb6a
Merge pull request #149 from benjaminjackson/main
...
Add reminder support to Google Calendar MCP
2025-08-07 13:28:49 -04:00
Taylor Wilsdon
224f122e2f
better default handling
2025-08-07 13:28:21 -04:00
Taylor Wilsdon
54dbcb777c
handle string and json object
2025-08-07 13:15:31 -04:00
Taylor Wilsdon
753242f44d
Merge branch 'main' of https://github.com/taylorwilsdon/google_workspace_mcp into benjaminjackson/main
2025-08-07 11:39:11 -04:00
Taylor Wilsdon
dcdc90df4d
expand coverage to all oauth routes
2025-08-07 11:37:08 -04:00
Taylor Wilsdon
7c09018144
centralize redirect uri logic and update GOOGLE_OAUTH_REDIRECT_URI docs
2025-08-07 10:40:39 -04:00
Taylor Wilsdon
f42d711007
Update issue templates
2025-08-07 09:38:53 -04:00
Taylor Wilsdon
24f8d075fe
Update README.md
2025-08-07 09:35:53 -04:00
Benjamin Jackson
fe6f159ed7
Add reminder support to Google Calendar MCP
...
- Add reminder parameters to create_event and modify_event functions
- Support popup and email reminder methods with configurable timing
- JSON string parameter format for MCP compatibility
- Validate reminder format, method, and timing constraints
- Maximum 5 reminders per event, 0-40320 minutes range
2025-08-07 12:41:05 +02:00
Taylor Wilsdon
b5448597b3
chore: release v1.2.1
2025-08-06 11:17:01 -04:00
Taylor Wilsdon
454bd94711
fix regex and update dxt
2025-08-06 11:15:43 -04:00
Taylor Wilsdon
a962b90387
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp
2025-08-06 11:12:31 -04:00
Taylor Wilsdon
406b69d208
Merge pull request #144 from murphybread/fix/missing-user-email-config
...
feat: Enable USER_GOOGLE_EMAIL configuration in manifest.json for DXT users
2025-08-06 11:11:15 -04:00
Taylor Wilsdon
7ec843bd12
Update manifest.json
2025-08-06 11:08:07 -04:00
Taylor Wilsdon
43ab3eacc7
update dxt
2025-08-06 10:56:03 -04:00
Taylor Wilsdon
28cdfd87f9
Merge pull request #147 from taylorwilsdon/user_email_in_oauth21
...
enh: Disable USER_GOOGLE_EMAIL when running in OAuth 2.1 Multi User Mode
2025-08-06 10:54:49 -04:00
Taylor Wilsdon
d583f96ed9
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into user_email_in_oauth21
2025-08-06 10:53:30 -04:00
Taylor Wilsdon
51d41da71d
Merge pull request #146 from taylorwilsdon/helm_charts
...
enh: Add Helm Chart for k8s
2025-08-06 10:52:57 -04:00
Taylor Wilsdon
ab6d6da916
Update helm-chart/workspace-mcp/README.md
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-08-06 10:52:48 -04:00
Taylor Wilsdon
8c894c9ca1
Update helm-chart/workspace-mcp/templates/NOTES.txt
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-08-06 10:52:04 -04:00
Taylor Wilsdon
8e8bafd2bd
image tag templating and base uri config
2025-08-06 10:45:28 -04:00
murphybread
4a6d28fe90
Update manifest.json
...
Co-authored-by: Taylor Wilsdon <tbarrettwilsdon@gmail.com >
2025-08-06 23:23:02 +09:00
murphybread
c79e6d9bc3
Update manifest.json
...
Co-authored-by: Taylor Wilsdon <tbarrettwilsdon@gmail.com >
2025-08-06 23:22:56 +09:00
Taylor Wilsdon
aee74f0b67
USER_GOOGLE_EMAIL to None when MCP_ENABLE_OAUTH21=true
2025-08-06 10:19:26 -04:00
Taylor Wilsdon
4c49529808
add helm chart
2025-08-06 10:14:01 -04:00
Murphybread
75e2ac3abe
fix: Add USER_GOOGLE_EMAIL to manifest config
2025-08-06 22:46:35 +09:00
Taylor Wilsdon
8d55affe81
fix dockerfile
2025-08-06 09:33:09 -04:00
Taylor Wilsdon
ee83ab7697
dxt and uv updates
2025-08-05 19:11:34 -04:00
Taylor Wilsdon
275422b16c
Update manifest.json
2025-08-05 19:08:05 -04:00
Taylor Wilsdon
9e61180251
Update README.md
2025-08-05 18:06:00 -04:00
Taylor Wilsdon
206999126a
chore: release v1.2.0
2025-08-05 16:48:53 -04:00
Taylor Wilsdon
db1ae95425
version
2025-08-05 16:48:47 -04:00
Taylor Wilsdon
b0e0825b44
chore: release v1.2.0
2025-08-05 16:47:19 -04:00
Taylor Wilsdon
2257e93a80
Merge pull request #137 from taylorwilsdon/oauth_2.1
...
feat: Full Client to Server OAuth 2.1 Implementation - 06/18 MCP Spec
2025-08-05 16:45:59 -04:00
Taylor Wilsdon
9059691b85
Merge branch 'oauth_2.1' of github.com:taylorwilsdon/google_workspace_mcp into oauth_2.1
2025-08-05 16:42:51 -04:00
Taylor Wilsdon
96f0e234ca
dynamic scope awareness
2025-08-05 16:42:46 -04:00
Taylor Wilsdon
d8a6f76981
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into oauth_2.1
2025-08-05 16:42:17 -04:00
Taylor Wilsdon
13dad56607
Update auth/oauth_common_handlers.py
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-08-05 16:39:19 -04:00
Taylor Wilsdon
b9361647ca
Update auth/service_decorator.py
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-08-05 16:38:12 -04:00
Taylor Wilsdon
8df528d8fe
Merge pull request #142 from yairwein/fix-google-slides-thumbnail-api
...
Fix Google Slides getThumbnail API parameter names
2025-08-05 16:23:39 -04:00
Taylor Wilsdon
2f08cec133
logging cleanup
2025-08-05 15:58:22 -04:00
Taylor Wilsdon
c861d7484a
only register endpoints if googleauthprovider not available
2025-08-05 14:54:48 -04:00
Taylor Wilsdon
7593163506
fully working in all transport modes and fallbacks!
2025-08-05 14:34:11 -04:00
Taylor Wilsdon
63ead78f91
dotenv update
2025-08-05 11:53:31 -04:00
Taylor Wilsdon
58d9c4464e
dotenv example
2025-08-05 11:47:41 -04:00
Taylor Wilsdon
61f3e38f0a
readme update
2025-08-05 11:44:06 -04:00
Taylor Wilsdon
fd8935e7cd
readme update
2025-08-05 11:43:53 -04:00
Yair Weinberger
14e11a3b07
Fix Google Slides getThumbnail API parameter names
...
The getThumbnail API call was using incorrect parameter name
`thumbnailPropertiesImageSize` instead of the flattened parameter
names required by the Google API Python client:
- `thumbnailProperties_thumbnailSize`
- `thumbnailProperties_mimeType`
This fix aligns with the official Google API Python client
documentation for nested query parameters.
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-08-05 18:30:10 +03:00
Taylor Wilsdon
e03b10c024
fix stdio
2025-08-05 11:22:22 -04:00
Taylor Wilsdon
ee792b65d8
refac to remove duplicate OAuth 2.1 routes in core/server.py
2025-08-05 11:00:53 -04:00
Taylor Wilsdon
e54450cdad
refac to remove duplicate OAuth 2.1 routes in core/server.py
2025-08-05 11:00:48 -04:00
Taylor Wilsdon
07c065c57b
Created a _process_request_for_auth helper method
2025-08-05 10:44:27 -04:00
Taylor Wilsdon
0967594097
completely working
2025-08-05 10:22:01 -04:00
Taylor Wilsdon
3012880098
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into oauth_2.1
2025-08-04 18:22:40 -04:00
Taylor Wilsdon
6fcefd599b
Merge pull request #140 from benjaminjackson/main
...
Add threaded replies, CC and BCC to Gmail send/draft functions
2025-08-04 10:31:53 -04:00
Benjamin Jackson
e061ed1a82
Add CC and BCC support to Gmail send and draft functions
2025-08-04 12:56:38 +02:00
Benjamin Jackson
f8e859dc9e
Refactor Gmail email preparation logic to eliminate code duplication
2025-08-04 12:53:04 +02:00
Benjamin Jackson
bdb06a41f1
Add email threading support to Gmail send functionality
...
- Add thread_id, in_reply_to, and references parameters for proper reply threading
- Auto-format reply subjects with 'Re:' prefix when replying
- Include proper email headers for threading (In-Reply-To, References)
- Add examples for both new emails and reply emails in docstring
- Achieve feature parity between send_gmail_message and draft_gmail_message
2025-08-04 12:48:38 +02:00
Benjamin Jackson
c5354554b6
Add email threading support to Gmail draft functionality
...
- Add thread_id, in_reply_to, and references parameters for proper reply threading
- Auto-format reply subjects with 'Re:' prefix when replying
- Include proper email headers for threading (In-Reply-To, References)
- Add examples for both new drafts and reply drafts in docstring
2025-08-04 12:41:01 +02:00
Taylor Wilsdon
71e2f1ba3e
Enhanced Session Management better guardrails
2025-08-03 15:51:04 -04:00
Taylor Wilsdon
ff9b7ecd07
cleanup
2025-08-03 12:19:19 -04:00
Taylor Wilsdon
ff6845c86d
unfuck client registration
2025-08-03 12:15:44 -04:00
Taylor Wilsdon
737e4ea807
cleanup oauth routes
2025-08-03 12:00:41 -04:00
Taylor Wilsdon
ba48a4803d
refac bridge and context modules, absorb essential functioanlity into oaauth21sessionstore
2025-08-03 11:27:50 -04:00
Taylor Wilsdon
bb55feed83
cleanup redundant session stores
2025-08-03 11:12:58 -04:00
Taylor Wilsdon
065889fede
refactor to clean up scopes
2025-08-03 10:30:12 -04:00
Taylor Wilsdon
2836f6c45f
refactor to clean up scopes
2025-08-03 10:30:04 -04:00
Taylor Wilsdon
d5949ee5b1
validate jwks, fix service decorator session handling
2025-08-03 10:07:55 -04:00
Taylor Wilsdon
2a4118bb65
fix all ruff check issues
2025-08-02 18:55:35 -04:00
Taylor Wilsdon
e37803240a
everything working, including session correlation and service decorator oauth awareness
2025-08-02 18:50:49 -04:00
Taylor Wilsdon
c45bb3956c
oauth2.1 truly works
2025-08-02 18:25:08 -04:00
Taylor Wilsdon
9470a41dde
almost there, working out session persistence
2025-08-02 15:40:23 -04:00
Taylor Wilsdon
06ef1223dd
cleanup
2025-08-02 14:33:33 -04:00
Taylor Wilsdon
5aae243b22
minimal fastmcp based oauth working
2025-08-02 14:32:42 -04:00
Taylor Wilsdon
b2f5ec1052
successful client to server flow, not passing through. overcomplicated. need to refactor based on new fastmcp oauth wrapper
2025-08-02 10:38:11 -04:00
Taylor Wilsdon
dad52829f8
oauth2.1 working - quick flow in mcp inspector
2025-08-02 09:52:16 -04:00
Taylor Wilsdon
8d053680c0
merge
2025-08-01 13:19:09 -04:00
Taylor Wilsdon
6cb5b05da1
dxt bump
2025-08-01 12:18:11 -04:00
Taylor Wilsdon
add4e9b114
chore: release v1.1.17
2025-08-01 12:15:37 -04:00
Taylor Wilsdon
7385ad2e6c
version
2025-08-01 12:14:18 -04:00
Taylor Wilsdon
e9efcde434
chore: release v1.1.17
2025-08-01 12:13:50 -04:00
Taylor Wilsdon
3992ab9cfb
version
2025-08-01 12:13:04 -04:00
Taylor Wilsdon
c48beb02e5
chore: release v1.1.17
2025-08-01 12:12:12 -04:00
Taylor Wilsdon
edfd4b34a5
version
2025-08-01 12:12:01 -04:00
Taylor Wilsdon
4cf0df270f
version
2025-08-01 12:10:17 -04:00
Taylor Wilsdon
b9aba4bf1f
chore: release v1.1.17
2025-08-01 12:04:14 -04:00
Taylor Wilsdon
e92364b1c0
version
2025-08-01 12:04:04 -04:00
Taylor Wilsdon
64c70b4885
chore: release v1.1.17
2025-08-01 12:01:02 -04:00
Taylor Wilsdon
50d866fe71
version
2025-08-01 12:00:58 -04:00
Taylor Wilsdon
54d7c6dffa
chore: release v1.1.17
2025-08-01 12:00:30 -04:00
Taylor Wilsdon
45f1fe733d
remove server_url
2025-08-01 11:59:04 -04:00
Taylor Wilsdon
4b349bebb6
upgrade fastmcp version
2025-08-01 11:54:48 -04:00
Taylor Wilsdon
5ffc0437f7
add docstrings - thanks gyliu513
2025-07-31 10:00:49 -04:00
Taylor Wilsdon
51c959b25b
chore: release v1.1.16
2025-07-30 10:23:02 -04:00
Taylor Wilsdon
3cf157d3be
dxt update
2025-07-30 10:22:39 -04:00
Taylor Wilsdon
89ec86a330
Merge pull request #134 from taylorwilsdon/google_search
...
feat: Google Custom Search / Programmable Search Engine (PSE) Support
2025-07-30 10:21:45 -04:00
Taylor Wilsdon
e89642d259
Update manifest.json
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-07-30 10:21:12 -04:00
Taylor Wilsdon
5da681947b
dxt support for pse
2025-07-30 10:20:16 -04:00
Taylor Wilsdon
9505f2a3c5
add engine id key
2025-07-30 10:18:00 -04:00
Taylor Wilsdon
113a37d5c1
fix package registration
2025-07-30 10:12:09 -04:00
Taylor Wilsdon
2aea2325bc
pse api key & docs
2025-07-30 10:04:09 -04:00
Taylor Wilsdon
f77f4d742d
add google pse support
2025-07-30 09:52:10 -04:00
Taylor Wilsdon
33c6484a74
chore: release v1.1.15
2025-07-28 13:38:57 -04:00
Taylor Wilsdon
4aad256779
update dxt
2025-07-28 13:38:44 -04:00
Taylor Wilsdon
5f90604b9e
preserve existing fields dedupe logic
2025-07-28 13:37:01 -04:00
Taylor Wilsdon
4930d37028
Merge pull request #131 from taylorwilsdon/issues/129
...
feat: Google Meet support for create and edit event, fix move attributes
2025-07-28 13:36:30 -04:00
Taylor Wilsdon
0d829fcebf
add google meet link support to create and edit event methods
2025-07-28 13:25:02 -04:00
Taylor Wilsdon
247928668c
chore: release v1.1.14
2025-07-28 11:54:49 -04:00
Taylor Wilsdon
a205617684
update dxt
2025-07-28 11:54:42 -04:00
Taylor Wilsdon
fd94ae37a0
Merge pull request #128 from taylorwilsdon/api_enablement_handler
...
enh: Add instructions for LLM if API is not enabled
2025-07-28 11:53:48 -04:00
Taylor Wilsdon
df6ee3d266
Update core/api_enablement.py
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-07-28 11:53:39 -04:00
Taylor Wilsdon
8939b9b045
Update core/api_enablement.py
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-07-28 11:53:33 -04:00
Taylor Wilsdon
b4743d2f16
add instructions for llm if api not enabled
2025-07-28 11:49:01 -04:00
Taylor Wilsdon
18bf5c5ebf
Update README.md
2025-07-28 11:34:52 -04:00
Taylor Wilsdon
edb962d616
chore: release v1.1.13
2025-07-26 16:58:53 -04:00
Taylor Wilsdon
5a74a5f329
update dxt
2025-07-26 16:58:42 -04:00
Taylor Wilsdon
ca0b7f8931
Merge pull request #125 from taylorwilsdon/better_auth_fails
...
enh: add more elegant handling for oauth server startup in stdio mode
2025-07-26 16:57:40 -04:00
Taylor Wilsdon
2d50a73518
threadlock for oauth server teardown
2025-07-26 16:56:47 -04:00
Taylor Wilsdon
701bbe999a
threadlock for oauth server teardown
2025-07-26 16:56:14 -04:00
Taylor Wilsdon
16c32e93fb
fix threading communication issue
2025-07-26 16:44:02 -04:00
Taylor Wilsdon
05c1c3b8f3
better logic
2025-07-26 16:38:08 -04:00
Taylor Wilsdon
0fb75221bf
improve minimal oauth healthcheck in stdio mode
2025-07-26 16:35:03 -04:00
Taylor Wilsdon
21ebff4b8a
added same server availability check that exists in start_google_auth to the start_auth_flow function
2025-07-26 16:20:57 -04:00
Taylor Wilsdon
19fe08a37f
add more elegant handling for oauth server startup in stdio mode
2025-07-26 16:02:31 -04:00
Taylor Wilsdon
dcff055235
update dxt
2025-07-26 12:36:37 -04:00
Taylor Wilsdon
d14dbcf318
chore: release v1.1.12
2025-07-26 12:35:58 -04:00
Taylor Wilsdon
971fff18d1
chore: release v1.1.11
2025-07-26 12:35:53 -04:00
Taylor Wilsdon
a12db3c1d9
uv sync
2025-07-26 12:35:49 -04:00
Taylor Wilsdon
e43b7ae0e8
chore: release v1.1.11
2025-07-26 12:34:37 -04:00
Taylor Wilsdon
1b1e4a664f
uv sync
2025-07-26 12:34:32 -04:00
Taylor Wilsdon
74faf662ae
Merge pull request #121 from Manamama-Gemini-Cloud-AI-01/feature/gcal-query-param
...
Feature/gcal query param
2025-07-26 12:33:17 -04:00
Taylor Wilsdon
e374b77a9a
Update README.md
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-07-26 12:33:09 -04:00
Taylor Wilsdon
9f03aeef29
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into feature/gcal-query-param
2025-07-26 12:28:51 -04:00
Taylor Wilsdon
db4ca0e9d3
Merge pull request #124 from taylorwilsdon/remove_mcp_session_id
...
Remove mcp_session_id from project entirely
2025-07-26 12:28:41 -04:00
Taylor Wilsdon
f0976514e2
remove mcp session id
2025-07-26 12:05:22 -04:00
Taylor Wilsdon
0aeed0cc16
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp
2025-07-26 11:32:29 -04:00
Taylor Wilsdon
0a6d2ccd58
add instant start for mcpo
2025-07-26 11:32:27 -04:00
Taylor Wilsdon
65d60bc936
Update pyproject.toml
2025-07-26 11:31:59 -04:00
Taylor Wilsdon
e760e8800f
Update calendar_tools.py
2025-07-26 11:31:19 -04:00
Taylor Wilsdon
f3f24bd6b6
Delete google_workspace_mcp_guide.md
2025-07-25 18:04:43 -04:00
Taylor Wilsdon
1b92e5217f
Delete GEMINI.md
2025-07-25 18:04:31 -04:00
Gemini AI Agent
59cc54d80e
docs: Update README.md to reflect Python 3.10+ compatibility
2025-07-25 20:48:06 +02:00
Gemini AI Agent
ecd463ac31
feat(gcal): Add 'query' parameter to get_events tool
...
This commit introduces the 'query' parameter to the get_events tool,
enabling keyword-based searching for Google Calendar events.
The underlying Google Calendar API's events.list method supports a 'q'
parameter for free-text search across event fields (summary, description,
location). This enhancement exposes that functionality directly through
the get_events tool, improving efficiency and usability.
- Updated gcalendar/calendar_tools.py to include 'query' parameter.
- Bumped project version to 1.1.11 in pyproject.toml.
- Documented the new 'query' parameter in google_workspace_mcp_guide.md.
2025-07-25 20:29:13 +02:00
Taylor Wilsdon
93b11f930b
Update README.md
2025-07-23 18:30:14 -04:00
Taylor Wilsdon
07de49dece
chore: release v1.1.10
2025-07-23 16:38:07 -04:00
Taylor Wilsdon
f726512e6c
version
2025-07-23 16:37:58 -04:00
Taylor Wilsdon
1c49614c84
downcase quick fix
2025-07-23 16:36:16 -04:00
Taylor Wilsdon
0ff0ea1dbc
chore: release v1.1.9
2025-07-23 14:45:38 -04:00
Taylor Wilsdon
17cbc6c01e
version
2025-07-23 14:45:33 -04:00
Taylor Wilsdon
5634589935
chore: release v1.1.9
2025-07-23 14:45:16 -04:00
Taylor Wilsdon
a3e80567ec
version
2025-07-23 14:45:13 -04:00
Taylor Wilsdon
d4b0c7c897
chore: release v1.1.9
2025-07-23 14:45:01 -04:00
Taylor Wilsdon
e3823d94c0
version
2025-07-23 14:44:57 -04:00
Taylor Wilsdon
ce1ac4d3ef
chore: release v1.1.9
2025-07-23 14:43:48 -04:00
Taylor Wilsdon
1d5492a4ab
version
2025-07-23 14:43:44 -04:00
Taylor Wilsdon
40d5eab116
chore: release v1.1.9
2025-07-23 14:43:02 -04:00
Taylor Wilsdon
61e090d01f
version
2025-07-23 14:42:57 -04:00
Taylor Wilsdon
56e72d0ff7
chore: release v1.1.9
2025-07-23 14:42:33 -04:00
Taylor Wilsdon
0bba7c30a7
version
2025-07-23 14:42:27 -04:00
Taylor Wilsdon
453c8bdf00
chore: release v1.1.9
2025-07-23 14:40:42 -04:00
Taylor Wilsdon
46b4a59770
dxt update
2025-07-23 14:40:20 -04:00
Taylor Wilsdon
44df5e33d9
Merge branch 'issues/115'
2025-07-23 14:36:51 -04:00
Taylor Wilsdon
61d1f05fdf
ruff fixes
2025-07-23 14:36:32 -04:00
Taylor Wilsdon
e424628358
Merge pull request #117 from taylorwilsdon/issues/115
...
fix: SSL Connection Pool Exhaustion in Gmail Batch API
2025-07-23 14:35:29 -04:00
Taylor Wilsdon
ed90e3c06c
Update gmail/gmail_tools.py
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-07-23 14:33:39 -04:00
Taylor Wilsdon
5dadf47480
fixes
2025-07-23 14:01:02 -04:00
Taylor Wilsdon
8727d5180d
Update gmail/gmail_tools.py
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-07-23 13:58:15 -04:00
Taylor Wilsdon
28d4cc87f1
implement graceful handling for sequential processing to prevent SSL connection storms
2025-07-23 12:40:46 -04:00
Taylor Wilsdon
3015f69569
Update README.md
2025-07-20 15:44:35 -04:00
Taylor Wilsdon
9b104f4b67
Merge pull request #114 from taylorwilsdon/issues-113
...
feat: Support tabs in get_doc_content
2025-07-19 19:43:57 -04:00
Taylor Wilsdon
1b59b2d30c
tab header format and level parameter
2025-07-19 19:41:25 -04:00
Taylor Wilsdon
61b964f7a8
fix infinite recursion bug
2025-07-19 19:39:04 -04:00
Taylor Wilsdon
78c676c017
add support for tabs
2025-07-19 19:34:26 -04:00
Taylor Wilsdon
ad981dbd98
oauth2.1 stub
2025-07-19 19:33:55 -04:00
Taylor Wilsdon
b3e64fc67c
Merge pull request #108 from jihunkim0/107-batch-modify-labels
...
feat: add batch modification of gmail labels
2025-07-18 18:22:54 -04:00
Taylor Wilsdon
048b568c73
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into 107-batch-modify-labels
2025-07-18 18:18:28 -04:00
Taylor Wilsdon
553aedf0d3
Merge pull request #111 from taylorwilsdon/ruff_check
...
fix: resolve all ruff check errors
2025-07-18 18:16:17 -04:00
Taylor Wilsdon
aca7fd4769
restore scopes
2025-07-18 18:09:59 -04:00
Taylor Wilsdon
d4dc255f16
resolve all ruff check errors
2025-07-18 18:04:06 -04:00
Jihun Kim
3331048aa1
feat: add batch modification of gmail labels
...
This commit introduces a new function, , to . This function leverages the endpoint of the Gmail API to allow for the modification of labels on multiple messages in a single API call.
Fixes #107
2025-07-18 05:32:00 +01:00
Taylor Wilsdon
9f65f0f438
chore: release v1.1.8
2025-07-17 16:43:15 -04:00
Taylor Wilsdon
a48d2ec55f
chore: release v1.1.7
2025-07-17 16:42:54 -04:00
Taylor Wilsdon
9fbdc2c1ed
chore: release v1.1.6
2025-07-17 16:41:46 -04:00
Taylor Wilsdon
75d91e71f2
update dxt
2025-07-17 16:39:27 -04:00
Taylor Wilsdon
68d8009d95
Merge pull request #105 from jihunkim0/feature/104-add-batch-thread-retrieval
...
Feature: Add get_gmail_threads_content_batch function
2025-07-17 16:32:05 -04:00
Taylor Wilsdon
1760f50943
Update gmail/gmail_tools.py
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-07-17 15:43:08 -04:00
Taylor Wilsdon
6a96b9e26d
fmt
2025-07-17 15:37:00 -04:00
Taylor Wilsdon
a6a846453c
merge main in
2025-07-17 15:31:52 -04:00
Taylor Wilsdon
46afbecdbe
Merge pull request #106 from taylorwilsdon/fix/gmail-ssl-retry-99
...
fix: Fix/gmail ssl retry 99
2025-07-17 15:27:17 -04:00
Taylor Wilsdon
ad546b991c
upstream
2025-07-17 14:50:20 -04:00
Taylor Wilsdon
e9c5625e72
refac bulk thread retrieval
2025-07-17 14:46:25 -04:00
Taylor Wilsdon
367ae9fd6d
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into feature/104-add-batch-thread-retrieval
2025-07-17 14:36:49 -04:00
Taylor Wilsdon
072485e67e
formatting
2025-07-17 14:23:01 -04:00
Taylor Wilsdon
f08373a8b2
consolidate the retry mechanism into the handle_http_errors decorator, mitigates idempotency risks by limiting retries to read-only operations
2025-07-17 13:57:21 -04:00
Jihun Kim
d8aab6fb92
feat: add get_gmail_threads_content_batch
...
Implements the function to allow fetching multiple threads at once.
Fixes #104
2025-07-17 11:30:03 +01:00
Taylor Wilsdon
181ffb650d
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into fix/gmail-ssl-retry-99
2025-07-16 17:35:35 -04:00
Taylor Wilsdon
c2ea42f895
Update README.md
2025-07-16 12:29:48 -04:00
Taylor Wilsdon
4fde832c6a
Update README.md
2025-07-16 12:29:14 -04:00
Jihun Kim
f916631017
Add mcp_debug logs to gitignore
2025-07-14 15:42:58 +01:00
jihunkim0
11e5516027
Delete mcp_server_debug.log
...
Not needed
2025-07-14 15:29:12 +01:00
Jihun Kim
a92748b947
refactor: apply SSL retry decorator to all tool modules
2025-07-14 15:08:03 +01:00
Jihun Kim
6a32a411f9
fix: correct syntax error in gmail_tools.py
2025-07-14 14:47:20 +01:00
Jihun Kim
6c2578d1ca
refactor: implement retry decorator for gmail tools
...
This change introduces a decorator to handle SSL errors
and applies it to all network-bound functions in the
gmail_tools module, making them more resilient to
transient network issues.
Fixes #99
2025-07-14 14:43:54 +01:00
Jihun Kim
4e4b522a39
feat: add retry for get_gmail_thread_content
...
Fixes #99
2025-07-14 14:37:01 +01:00
Taylor Wilsdon
1650561ebd
Merge pull request #97 from taylorwilsdon/issues/93
...
fix: cwd -> directory for claude json configs
2025-07-11 11:46:35 -07:00
Taylor Wilsdon
f7bb57accf
Update README.md
2025-07-11 11:46:21 -07:00
Taylor Wilsdon
c764b73109
cwd -> directory
2025-07-11 11:43:30 -07:00
Taylor Wilsdon
ce9630ca8f
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp
2025-07-10 15:47:00 -04:00
Taylor Wilsdon
e97d71c84a
add dep for dockerfile
2025-07-10 15:46:38 -04:00
Taylor Wilsdon
bf3e036450
Update README.md
2025-07-10 15:36:36 -04:00
Taylor Wilsdon
b5d417781c
Update README.md
2025-07-10 15:35:39 -04:00
Taylor Wilsdon
3c932c1d75
Update README.md
2025-07-10 15:21:43 -04:00
Taylor Wilsdon
a74dd4659f
Update README.md
2025-07-10 15:13:14 -04:00
Taylor Wilsdon
eb8af9c4c3
chore: release v1.1.5
2025-07-10 14:54:11 -04:00
Taylor Wilsdon
09d1fd4c3c
Merge pull request #94 from taylorwilsdon/update_redirect_uir
...
enh: Better Redirect URI handling, DXT on rails
2025-07-10 14:53:27 -04:00
Taylor Wilsdon
978665fc7c
Merge branch 'update_redirect_uir' of github.com:taylorwilsdon/google_workspace_mcp into update_redirect_uir
2025-07-10 14:49:06 -04:00
Taylor Wilsdon
e263937453
remove details tag
2025-07-10 14:47:20 -04:00
Taylor Wilsdon
457adda8c3
Update manifest.json
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-07-10 14:45:44 -04:00
Taylor Wilsdon
3a8f7793cf
update dxt again
2025-07-10 14:37:38 -04:00
Taylor Wilsdon
28a31904d7
clean up stdio
2025-07-10 14:33:24 -04:00
Taylor Wilsdon
9afdcf1b2b
Merge branch 'update_redirect_uir' of github.com:taylorwilsdon/google_workspace_mcp into update_redirect_uir
2025-07-10 14:13:40 -04:00
Taylor Wilsdon
50ebe1fe03
update dxt package
2025-07-10 14:12:41 -04:00
Taylor Wilsdon
21c71cd287
cleanup
2025-07-10 14:08:08 -04:00
Taylor Wilsdon
44e9451b98
cleanup
2025-07-10 14:07:30 -04:00
Taylor Wilsdon
6016fb8dbe
cleanup imports
2025-07-10 14:06:00 -04:00
Taylor Wilsdon
a2fec7dcdd
fix imports in auth
2025-07-10 14:05:08 -04:00
Taylor Wilsdon
c7317cd186
pass env from dxt config
2025-07-10 13:58:26 -04:00
Taylor Wilsdon
78e04138bc
Update manifest.json
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-07-10 13:47:41 -04:00
Taylor Wilsdon
353c387e28
update dxt pack
2025-07-10 13:38:29 -04:00
Taylor Wilsdon
7ec7e17c4d
udpate dxt bundle
2025-07-10 13:34:08 -04:00
Taylor Wilsdon
4a44986506
improve dxt, update readme
2025-07-10 13:33:27 -04:00
Taylor Wilsdon
7233fe1ee9
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into update_redirect_uir
2025-07-10 12:35:38 -04:00
Taylor Wilsdon
57b18057cf
chore: release v1.1.4
2025-07-10 08:05:00 -04:00
Taylor Wilsdon
7693c0809c
stage
2025-07-10 08:04:27 -04:00
Taylor Wilsdon
336007349d
stage
2025-07-10 08:04:07 -04:00
Taylor Wilsdon
8f1e828ac1
Update README.md
2025-07-09 19:05:09 -04:00
Taylor Wilsdon
fcca35041b
Update README.md
2025-07-09 19:04:26 -04:00
Taylor Wilsdon
df4d474f24
Merge pull request #91 from taylorwilsdon/google_tasks
...
feat: Google Tasks Support
2025-07-09 12:10:13 -04:00
Taylor Wilsdon
3fe6367c56
fix casing
2025-07-09 11:59:01 -04:00
Taylor Wilsdon
2f229847fe
Update readme for google tasks functionality
2025-07-09 11:58:45 -04:00
Taylor Wilsdon
75bb6c4d90
Add support for Google Tasks
2025-07-09 11:54:46 -04:00
Taylor Wilsdon
8adf719c58
add google tasks
2025-07-09 11:54:23 -04:00
Taylor Wilsdon
f0cfe40045
chore: release v1.1.3
2025-07-06 10:25:33 -04:00
Taylor Wilsdon
5b917be355
fix docker healthcheck for nonstandard ports
2025-07-06 10:25:17 -04:00
Taylor Wilsdon
56e9cd829e
fix port expose
2025-07-05 15:59:39 -04:00
Taylor Wilsdon
fd09de57a3
chore: release v1.1.2
2025-07-05 15:19:02 -04:00
Taylor Wilsdon
3d66372b18
Merge pull request #85 from taylorwilsdon/readme_and_cleanup
...
enh: Update Readme & Helper Cleanup
2025-07-05 15:16:58 -04:00
Taylor Wilsdon
91742faca0
add dxt claude installer
2025-07-05 15:14:48 -04:00
Taylor Wilsdon
a026b7a1f7
dxt build
2025-07-05 15:12:06 -04:00
Taylor Wilsdon
7b7be5f7f1
Merge pull request #84 from TamimiGitHub/main
...
Update manifest.json
2025-07-05 15:04:02 -04:00
Taylor Wilsdon
a689f46df3
chore: release v1.1.1
2025-07-05 15:02:43 -04:00
Taylor Wilsdon
2cb9243dbe
reorg
2025-07-05 14:58:01 -04:00
Taylor Wilsdon
5ac597c5dc
udpate readme
2025-07-04 16:37:54 -04:00
Taylor Wilsdon
5df261c1d7
chore: release v1.1.0
2025-07-04 16:29:50 -04:00
Taylor Wilsdon
5f6437cbe3
fix startup logic
2025-07-04 16:21:56 -04:00
Taylor Wilsdon
9f8a639904
chore: release v1.0.6
2025-07-04 16:10:06 -04:00
Taylor Wilsdon
6f48a04545
Update stdio startup and credentails path for easier claude desktop autoinstall
2025-07-04 16:10:01 -04:00
Tamimi Ahmad
29ced2a006
Update manifest.json
...
Change OAUTHLIB_INSECURE_TRANSPORT type to int
2025-07-04 12:43:50 -07:00
Taylor Wilsdon
f4b8e0452b
chore: release v1.0.5
2025-07-04 15:36:24 -04:00
Taylor Wilsdon
d9a1404a03
udpate claude installer script
2025-07-04 15:36:13 -04:00
Taylor Wilsdon
5bc4e22592
chore: release v1.0.4
2025-07-04 14:58:30 -04:00
Taylor Wilsdon
f30ef88334
Merge pull request #83 from taylorwilsdon/feat/get-user-gmail-from-enviroment-var
...
Feat/get user gmail from enviroment var
2025-07-04 14:57:29 -04:00
Taylor Wilsdon
0eae81fa56
Update README.md
2025-07-04 14:57:20 -04:00
Taylor Wilsdon
994ff9f7d4
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into feat/get-user-gmail-from-enviroment-var
2025-07-04 14:56:06 -04:00
Taylor Wilsdon
7ed23189ab
merge
2025-07-04 14:56:03 -04:00
Taylor Wilsdon
9deaa188c8
Merge pull request #82 from bukhr/feat/get-user-gmail-from-enviroment-var
...
feat: get user google email from environment var
2025-07-04 14:55:46 -04:00
Taylor Wilsdon
67bd57c62d
update readme
2025-07-04 12:40:17 -04:00
Taylor Wilsdon
64754077f4
Merge pull request #81 from taylorwilsdon/comments_errywhere
...
feat: Support comments everywhere via centralized module
2025-07-04 10:35:48 -04:00
Taylor Wilsdon
bbee9f4db7
Merge branch 'comments_errywhere' of github.com:taylorwilsdon/google_workspace_mcp into comments_errywhere
2025-07-03 19:38:02 -04:00
Taylor Wilsdon
50981d61aa
fix resolve comment, all good
2025-07-03 19:37:45 -04:00
Taylor Wilsdon
f8e1f1e1d2
degoogle
2025-07-02 12:06:16 -04:00
Taylor Wilsdon
f371995dec
Update core/comments.py
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-07-02 12:04:26 -04:00
Taylor Wilsdon
579fe3f0fc
modular af
2025-07-01 18:56:53 -07:00
Taylor Wilsdon
83284d5f9a
better tool naming
2025-07-01 18:02:08 -07:00
Taylor Wilsdon
878ab3b1f6
break out as actual tools
2025-07-01 17:32:34 -07:00
Taylor Wilsdon
62fde10ce2
update readme for comments + slides
2025-07-01 17:16:35 -07:00
Taylor Wilsdon
7ce96edc48
modularize comments, add smithery
2025-07-01 17:14:30 -07:00
Taylor Wilsdon
f5b9a6ff52
another attempt at smithery
2025-06-29 16:56:50 -07:00
Taylor Wilsdon
4ce6203709
Update README.md
2025-06-29 16:34:07 -07:00
Taylor Wilsdon
f6343b9303
chore: release v1.0.3
2025-06-28 14:30:33 -07:00
Taylor Wilsdon
f24940f825
Merge pull request #79 from taylorwilsdon/dxt_install
...
add dxt install capability
2025-06-28 14:02:19 -07:00
Taylor Wilsdon
fc89a20c64
add dxt install capability
2025-06-28 14:02:06 -07:00
Taylor Wilsdon
2dd9aebbc2
Update README.md
2025-06-28 13:42:48 -07:00
Taylor Wilsdon
433e1df42c
Merge pull request #78 from taylorwilsdon/oauth_credential_injection
...
feat: support google client secret injection via environment variables
2025-06-28 13:34:32 -07:00
Taylor Wilsdon
d275c405f1
Update auth/google_auth.py
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-06-28 13:33:44 -07:00
Taylor Wilsdon
33eaa47d0c
refactored the credential checking logic into a shared helper function to reduce code duplication
2025-06-28 12:56:43 -07:00
Taylor Wilsdon
5f08c89468
302 GOOGLE_CLIENT_SECRETS to GOOGLE_CLIENT_SECRET_PATH
2025-06-28 12:14:42 -07:00
Taylor Wilsdon
fef8479620
add environment variable support for google oauth client secret file generation with fallback to file based
2025-06-28 12:06:36 -07:00
Juanse
6c6cab4d7f
feat: get user google email from environment var
2025-06-27 15:44:33 -05:00
Taylor Wilsdon
bc2dcaf6f5
Merge pull request #74 from endrec/feature/google-docs-comments
...
feat: Add Google Docs comment functionality
2025-06-24 19:54:48 -04:00
Endre Czirbesz
010ee9ea18
feat: Add Google Docs comment functionality
...
- Add read_doc_comments tool to read all comments and replies from Google Docs
- Add reply_to_comment tool to reply to specific comments
- Add create_doc_comment tool to create new comments on documents
- Add resolve_comment tool to resolve comments
- All tools use proper authentication decorators and error handling
- Integrated into existing docs_tools.py for consistency
Enables full comment management workflow for Google Docs through MCP interface.
2025-06-23 13:18:56 +01:00
Taylor Wilsdon
4cec9abb0b
Update README.md
2025-06-20 09:34:20 -04:00
Taylor Wilsdon
5fc9179cf8
update readme
2025-06-19 11:13:13 -04:00
Taylor Wilsdon
09ce9eae6d
chore: release v1.0.2
2025-06-19 10:46:05 -04:00
Taylor Wilsdon
d0c7f24704
cleanup
2025-06-19 10:37:28 -04:00
Taylor Wilsdon
731471827e
clean up unused import
2025-06-19 10:36:53 -04:00
Taylor Wilsdon
44254ab87b
stash
2025-06-19 10:24:59 -04:00
Taylor Wilsdon
3d99c1b2a0
Merge pull request #66 from nacholupotti/feature/googleCalendarAndDriveAttachment
...
feat: add support for file attachments in event creation and enhance …
2025-06-18 19:30:25 -04:00
Taylor Wilsdon
4b17462a7b
asyncio all up in yo face
2025-06-18 19:24:35 -04:00
Taylor Wilsdon
cd5ab74472
fetch actual filename rather than bad placeholder
2025-06-18 18:07:50 -04:00
Taylor Wilsdon
9be4d8da7e
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into feature/googleCalendarAndDriveAttachment
2025-06-18 17:36:26 -04:00
Taylor Wilsdon
4e1344b299
Merge pull request #68 from taylorwilsdon/taylorwilsdon-patch-10
...
Update gmail_tools.py
2025-06-18 17:35:48 -04:00
Taylor Wilsdon
215e83a56a
Update gmail_tools.py
2025-06-18 17:31:57 -04:00
Taylor Wilsdon
7ba75e50d4
pyjwt
2025-06-18 17:23:30 -04:00
Taylor Wilsdon
f60dc03fc1
fix indent
2025-06-18 17:09:59 -04:00
Taylor Wilsdon
47684dcabe
merge upstream, implement handle http error decorator on new func
2025-06-18 17:08:00 -04:00
Taylor Wilsdon
3cb5013699
Merge pull request #67 from taylorwilsdon/service_decorator_and_param
...
refac: service decorator & httperror handler
2025-06-18 16:45:14 -04:00
Taylor Wilsdon
97edbc4ff8
handle_http_errors decorator to simplify tool error handling
2025-06-18 16:29:35 -04:00
Taylor Wilsdon
b6ca27c581
dynamically adjusts the function signature exposed to the MCP server, removing the service parameter from the public API for all decorated tools
2025-06-18 12:21:30 -04:00
Taylor Wilsdon
c940d2fc15
Merge branch 'main' into feature/googleCalendarAndDriveAttachment
2025-06-18 11:21:40 -04:00
Taylor Wilsdon
5a7e10e2fe
uv lock
2025-06-18 11:20:15 -04:00
Taylor Wilsdon
b4feac41e3
remove aiohttp in favor of httpx, restore confirmation_message
2025-06-18 11:12:01 -04:00
Taylor Wilsdon
3e76cac88f
Merge pull request #65 from telenieko/patch-1
...
Explain GOOGLE_CLIENT_SECRETS in README.md
2025-06-18 10:14:35 -04:00
Taylor Wilsdon
11c918e92a
Update README.md
2025-06-18 10:14:16 -04:00
Ignacio Lupotti
61df770562
fix: improve logging format for event creation confirmation
2025-06-18 08:30:48 -03:00
Ignacio Lupotti
ac6c7e39ff
feat: add support for file attachments in event creation and enhance file creation with URL fetching
2025-06-18 08:15:49 -03:00
Marc Fargas
0ebddd6fee
Explain GOOGLE_CLIENT_SECRETS in README.md
...
Currently the only way to find out about configuring the secrets location is by reading the code at https://github.com/taylorwilsdon/google_workspace_mcp/blob/ec480a2aee3eaa76497d9bb75e9269e0594db428/auth/google_auth.py#L30-L39
2025-06-18 12:50:10 +02:00
Taylor Wilsdon
ec480a2aee
Merge pull request #64 from lwsinclair/add-mseep-badge
...
Add MseeP.ai badge
2025-06-17 10:28:16 -04:00
Taylor Wilsdon
c53c2d5bd8
Update README.md
2025-06-17 10:28:05 -04:00
Lawrence Sinclair
f2bf297389
Add MseeP.ai badge to README.md
2025-06-17 12:08:46 +07:00
Taylor Wilsdon
b7086e5d32
Update README.md
2025-06-16 20:26:31 -04:00
Taylor Wilsdon
90267e268c
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp
2025-06-16 15:56:56 -04:00
Taylor Wilsdon
5991d30dad
302 jwt->pyjwt
2025-06-16 15:56:51 -04:00
Taylor Wilsdon
383cee75ec
Update main.py
...
dedupe print
2025-06-16 15:44:04 -04:00
Taylor Wilsdon
c6dccb521b
Merge pull request #63 from nacholupotti/feature/calendarEndsInfoAdded
...
Feature/calendar ends info added
2025-06-16 15:42:01 -04:00
Taylor Wilsdon
5701c49516
package updates
2025-06-16 15:41:34 -04:00
Taylor Wilsdon
826c13ab54
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into feature/calendarEndsInfoAdded
2025-06-16 15:40:29 -04:00
Taylor Wilsdon
008c322950
variable end is now end_time, and the get_events docstring
2025-06-16 15:39:07 -04:00
Taylor Wilsdon
04809cae7b
Update main.py
2025-06-16 14:50:43 -04:00
Taylor Wilsdon
2773ba7253
Update main.py
...
implement unicode safe_print for windows users
2025-06-16 14:46:36 -04:00
Ignacio Lupotti
9184b66b3f
fix: include start/end dates in event details output for better clarity
2025-06-16 10:13:43 -03:00
Ignacio Lupotti
03bded0751
add end date
2025-06-15 17:51:05 -03:00
Taylor Wilsdon
4f09547380
fmt
2025-06-15 10:44:07 -04:00
Taylor Wilsdon
c83298efb3
chore: release v1.0.1
2025-06-14 14:03:34 -04:00
Taylor Wilsdon
cc8fbb91ff
prep 0.2.1
2025-06-14 14:03:05 -04:00
Taylor Wilsdon
fd123be28e
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp
2025-06-14 13:54:12 -04:00
Taylor Wilsdon
08d15d3589
Merge pull request #59 from taylorwilsdon/release_0.2
...
Release 1.0.0
2025-06-14 13:54:00 -04:00
Taylor Wilsdon
d6d65ab17d
Merge branch 'release_0.2' of github.com:taylorwilsdon/google_workspace_mcp into release_0.2
2025-06-14 13:32:36 -04:00
Taylor Wilsdon
cc8f782bf4
update tag
2025-06-14 13:32:30 -04:00
Taylor Wilsdon
cbda5a61bf
Update main.py
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-06-14 13:30:31 -04:00
Taylor Wilsdon
a12cc80716
chore: release v1.0.0
2025-06-14 13:18:05 -04:00
Taylor Wilsdon
e329e98752
dynamically pull version
2025-06-14 13:15:36 -04:00
Taylor Wilsdon
375ac40c92
ready
2025-06-14 13:13:17 -04:00
Taylor Wilsdon
c7738b63c5
release
2025-06-14 13:11:00 -04:00
Taylor Wilsdon
7be3ba5dba
release
2025-06-14 13:05:59 -04:00
Taylor Wilsdon
b730811474
Merge branch 'release_0.2' of github.com:taylorwilsdon/google_workspace_mcp into release_0.2
2025-06-14 13:05:38 -04:00
Taylor Wilsdon
29660974af
chore: release v0.2.0
2025-06-14 13:05:20 -04:00
Taylor Wilsdon
f475e0ad99
chore: release v0.2.0
2025-06-14 13:02:48 -04:00
Taylor Wilsdon
1c2d4546fe
main
2025-06-14 13:02:03 -04:00
Taylor Wilsdon
5cde9808dc
no toml needed
2025-06-14 12:54:57 -04:00
Taylor Wilsdon
7c79aed64c
add toml to deps for release script
2025-06-14 12:53:41 -04:00
Taylor Wilsdon
cad204059b
Merge pull request #57 from taylorwilsdon/slides_api
...
feat: Google Slides Native Control
2025-06-12 10:02:25 -04:00
Taylor Wilsdon
0548c66b11
good dockerfile
2025-06-11 18:40:08 -04:00
Taylor Wilsdon
bac92db56e
add google slides support
2025-06-11 18:24:30 -04:00
Taylor Wilsdon
adf515a320
add slides
2025-06-11 14:50:27 -04:00
Taylor Wilsdon
2ffe80290a
add google slides support
2025-06-11 14:46:05 -04:00
Taylor Wilsdon
4f9804c336
Update README.md
2025-06-11 12:11:23 -04:00
Taylor Wilsdon
c2318e5b9b
Merge pull request #56 from punkpeye/glama-badge
...
add MCP server badge
2025-06-11 11:09:32 -04:00
Taylor Wilsdon
1ff80b1f53
Update README.md
...
add glama baadge
2025-06-11 11:09:16 -04:00
Frank Fiegel
3960d942e5
add MCP server badge
2025-06-10 13:11:02 -04:00
Taylor Wilsdon
43d8f5bcc3
Merge pull request #55 from georgebashi/uvx-fixes
...
Fix pyproject.toml for uvx
2025-06-10 11:43:20 -04:00
George Bashi
9d13ff606e
Fix pyproject.toml for uvx
2025-06-10 08:34:47 -07:00
Taylor Wilsdon
8206936d0a
Merge pull request #54 from taylorwilsdon/scopes_consolidation
...
refac: deduplicate scopes config
2025-06-09 18:33:11 -04:00
Taylor Wilsdon
3908d6c34c
update readme
2025-06-09 18:32:52 -04:00
Taylor Wilsdon
808504928b
dedupe, remove circular imports
2025-06-09 17:36:31 -04:00
Taylor Wilsdon
314b94e734
Merge pull request #53 from taylorwilsdon/google_forms
...
feat: Add support for Google Forms
2025-06-09 17:11:11 -04:00
Taylor Wilsdon
0ec59fcd3c
fix service decorator
2025-06-09 16:56:00 -04:00
Taylor Wilsdon
d6a9103f82
fix userinfo scope
2025-06-09 16:47:34 -04:00
Taylor Wilsdon
dddfbd484f
add Google forms support
2025-06-09 16:41:09 -04:00
Taylor Wilsdon
de6a5fa355
remove smithery entirely
2025-06-09 13:15:50 -04:00
Taylor Wilsdon
f0f36d54aa
smithery hates me
2025-06-09 13:01:13 -04:00
Taylor Wilsdon
90c6754872
smithery hates me
2025-06-09 12:37:15 -04:00
Taylor Wilsdon
8d1b492f6d
smithery hates me
2025-06-09 10:58:44 -04:00
Taylor Wilsdon
dccfede2c5
remove query string test lib
2025-06-09 10:52:00 -04:00
Taylor Wilsdon
5e768dc3fd
clean start docker
2025-06-09 10:51:13 -04:00
Taylor Wilsdon
4846641cf7
Fix docker healthcheck at runtime with proper request handling
2025-06-08 14:23:28 -04:00
Taylor Wilsdon
96da15be22
add expiry handling
2025-06-08 12:31:18 -04:00
Taylor Wilsdon
019517beeb
respect WORKSPACE_MCP_BASE_URI everywhere
2025-06-08 12:17:06 -04:00
Taylor Wilsdon
05b9ddadb2
gracefully handle refresherrors on expired tokens
2025-06-08 12:04:19 -04:00
Taylor Wilsdon
47c781a6fa
add startup check for permissions
2025-06-08 11:50:00 -04:00
Taylor Wilsdon
058c123645
add startup check for permissions
2025-06-08 11:49:25 -04:00
Taylor Wilsdon
5be7e24f80
smithery
2025-06-07 19:17:53 -04:00
Taylor Wilsdon
7f90e24022
smithery
2025-06-07 19:08:16 -04:00
Taylor Wilsdon
08291e3ddf
smithery
2025-06-07 18:49:54 -04:00
Taylor Wilsdon
6370b6f2cf
fix smithery
2025-06-07 18:12:29 -04:00
Taylor Wilsdon
c54e8d30db
fix start_auth tool
2025-06-07 17:18:35 -04:00
Taylor Wilsdon
2da4147b39
Update README.md
2025-06-07 16:45:34 -04:00
Taylor Wilsdon
17bd45171d
Update README.md
2025-06-07 16:39:39 -04:00
Taylor Wilsdon
9438a6ddf1
Merge pull request #51 from taylorwilsdon/perfection
...
feat: Perfection
2025-06-07 16:35:38 -04:00
Taylor Wilsdon
aca3dc3dfc
remove unused import
2025-06-07 16:35:28 -04:00
Taylor Wilsdon
3b8e44b089
really dress this puppy up
2025-06-07 16:16:48 -04:00
Taylor Wilsdon
aaa39a5b1b
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into stdio
2025-06-07 16:01:19 -04:00
Taylor Wilsdon
16473c9a2c
add http callback server when running in stdio with transport aware startup
2025-06-07 16:01:02 -04:00
Taylor Wilsdon
0f1d7a1787
add http callback server when running in stdio with transport aware startup
2025-06-07 16:00:55 -04:00
Taylor Wilsdon
38115edf2e
Merge pull request #50 from taylorwilsdon/stdio
...
feat: stdio support & docs
2025-06-07 14:20:47 -04:00
Taylor Wilsdon
d37dc74eb5
improve startup
2025-06-07 14:19:54 -04:00
Taylor Wilsdon
07dace0dea
add stdio support and startup flag
2025-06-07 14:04:04 -04:00
Taylor Wilsdon
5a95e52426
unpin streamable http
2025-06-07 13:59:45 -04:00
Taylor Wilsdon
5a423b83c1
Merge pull request #49 from taylorwilsdon/startup_modes
...
feat: Startup Modes & refac: README
2025-06-07 12:26:27 -04:00
Taylor Wilsdon
a32aa11ea0
center header
2025-06-07 12:25:57 -04:00
Taylor Wilsdon
3c42286546
readme updaates
2025-06-07 12:24:28 -04:00
Taylor Wilsdon
1ae0ed33c9
add startup modes, pretty it up
2025-06-07 12:09:26 -04:00
Taylor Wilsdon
68f6abf89a
add claude desktop bootstrap script
2025-06-07 11:37:36 -04:00
Taylor Wilsdon
5e6a835885
update README
2025-06-07 11:35:40 -04:00
Taylor Wilsdon
be71e4ecb4
Merge pull request #48 from taylorwilsdon/refactor/fastmcp-native-responses
...
refac: Refactor Google Service Authentication and Adopt `fastmcp` Native Responses
2025-06-07 10:57:01 -04:00
Taylor Wilsdon
e4572e2905
corrected function signature for delete_event
2025-06-07 10:56:46 -04:00
Taylor Wilsdon
449f6006e4
fixed issue was that extract_office_xml_text was being called for all file types, including Google Sheets (application/vnd.google-apps.spreadsheet). Google Sheets are exported as CSV text, not ZIP archives,
...
so trying to parse them as ZIP files causes the "File is not a valid ZIP archive" warnining
2025-06-07 10:38:26 -04:00
Taylor Wilsdon
bfdbd1804b
drive_tools auth dectorator
2025-06-07 10:33:30 -04:00
Taylor Wilsdon
d9e68a3b1b
auth decorator refac docs
2025-06-07 10:23:27 -04:00
Taylor Wilsdon
bdfa6682c5
auth decorator for sheets
2025-06-07 10:21:12 -04:00
Taylor Wilsdon
c46c9450a9
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into refactor/fastmcp-native-responses
2025-06-07 10:17:23 -04:00
Taylor Wilsdon
0c73f592d3
refac chat tools for auth decorator
2025-06-07 10:17:17 -04:00
Taylor Wilsdon
c92f6abdf5
require_google_service decorator for calendar_tools
2025-06-07 10:12:27 -04:00
Taylor Wilsdon
7b016b6448
require_google_service decorator for gmail implemented successfully
2025-06-07 09:50:53 -04:00
Taylor Wilsdon
f143998ae7
refac authentication handler
2025-06-06 18:51:34 -04:00
Taylor Wilsdon
100fb4399d
refactored all tools to use fastmcp native responses
2025-06-06 17:32:09 -04:00
Taylor Wilsdon
c9ecf00bce
Update README.md
2025-06-06 15:45:41 -04:00
Taylor Wilsdon
21dccf5915
Merge pull request #47 from taylorwilsdon/sheets_support
...
feat: Full Google Sheets support
2025-06-06 13:16:32 -04:00
Taylor Wilsdon
047c44b472
update readme
2025-06-06 13:07:16 -04:00
Taylor Wilsdon
6e7246baef
add google sheets support
2025-06-06 12:50:32 -04:00
Taylor Wilsdon
1c8c3cb4eb
add google sheets support
2025-06-06 12:45:15 -04:00
Taylor Wilsdon
d4a07dcef5
Merge pull request #46 from taylorwilsdon/gmail_labels
...
feat: add support for label management to the gmail tool
2025-06-06 12:05:37 -04:00
Taylor Wilsdon
14de679df2
add support for label management to the gmail tool
2025-06-06 12:02:49 -04:00
Taylor Wilsdon
c4b5fa8668
Merge pull request #45 from taylorwilsdon/shared_drives
...
feat: Add support for shared drives
2025-06-04 19:02:02 -04:00
Taylor Wilsdon
3d5e5a5223
precompile regex patterns as module-level constants to improve performance
2025-06-04 19:01:48 -04:00
Taylor Wilsdon
e27a022f55
refactored the list_params construction into helper for search & list functions
2025-06-04 18:50:53 -04:00
Taylor Wilsdon
62a1adaf9e
refac & cleanup
2025-06-04 18:48:17 -04:00
Taylor Wilsdon
a5c294b166
improve search pattern detection logic
2025-06-04 18:47:16 -04:00
Taylor Wilsdon
dfd93fe399
add support for shared drives
2025-06-04 18:13:45 -04:00
Taylor Wilsdon
b0d7638605
minor refac for consistency, cleanup unused imports
2025-06-03 14:16:55 -04:00
Taylor Wilsdon
b0bfaff691
minor refac for consistency, cleanup unused imports
2025-06-03 14:16:19 -04:00
Taylor Wilsdon
93e0007ee5
update imports for calendar_tools
2025-06-03 14:13:22 -04:00
Taylor Wilsdon
30a8ba432e
clean up auth logic in server.py
2025-06-03 14:12:49 -04:00
Taylor Wilsdon
3b5071980d
Update google_config with new scopes
2025-06-03 14:12:01 -04:00
Taylor Wilsdon
c9a0aff6a1
fix scope
2025-06-03 13:15:28 -04:00
Taylor Wilsdon
614648ce8d
add chat scopes
2025-06-03 13:12:53 -04:00
Taylor Wilsdon
4046875cfc
fix redirect uri import, add chat stub
2025-06-03 13:03:26 -04:00
Taylor Wilsdon
313630e3c5
Update README.md
2025-06-03 07:58:15 -04:00
Taylor Wilsdon
6ba3ec01b7
Update pyproject.toml
2025-05-31 20:07:40 -04:00
Taylor Wilsdon
b67c7277e6
Update pyproject.toml
2025-05-31 20:05:18 -04:00
Taylor Wilsdon
f398de0001
Update pyproject.toml
2025-05-31 19:58:39 -04:00
Taylor Wilsdon
7fec4e6f93
Merge pull request #41 from taylorwilsdon/smithery/config-hi1w
...
Deployment: Dockerfile and Smithery config
2025-05-31 11:47:36 -04:00
Taylor Wilsdon
647539e363
Update README.md
2025-05-31 11:47:15 -04:00
smithery-ai[bot]
a3a7fb2659
Update README
2025-05-31 15:41:38 +00:00
smithery-ai[bot]
765bcc58b0
Add Smithery configuration
2025-05-31 15:41:37 +00:00
Taylor Wilsdon
207b131791
Merge pull request #39 from taylorwilsdon/fastmcp_refac
...
refac: fastmcp custom implementation to standard
2025-05-31 11:39:43 -04:00
Taylor Wilsdon
fbfe1518da
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into fastmcp_refac
2025-05-31 11:39:28 -04:00
Taylor Wilsdon
21cc577434
Update README.md
2025-05-31 09:34:24 -04:00
Taylor Wilsdon
3d338290aa
add run
2025-05-30 11:45:33 -04:00
Taylor Wilsdon
13b39f7453
transport type
2025-05-30 11:38:11 -04:00
Taylor Wilsdon
395d02494b
refac fastmcp custom implementation to standard
2025-05-30 11:09:56 -04:00
Taylor Wilsdon
b00fe41de8
Merge pull request #34 from taylorwilsdon/batch_concurrency
...
feat: Implement Gmail batch message content retrieval
2025-05-27 11:55:04 -04:00
Taylor Wilsdon
fd539ad0c7
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into batch_concurrency
2025-05-27 11:52:25 -04:00
Taylor Wilsdon
8970e75e72
Merge pull request #38 from taylorwilsdon/issues/37
...
fix: Issues/37
2025-05-27 11:52:01 -04:00
Taylor Wilsdon
02dd22f40b
sed MediaIoBaseDownload for MediaIoBaseUpload
2025-05-27 11:49:20 -04:00
Taylor Wilsdon
441455b864
refac docs_tools to use get_authenticated_google_service
2025-05-27 11:46:54 -04:00
Taylor Wilsdon
334b16f9d2
add concurrent batch retrieval for gmail messages
2025-05-26 19:00:27 -04:00
Taylor Wilsdon
c6ca4a47ba
Merge pull request #32 from MariusWilsch/feature/gmail-search-xml-links
...
feat: enhance Gmail search with XML structure and web interface links
2025-05-26 18:38:48 -04:00
Taylor Wilsdon
3c00274e3f
refac to plaintext / remove xml
2025-05-26 17:51:34 -04:00
Taylor Wilsdon
6ae0dd2dee
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into feature/gmail-search-xml-links
2025-05-26 17:36:55 -04:00
Taylor Wilsdon
a842c75691
Update README.md
2025-05-26 17:34:12 -04:00
Taylor Wilsdon
e377f03c62
Merge pull request #33 from taylorwilsdon/taylorwilsdon-patch-9
...
Update README.md
2025-05-26 17:33:24 -04:00
Taylor Wilsdon
6870febb9a
Update README.md
2025-05-26 17:33:11 -04:00
Taylor Wilsdon
9f9caa5280
Update README.md
2025-05-26 17:31:18 -04:00
Taylor Wilsdon
a1df161881
Update README.md
2025-05-26 17:28:01 -04:00
Taylor Wilsdon
29c95ad8f6
Update README.md
2025-05-26 17:27:23 -04:00
Taylor Wilsdon
8d21edb39e
Update README.md
2025-05-26 17:25:40 -04:00
Taylor Wilsdon
3757ec818d
Update README.md
2025-05-26 08:45:06 -04:00
Taylor Wilsdon
1fe7486b8b
Update README.md
2025-05-26 06:39:04 -04:00
Taylor Wilsdon
a56ff72e05
Update README.md
2025-05-25 10:09:46 -04:00
Taylor Wilsdon
8d55a27029
Update README.md
2025-05-25 07:41:41 -04:00
Marius Wilsch
754a8ed9af
feat: enhance Gmail search with XML structure and web interface links
...
- Add _generate_gmail_web_url() helper function using #all for universal Gmail access
- Update search_gmail_messages to return XML-structured output with index attributes
- Include clickable Gmail web interface URLs for both messages and threads
- Maintain backward compatibility with existing Message/Thread ID usage
- Improve manual verification capabilities for users when multiple threads have same subject
2025-05-25 17:35:58 +08:00
Taylor Wilsdon
d871574bbc
Update README.md
2025-05-24 19:19:38 -04:00
Taylor Wilsdon
e654a5a873
Merge pull request #30 from taylorwilsdon/taylorwilsdon-patch-8
...
Update README.md
2025-05-24 16:13:23 -04:00
Taylor Wilsdon
4c5251f01e
Update README.md
2025-05-24 16:13:03 -04:00
Taylor Wilsdon
ab1ffd092d
Merge pull request #29 from taylorwilsdon/add_office_support
...
feat: Add support for Microsoft Office files in Google Docs & Drive files
2025-05-24 14:50:26 -04:00
Taylor Wilsdon
b9b4f02449
update fallback message for binary
2025-05-24 14:49:32 -04:00
Taylor Wilsdon
99d8e2da4e
add sharedstrings support;
2025-05-24 14:21:42 -04:00
Taylor Wilsdon
8acf59f457
add logging for utils
2025-05-24 14:00:20 -04:00
Taylor Wilsdon
051c7a43b3
add microsoft office file handling for google docs urls
2025-05-24 13:58:38 -04:00
Taylor Wilsdon
84b9078659
add utils for office xml text handling
2025-05-24 13:55:00 -04:00
Taylor Wilsdon
f4e6275c19
add support for microsoft file unpacking with native toolset
2025-05-24 13:49:04 -04:00
Taylor Wilsdon
e32beff43b
Merge pull request #28 from taylorwilsdon/centralize_auth_helper
...
enh: Refactor authentication to deduplicate redundant logic
2025-05-24 11:54:54 -04:00
Taylor Wilsdon
e94d0cf61f
fix
2025-05-24 11:54:31 -04:00
Taylor Wilsdon
9e4add5ac2
refactor authentication to dedupe
2025-05-24 10:43:55 -04:00
Taylor Wilsdon
ceaa019c93
Merge pull request #27 from MariusWilsch/gmail-thread-support
...
feat: Add Gmail thread support and fix message ID vs thread ID confusion
2025-05-24 10:01:20 -04:00
Taylor Wilsdon
0f36119e6e
refac
2025-05-23 16:16:30 -04:00
Taylor Wilsdon
3f426bb22d
clean up markdown
2025-05-23 16:08:34 -04:00
Marius Wilsch
be2efe6826
feat: Add Gmail thread support and fix message ID vs thread ID confusion
...
- Add get_gmail_thread_content() function to retrieve complete conversation threads
- Enhance search_gmail_messages() to display both Message ID and Thread ID clearly
- Add helper function _extract_message_body() for consistent message parsing
- Fix 404 errors caused by using message IDs with thread functions
- Include usage guidance to prevent confusion between message and thread operations
- Add comprehensive documentation for both features
Resolves issue where users couldn't distinguish between message IDs and thread IDs,
leading to API errors when trying to retrieve thread content.
2025-05-24 00:08:19 +08:00
Taylor Wilsdon
802fbbf899
Merge pull request #26 from taylorwilsdon/single_user_mode
...
feat: Single User Mode -> trusted environment to bypass session requirements
2025-05-23 11:33:23 -04:00
Taylor Wilsdon
c6110841ca
update readme for single user
2025-05-23 11:31:22 -04:00
Taylor Wilsdon
d7c37b107e
implement single user mode
2025-05-23 11:22:45 -04:00
Taylor Wilsdon
558d61fc9e
implement single user mode
2025-05-23 11:22:23 -04:00
Taylor Wilsdon
0a353a5bbc
Merge pull request #25 from taylorwilsdon/readme
...
readme
2025-05-22 22:01:33 -04:00
Taylor Wilsdon
78c342348f
update readme
2025-05-22 21:44:18 -04:00
Taylor Wilsdon
f7b8451ed6
Merge pull request #23 from taylorwilsdon/mcp_session_enh
...
feat: Implement MCP Session Management
2025-05-22 21:25:29 -04:00
Taylor Wilsdon
2a93dca1a4
implement thread-safe session manager instance
2025-05-22 19:54:10 -04:00
Taylor Wilsdon
2eeb112baa
update auth msg
2025-05-22 17:27:00 -04:00
Taylor Wilsdon
f3b25bb307
fix oauth2callback
2025-05-22 17:26:33 -04:00
Taylor Wilsdon
ab029b2b72
fully working mcp session id handling
2025-05-22 17:02:00 -04:00
Taylor Wilsdon
07930d6004
Merge pull request #21 from Vasu014/feature/gmail-draft-message
...
Add draft_gmail_message MCP tool
2025-05-22 14:57:56 -04:00
Taylor Wilsdon
c2428cf268
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into feature/gmail-draft-message
2025-05-22 14:51:12 -04:00
Taylor Wilsdon
2a9083ede7
refac auth, formatting
2025-05-22 14:21:52 -04:00
Taylor Wilsdon
26574b61f8
Merge pull request #22 from taylorwilsdon/auth_refac
...
feat: Centralize and Refactor Google Authentication
2025-05-22 13:37:46 -04:00
Taylor Wilsdon
dd316faa8c
Update core/server.py
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-05-22 13:37:37 -04:00
Taylor Wilsdon
c395b68899
auth refac, mcp-session-id still flakey
2025-05-22 13:33:06 -04:00
Vasu Bhardwaj
b3c2d2e149
Add draft_gmail_message MCP tool
...
Add new tool to create Gmail draft messages with optional recipients.
This allows users to save email drafts at any stage of composition
without requiring all fields to be completed.
- Implements Gmail draft API integration
- Makes "to" field optional for flexibility
- Uses GMAIL_COMPOSE_SCOPE for authentication
- Maintains existing project patterns for error handling and logging
2025-05-22 00:02:51 +05:30
Taylor Wilsdon
4c2bde02ff
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into auth_refac
2025-05-21 13:04:00 -04:00
Taylor Wilsdon
53f96de0e8
Delete .github/workflows directory
2025-05-20 22:39:42 -04:00
Taylor Wilsdon
d096a2450e
fix imports
2025-05-20 14:54:56 -04:00
Taylor Wilsdon
cac5c1292e
refactor auth into centralized flow, invoke in uniform manner
2025-05-20 14:51:10 -04:00
Taylor Wilsdon
0ad54f4cb4
Create python-package.yml
2025-05-20 13:32:59 -04:00
Taylor Wilsdon
843d4c362f
Update README.md
...
update tool defs
2025-05-20 13:23:08 -04:00
Taylor Wilsdon
54329db234
Merge pull request #19 from taylorwilsdon/valdez/add-gmail-send-ability
...
feat: add Gmail message sending functionality with MIMEText support #18
2025-05-20 11:00:44 -04:00
Taylor Wilsdon
f68ccab2cc
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into valdez/add-gmail-send-ability
2025-05-20 11:00:08 -04:00
Taylor Wilsdon
63ad3f1281
Merge pull request #18 from valdezm/valdez/add-gmail-send-ability
...
feat: add Gmail message sending functionality with MIMEText support
2025-05-20 11:00:02 -04:00
Taylor Wilsdon
821bb21600
revert from field
2025-05-20 10:59:04 -04:00
Taylor Wilsdon
8abacb2cc1
add from header, clean up messy gemini refac comments
2025-05-20 10:43:47 -04:00
Mark Valdez
6844818fe1
feat: add Gmail message sending functionality with MIMEText support
2025-05-19 20:57:11 -07:00
Taylor Wilsdon
e9deca70ce
working stub with updated uv
2025-05-17 17:27:06 -04:00
Taylor Wilsdon
b80e96d193
fix dockerfile
2025-05-17 16:41:25 -04:00
Taylor Wilsdon
327316e554
update smithery config
2025-05-17 15:42:20 -04:00
Taylor Wilsdon
59f7093b9d
update smithery file
2025-05-17 15:39:42 -04:00
Taylor Wilsdon
3cf284929e
implement date handling autoformat better
2025-05-17 15:33:09 -04:00
Taylor Wilsdon
9f0b39b414
Update README.md
2025-05-17 15:32:46 -04:00
Taylor Wilsdon
da99bfe1d1
update readme
2025-05-17 13:28:35 -04:00
Taylor Wilsdon
09f8fb9909
Merge pull request #17 from taylorwilsdon/taylorwilsdon-patch-7
...
Update README.md
2025-05-17 13:20:48 -04:00
Taylor Wilsdon
9f14fe3407
Update README.md
2025-05-17 13:20:40 -04:00
Taylor Wilsdon
10fff4d358
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp
2025-05-17 13:18:48 -04:00
Taylor Wilsdon
ff296edcc9
update dockerfile
2025-05-17 13:18:46 -04:00
Taylor Wilsdon
d1b5b1c629
Merge pull request #16 from taylorwilsdon/taylorwilsdon-patch-6
...
Update README.md
2025-05-17 13:15:14 -04:00
Taylor Wilsdon
9834d6b45e
Update README.md
2025-05-17 13:15:05 -04:00
Taylor Wilsdon
6d21a84321
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into refac_cal_auth
2025-05-17 10:45:03 -04:00
Taylor Wilsdon
f6d30f0cfb
Add pre-deletion validation call
2025-05-17 10:45:00 -04:00
Taylor Wilsdon
8772a2f612
Merge pull request #15 from taylorwilsdon/refac_cal_auth
...
fix: helper function for auth, fix indent
2025-05-17 10:28:44 -04:00
Taylor Wilsdon
a52d7d1b10
helper function for auth, fix indent
2025-05-17 10:25:55 -04:00
Taylor Wilsdon
03e413a33d
Merge pull request #14 from taylorwilsdon/calendar_modify_delete
...
feat: Google Calendar Modify + Delete actions
2025-05-17 10:22:09 -04:00
Taylor Wilsdon
471ceedc46
add modify and delete options
2025-05-17 10:21:14 -04:00
Taylor Wilsdon
9052842bfc
Merge pull request #13 from taylorwilsdon/taylorwilsdon-patch-5
...
Update calendar_tools.py
2025-05-17 10:13:31 -04:00
Taylor Wilsdon
2be9527e35
Update calendar_tools.py
2025-05-17 10:13:16 -04:00
Taylor Wilsdon
1dc90da395
python 3.11 support
2025-05-15 11:10:37 -04:00
Taylor Wilsdon
1942ebf119
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp
2025-05-15 11:10:06 -04:00
Taylor Wilsdon
7f8a91f948
python 3.11 support
2025-05-15 11:09:53 -04:00
Taylor Wilsdon
bd3356a541
Update README.md
2025-05-15 09:13:23 -04:00
Taylor Wilsdon
a20a8b06b7
Update README.md
2025-05-15 09:11:17 -04:00
Taylor Wilsdon
17272f575a
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp
2025-05-15 09:10:23 -04:00
Taylor Wilsdon
f740bd794c
implement support for env var declared base uri & port
2025-05-15 09:10:06 -04:00
Taylor Wilsdon
5291521b6e
Merge pull request #11 from taylorwilsdon/taylorwilsdon-patch-4
2025-05-15 07:29:10 -04:00
Taylor Wilsdon
bbaf19b190
Update README.md
2025-05-15 07:28:53 -04:00
Taylor Wilsdon
bcc1d70b1e
Update README.md
2025-05-15 07:26:06 -04:00
Taylor Wilsdon
aa2a59caea
rm old auth
2025-05-14 14:26:47 -04:00
Taylor Wilsdon
ce78b71c94
prep for smithery deployment
2025-05-14 10:46:01 -04:00
Taylor Wilsdon
48172f1eb4
Merge pull request #10 from taylorwilsdon/taylorwilsdon-patch-3
...
Update README.md
2025-05-14 09:48:58 -04:00
Taylor Wilsdon
dc92dae297
Update README.md
2025-05-14 09:48:49 -04:00
Taylor Wilsdon
4b9c24317b
Merge pull request #9 from taylorwilsdon/google_docs
...
feat: Google Docs support
2025-05-14 09:47:50 -04:00
Taylor Wilsdon
95aef744a7
update readme
2025-05-14 09:47:12 -04:00
Taylor Wilsdon
04e526c0d5
Implement support for Google docs, including retrieve by url
2025-05-14 09:44:45 -04:00
Taylor Wilsdon
13eb429d67
rebase readme
2025-05-14 09:36:42 -04:00
Taylor Wilsdon
66d81a9a8a
add google docs
2025-05-14 09:35:48 -04:00
Taylor Wilsdon
b4886d28bf
Merge pull request #8 from taylorwilsdon/taylorwilsdon-patch-2
...
Update README.md
2025-05-14 08:22:22 -04:00
Taylor Wilsdon
2dd7e84c61
Update README.md
2025-05-14 08:22:14 -04:00
Taylor Wilsdon
f1f7880052
Merge pull request #7 from taylorwilsdon/taylorwilsdon-patch-1
...
Update README.md
2025-05-14 08:21:50 -04:00
Taylor Wilsdon
9a883ab799
Update README.md
2025-05-14 08:21:40 -04:00
Taylor Wilsdon
5285fa8c7a
Merge pull request #6 from taylorwilsdon/fix
...
refac: oauth / authentication
2025-05-13 19:20:32 -04:00
Taylor Wilsdon
833b23b019
add google config
2025-05-13 12:49:35 -04:00
Taylor Wilsdon
c8820b9482
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into add_drive_and_gmail
2025-05-13 12:45:31 -04:00
Taylor Wilsdon
bd047d9f9a
auth cleanup
2025-05-13 12:45:24 -04:00
Taylor Wilsdon
0bebaee051
unify authentication logic
2025-05-13 12:36:53 -04:00
Taylor Wilsdon
ae2361f1b8
Merge pull request #5 from taylorwilsdon/add_drive_and_gmail
...
feat: Add Support for Google Drive and Gmail Operations
2025-05-12 18:16:20 -04:00
Taylor Wilsdon
4e13196802
refac: readme
2025-05-12 17:40:18 -04:00
Taylor Wilsdon
bece707553
Fix drive query structure and escaping
2025-05-12 17:32:38 -04:00
Taylor Wilsdon
dda55404ab
add gmail tool
2025-05-12 17:22:58 -04:00
Taylor Wilsdon
e6fc66bc18
add Gmail & drive, both working
2025-05-12 14:32:44 -04:00
Taylor Wilsdon
afd9df9ca6
Merge branch 'main' of github.com:taylorwilsdon/google_workspace_mcp into add_google_drive
2025-05-12 13:53:17 -04:00
Taylor Wilsdon
7096963f2b
Add Google Drive functionality
2025-05-12 13:52:53 -04:00
Taylor Wilsdon
0912a94382
Merge pull request #4 from taylorwilsdon/mcp_v2_enh_refac
...
enh: Modernize MCP Server with Streamable HTTP, FastAPI Integration, and Enhanced OAuth Flow
2025-05-12 13:52:18 -04:00
Taylor Wilsdon
bdf44c46fe
happy native & simulated via mcpo
2025-05-11 17:39:15 -04:00
Taylor Wilsdon
26954f1f5b
refactor response payloads and description texts to work better with native tool calling
2025-05-11 17:15:05 -04:00
Taylor Wilsdon
e681d265bf
working build for all functionality on streamablehttp with auth_session_id
2025-05-11 15:37:44 -04:00
Taylor Wilsdon
984d4065ff
restore uv.lock
2025-05-11 10:08:00 -04:00
Taylor Wilsdon
6e94512ca3
convert to streamable http
2025-05-11 10:07:37 -04:00
Taylor Wilsdon
e8c05af5d8
remove stupid icon
2025-05-10 18:50:01 -04:00
Taylor Wilsdon
cf4fc9fa34
improve auth callback trigger logic
2025-05-10 18:47:24 -04:00
Taylor Wilsdon
458a1476b0
Google Workspace MCP Response Format Improvements - model-agnostic json envelope format for better compatibility across platforms
2025-05-10 17:57:25 -04:00
Taylor Wilsdon
de498150ab
update readme.md
2025-05-10 15:29:53 -04:00
Taylor Wilsdon
feb9984bb2
Merge pull request #2 from taylorwilsdon/refac_oauth
...
enh: Refactor authentication flow to simplify, implement file based logging
2025-05-10 15:26:58 -04:00
Taylor Wilsdon
55c7723bbe
final cleanup
2025-05-10 15:18:19 -04:00
Taylor Wilsdon
e83bdf0e67
cleanup
2025-05-10 15:11:13 -04:00
Taylor Wilsdon
db9452f3ad
refactor oauth flow to simplify and leverage google built in resources
2025-05-06 12:17:22 -04:00
Taylor Wilsdon
cc54fc1b8f
Merge pull request #1 from taylorwilsdon/its_advanced_but_sucks
...
enh: OAuth Handling & Tool Registry
2025-05-06 10:19:17 -04:00
Taylor Wilsdon
a8e890f1a7
Update core/server.py
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-05-06 10:16:09 -04:00
Taylor Wilsdon
190d8881fd
Update gcalendar/calendar_tools.py
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-05-06 10:15:59 -04:00
Taylor Wilsdon
face6bcbce
hey it works great now
2025-05-06 09:36:48 -04:00
Taylor Wilsdon
a7659d087c
stage shitty branch
2025-04-27 16:59:35 -04:00
Taylor Wilsdon
43ef646aa4
working non loop server but staged earlier than before
2025-04-27 15:33:48 -04:00
Taylor Wilsdon
d0978cb2f6
chore: add .gitignore; purge build artefacts
2025-04-27 14:48:46 -04:00
Taylor Wilsdon
82f5cefb5b
feat: initial clean commit without build artefacts
2025-04-27 14:44:23 -04:00
Taylor Wilsdon
828dbfae08
implement guided auth flow for both chat based and server callback flows
2025-04-27 14:37:08 -04:00
Taylor Wilsdon
65048b7f46
implement guided auth flow for both chat based and server callback flows
2025-04-27 14:30:11 -04:00
Taylor Wilsdon
ca86d591d4
initial scaffolding
2025-04-27 12:34:22 -04:00