S

Sendgrid邮件管理工具

@Garoth/sendgrid-mcp
1 Stars 414 次浏览 Garoth 更新于 2026-08-23

提供了一个通过SendGrid的API管理电子邮件营销、联系人列表、动态模板和电子邮件分析的接口。

该服务暂未提供标准配置,请参考 README 手动接入

可用工具 (21 个)

该服务在 MCP 协议中暴露的工具,AI 可按需调用

delete_contacts 1 个参数 需填 1 项

Delete contacts from your SendGrid account

必填参数:emails

list_contacts

List all contacts in your SendGrid account

该工具无需必填参数,直接调用即可

send_email 7 个参数 需填 4 项

Send an email using SendGrid

必填参数:to、subject、text、from

add_contact 4 个参数 需填 1 项

Add a contact to your SendGrid marketing contacts

必填参数:email

create_contact_list 1 个参数 需填 1 项

Create a new contact list in SendGrid

必填参数:name

add_contacts_to_list 2 个参数 需填 2 项

Add contacts to an existing SendGrid list

必填参数:list_id、emails

create_template 4 个参数 需填 4 项

Create a new email template in SendGrid

必填参数:name、subject、html_content、plain_content

get_template 1 个参数 需填 1 项

Retrieve a SendGrid template by ID

必填参数:template_id

delete_template 1 个参数 需填 1 项

Delete a dynamic template from SendGrid

必填参数:template_id

validate_email 1 个参数 需填 1 项

Validate an email address using SendGrid

必填参数:email

get_stats 3 个参数 需填 1 项

Get SendGrid email statistics

必填参数:start_date

list_templates

List all email templates in your SendGrid account

该工具无需必填参数,直接调用即可

delete_list 1 个参数 需填 1 项

Delete a contact list from SendGrid

必填参数:list_id

list_contact_lists

List all contact lists in your SendGrid account

该工具无需必填参数,直接调用即可

get_contacts_by_list 1 个参数 需填 1 项

Get all contacts in a SendGrid list

必填参数:list_id

list_verified_senders

List all verified sender identities in your SendGrid account

该工具无需必填参数,直接调用即可

list_suppression_groups

List all unsubscribe groups in your SendGrid account

该工具无需必填参数,直接调用即可

send_to_list 8 个参数 需填 6 项

Send an email to a contact list using SendGrid Single Sends

必填参数:name、list_ids、subject、html_content、plain_content、sender_id

get_single_send 1 个参数 需填 1 项

Get details of a specific single send

必填参数:single_send_id

list_single_sends

List all single sends in your SendGrid account

该工具无需必填参数,直接调用即可

remove_contacts_from_list 2 个参数 需填 2 项

Remove contacts from a SendGrid list without deleting them

必填参数:list_id、emails

服务介绍

SendGrid MCP 服务器

这是一个提供访问 SendGrid 营销 API 的模型上下文协议 (MCP) 服务器,用于电子邮件营销和联系人管理。https://docs.sendgrid.com/api-reference/how-to-use-the-sendgrid-v3-api

演示

在这个演示中,我们要求 Cline SendGrid 代理创建一个新的联系人列表,将我的电子邮件添加到其中,自动生成一个关于 Lost Cities 事实的模板,并将邮件发送给列表中的联系人。在此过程中,Cline 会自动意识到它需要知道我们已验证的发件人以及要使用的退订组。一封漂亮的邮件被发送到了我的收件箱,让我对 Lost Cities 感到惊喜!

关于 API 支持的重要说明

该服务器仅支持 SendGrid 的 v3 APIs 并不提供对旧版功能的支持。这包括:

  • 仅支持动态模板 - 不支持旧版模板
  • 使用 Marketing API v3 进行所有联系人及联系人列表操作
  • 使用 Single Sends API 发送批量邮件

可用工具

联系人管理

列出联系人

列出您的 SendGrid 账户中的所有联系人。

// No parameters required

添加联系人

向您的 SendGrid 营销联系人中添加一个联系人。

{
  email: string;           // Required: Contact email address
  first_name?: string;     // Optional: Contact first name
  last_name?: string;      // Optional: Contact last name
  custom_fields?: object;  // Optional: Custom field values
}

删除联系人

从您的 SendGrid 账户中删除联系人。

{
  emails: string[];  // Required: Array of email addresses to delete
}

根据列表获取联系人

获取 SendGrid 列表中的所有联系人。

{
  list_id: string;  // Required: ID of the contact list
}

列表管理

列出联系人列表

列出您的 SendGrid 账户中的所有联系人列表。

// No parameters required

创建联系人列表

在 SendGrid 中创建一个新的联系人列表。

{
  name: string;  // Required: Name of the contact list
}

删除列表

从 SendGrid 中删除一个联系人列表。

{
  list_id: string;  // Required: ID of the contact list to delete
}

将联系人添加到列表

将联系人添加到现有的 SendGrid 列表中。

{
  list_id: string;    // Required: ID of the contact list
  emails: string[];   // Required: Array of email addresses to add
}

从列表中移除联系人

从 SendGrid 列表中移除联系人而不删除它们。

{
  list_id: string;    // Required: ID of the contact list
  emails: string[];   // Required: Array of email addresses to remove
}

发送邮件

发送邮件

使用 SendGrid 发送邮件。

{
  to: string;                             // Required: Recipient email address
  subject: string;                        // Required: Email subject line
  text: string;                          // Required: Plain text content
  from: string;                          // Required: Verified sender email address
  html?: string;                         // Optional: HTML content
  template_id?: string;                  // Optional: Dynamic template ID
  dynamic_template_data?: object;        // Optional: Template variables
}

向列表发送邮件

使用 SendGrid Single Sends 向联系人列表发送邮件。

{
  name: string;                          // Required: Name of the single send
  list_ids: string[];                    // Required: Array of list IDs to send to
  subject: string;                       // Required: Email subject line
  html_content: string;                  // Required: HTML content
  plain_content: string;                 // Required: Plain text content
  sender_id: number;                     // Required: ID of the verified sender
  suppression_group_id?: number;         // Required if custom_unsubscribe_url not provided
  custom_unsubscribe_url?: string;       // Required if suppression_group_id not provided
}

模板管理(仅限动态模板)

创建模板

创建一个新的动态电子邮件模板。

{
  name: string;           // Required: Name of the template
  subject: string;        // Required: Default subject line
  html_content: string;   // Required: HTML content with handlebars syntax
  plain_content: string;  // Required: Plain text content with handlebars syntax
}

列出模板

列出所有动态电子邮件模板。

// No parameters required

获取模板

通过 ID 检索模板。

{
  template_id: string;  // Required: ID of the template to retrieve
}

删除模板

删除一个动态模板。

{
  template_id: string;  // Required: ID of the template to delete
}

分析与验证

获取统计信息

获取 SendGrid 邮件统计数据。

{
  start_date: string;                          // Required: Start date (YYYY-MM-DD)
  end_date?: string;                           // Optional: End date (YYYY-MM-DD)
  aggregated_by?: 'day' | 'week' | 'month';    // Optional: Aggregation period
}

validate_email

使用 SendGrid 验证电子邮件地址。

{
  email: string;  // Required: Email address to validate
}

账户管理

list_verified_senders

列出所有已验证的发件人身份。

// No parameters required

list_suppression_groups

列出所有退订组。

// No parameters required

安装

git clone https://github.com/Garoth/sendgrid-mcp.git
cd sendgrid-mcp
npm install

配置

  1. 获取您的 SendGrid API 密钥:

    • 登录您的 SendGrid 账户
    • 转到设置 > API 密钥
    • 创建一个新的具有完全访问权限的 API 密钥
    • 安全保存该 API 密钥,因为它不会再次显示
  2. 将其添加到 VSCode 设置中的 Cline MCP 设置文件中(例如:~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json):

{
  "mcpServers": {
    "sendgrid": {
      "command": "node",
      "args": ["/path/to/sendgrid-mcp/build/index.js"],
      "env": {
        "SENDGRID_API_KEY": "your-api-key-here"
      },
      "disabled": false,
      "autoApprove": [
        "list_contacts",
        "list_contact_lists",
        "list_templates",
        "list_single_sends",
        "get_single_send",
        "list_verified_senders",
        "list_suppression_groups",
        "get_stats",
        "validate_email"
      ]
    }
  }
}

注意:为了安全起见,故意将修改数据的工具(如发送电子邮件或删除联系人)排除在自动批准之外。

开发

设置测试

测试使用真实的 API 调用来确保准确响应。要运行测试,请执行以下步骤:

  1. 复制示例环境文件:

    cp .env.example .env
    
  2. 编辑 .env 并添加您的 SendGrid API 密钥:

    SENDGRID_API_KEY=your-api-key-here
    

    注意:.env 文件已被 gitignore 以防止提交敏感信息。

  3. 运行测试:

    npm test
    

构建

npm run build

重要注意事项

  • 当向列表发送电子邮件时,您必须提供 suppression_group_id 或 custom_unsubscribe_url 以符合电子邮件规定
  • 发件人电子邮件地址必须先通过 SendGrid 验证才能用于发送电子邮件
  • 所有模板都作为支持 handlebars 语法(例如 {{variable_name}})的动态模板创建
  • 所有的批量邮件操作都使用 Single Sends API,因为它提供了更好的跟踪和管理功能
  • SendGrid API 是“最终一致”的 - 数据更改(如添加联系人或更新列表)可能不会立即反映出来

许可证

MIT

SendGrid 徽标版权 / 归 Twilio 所有

相关 MCP 服务