From 85a97f5c7774b4b9598e6761143a29a34876decf Mon Sep 17 00:00:00 2001 From: Eric Abouaf Date: Thu, 15 May 2025 16:49:13 +0200 Subject: [PATCH 1/2] Add activity feed --- src/services/sendgrid.ts | 13 +++++++++++++ src/tools/index.ts | 19 +++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/src/services/sendgrid.ts b/src/services/sendgrid.ts index faa5841..ab0fe05 100644 --- a/src/services/sendgrid.ts +++ b/src/services/sendgrid.ts @@ -316,4 +316,17 @@ export class SendGridService { }); return response.body; } + + // Get last 100 messages sent to an email address + async getActivityFeed(email: string) { + const [response] = await this.client.request({ + method: 'GET', + url: `/v3/activity/messages`, + qs: { + query: `to_email="${email}"`, + limit: 100 + } + }); + return response.body; + } } diff --git a/src/tools/index.ts b/src/tools/index.ts index 511d707..37d2c3a 100644 --- a/src/tools/index.ts +++ b/src/tools/index.ts @@ -370,11 +370,30 @@ export const getToolDefinitions = (service: SendGridService) => [ }, required: ['list_id', 'emails'] } + }, + { + name: 'get_activity_feed', + description: 'Get the activity feed for an email address', + inputSchema: { + type: 'object', + properties: { + email: { + type: 'string', + description: 'Email address to get the activity feed for' + } + }, + required: ['email'] + } } ]; export const handleToolCall = async (service: SendGridService, name: string, args: any) => { switch (name) { + + case 'get_activity_feed': + const activityFeed = await service.getActivityFeed(args.email); + return { content: [{ type: 'text', text: JSON.stringify(activityFeed, null, 2) }] }; + case 'delete_contacts': await service.deleteContactsByEmails(args.emails); return { content: [{ type: 'text', text: `Successfully deleted ${args.emails.length} contacts` }] }; From 00936b3ba7ec0a1f5dc9fbd0c52313ae8e54860d Mon Sep 17 00:00:00 2001 From: Eric Abouaf Date: Thu, 15 May 2025 16:51:57 +0200 Subject: [PATCH 2/2] Fix URL --- src/services/sendgrid.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/services/sendgrid.ts b/src/services/sendgrid.ts index ab0fe05..db3b6c3 100644 --- a/src/services/sendgrid.ts +++ b/src/services/sendgrid.ts @@ -321,7 +321,7 @@ export class SendGridService { async getActivityFeed(email: string) { const [response] = await this.client.request({ method: 'GET', - url: `/v3/activity/messages`, + url: `/v3/messages`, qs: { query: `to_email="${email}"`, limit: 100