Add direct Google Calendar/Gmail tools, remove workspace_mcp

This commit is contained in:
daniel
2026-05-08 10:37:31 -05:00
parent 943cf26d77
commit ad594f6797
3 changed files with 176 additions and 21 deletions

View File

@@ -16,15 +16,13 @@ from tools import messaging
from tools.scheduler import schedule_reminder, list_reminders, cancel_reminder
import tools.scheduler as _scheduler_module
from tools.home_assistant import home_assistant, set_ha_config
from mcp.client.streamable_http import streamablehttp_client
from strands.tools.mcp.mcp_client import MCPClient
from tools.google_workspace import list_calendars, get_calendar_events, list_gmail_messages, get_gmail_message
import httpx
import botocore.auth
import botocore.awsrequest
import boto3
from urllib.parse import urlparse as _urlparse
WORKSPACE_MCP_URL = 'https://sptejrymri.execute-api.us-east-1.amazonaws.com/workspace/mcp'
OAUTH_START_URL = (
os.environ.get('OAUTH_START_URL')
or 'https://sptejrymri.execute-api.us-east-1.amazonaws.com/oauth/start'
@@ -283,28 +281,14 @@ async def main(payload: dict, context):
base_tools = [web_search, web_fetch, read_workspace_file, write_workspace_file,
_code_interpreter.code_interpreter, home_assistant, connect_google_account,
manage_service, schedule_reminder, list_reminders, cancel_reminder]
workspace_mcp_client = MCPClient(
lambda: streamablehttp_client(WORKSPACE_MCP_URL, timeout=20)
)
workspace_tools = []
google_email = user_profile.get('google_email', '')
print(f'[main] actor={actor_id} google_email={google_email!r} workspace_mcp_url={WORKSPACE_MCP_URL!r}')
if google_email:
try:
with workspace_mcp_client:
workspace_tools = workspace_mcp_client.list_tools_sync()
except Exception as e:
print(f'[main] workspace_mcp unavailable ({type(e).__name__}) — continuing without it')
else:
print(f'[main] actor={actor_id} has no google_email — skipping workspace_mcp')
manage_service, schedule_reminder, list_reminders, cancel_reminder,
list_calendars, get_calendar_events, list_gmail_messages, get_gmail_message]
agent = Agent(
model=model,
system_prompt=system_prompt,
session_manager=session_manager,
tools=base_tools + list(workspace_tools),
tools=base_tools,
)
final_message = None