Release Notes
This release introduces several enhancements, new features, and a refac for improved stability and developer experience. The highlight of this release is the introduction of centralized error handling and the ability to add attachments to calendar events.
✨ Shoutout to @nacholupotti, @georgebashi & @telenieko for their contributions!
Highlights
- Centralized Error Handling: A new
@handle_http_errors
decorator has been implemented incore/utils.py:154
and applied to all Google API tools. This removes repetitivetry/except
blocks, standardizes API error responses, and improves overall code robustness. - Event Attachments in Google Calendar: The
create_event
tool in Google Calendar now supports adding attachments from Google Drive. You can provide file URLs or file IDs to attach documents, spreadsheets, and other files directly to your events. - Create Drive Files from URL: The
create_drive_file
tool can now fetch content from a public URL and upload it directly to Google Drive, simplifying the process of saving web content.
🚀 New Features
- Google Calendar:
- Added a new
get_event
tool to fetch the detailed information of a single calendar event by its ID.
- Added a new
- Google Drive:
- The
create_drive_file
tool now accepts afileUrl
parameter to create a file from a web URL.
- The
🛠️ Improvements & Refactoring
- Core Authentication:
- The
@require_google_service
decorator has been significantly refactored for better integration with FastMCP. It now dynamically inspects function signatures to inject the Google service object, making the tool definitions cleaner and more maintainable.
- The
- Google Calendar:
- The
get_events
tool now includes the event's end time in its output for more detailed event summaries.
- The
- Error Handling:
- All tools across all services (Calendar, Chat, Docs, Drive, Forms, Gmail, Sheets, Slides) now use the new
@handle_http_errors
decorator, replacing localtry/except
blocks forHttpError
.
- All tools across all services (Calendar, Chat, Docs, Drive, Forms, Gmail, Sheets, Slides) now use the new
- Console Output:
- The main server script
main.py:45
now uses asafe_print
function to preventUnicodeEncodeError
crashes, ensuring server stability with non-ASCII characters in logs or metadata.
- The main server script
📝 Documentation
- Project descriptions in
README.md:15
have been updated for clarity. - Added instructions on using the
GOOGLE_CLIENT_SECRETS
environment variable for customclient_secret.json
locations inREADME.md:26
.
📦 Dependencies
- Added
pyjwt>=2.10.1
to the project dependencies inpyproject.toml:4182
.