MCP 服务器

sendgrid

io.usefulapi/sendgrid
通信 营销与广告 公开且可连接 MCP 2026-07-28

此 MCP 可以做什么

Sends email and manages SendGrid templates, marketing contacts, lists, delivery statistics, bounces, and unsubscribes.

sendgrid_add_or_update_contacts
Add or update marketing contacts
UPSERTS marketing contacts (creates new ones, updates existing ones by email) and optionally adds them to lists. This is an ASYNC job — returns { job_id } you can poll. SendGrid: PUT /v3/marketing/contacts.
可能执行破坏性操作
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['contacts'], 'properties': {'contacts': {'type': 'array', 'items': {'type': 'object', 'required': ['email'], 'properties': {'email': {'type': 'string', 'description': 'Contact email address (required — the primary identifier for the contact).'}, 'last_name': {'type': 'string', 'description': 'Contact last name.'}, 'first_name': {'type': 'string', 'description': 'Contact first name.'}}, 'description': "A marketing contact. `email` is required; first_name/last_name are optional. Any additional keys are passed through as custom-field values (use the custom field's id or reserved name as the key).", 'additionalProperties': {}}, 'minItems': 1, 'description': 'Contacts to add or update (each needs an `email`; custom fields pass through).'}, 'list_ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'List ids to add these contacts to.'}}}
sendgrid_get_contact_count
Get contact count
Get the total number of Marketing Campaigns contacts on your account. Returns { contact_count, billable_count }. SendGrid: GET /v3/marketing/contacts/count.
只读
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
sendgrid_get_stats
Get email stats
Get global email statistics over a date range (delivered, opens, clicks, bounces, spam reports, etc.). Returns an array of { date, stats: [{ metrics: {...} }] }. SendGrid: GET /v3/stats.
只读
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['start_date'], 'properties': {'limit': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Number of results to return.'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Number of results to skip (for pagination).'}, 'end_date': {'type': 'string', 'description': 'End date in YYYY-MM-DD format (defaults to today).'}, 'start_date': {'type': 'string', 'description': 'Start date in YYYY-MM-DD format (required).'}, 'aggregated_by': {'enum': ['day', 'week', 'month'], 'type': 'string', 'description': 'How to group the returned statistics.'}}}
sendgrid_get_template
Get email template
Get a single transactional email template by id, including its versions (subject + content). SendGrid: GET /v3/templates/{template_id}.
只读
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['template_id'], 'properties': {'template_id': {'type': 'string', 'description': 'The template id (dynamic template ids start with "d-").'}}}
sendgrid_list_bounces
List bounces
List bounced email addresses (the bounce suppression list). Returns an array of { created, email, reason, status }. SendGrid: GET /v3/suppression/bounces.
只读
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'email': {'type': 'string', 'description': 'Filter to a specific bounced email address.'}, 'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Number of bounces to return (1–500).'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Number of bounces to skip (for pagination).'}, 'end_time': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'End of the time range, as a Unix timestamp (seconds).'}, 'start_time': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Start of the time range, as a Unix timestamp (seconds).'}}}
sendgrid_list_global_unsubscribes
List global unsubscribes
List globally-unsubscribed email addresses (the global suppression list). Returns an array of { created, email }. SendGrid: GET /v3/suppression/unsubscribes.
只读
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'limit': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Number of records to return.'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Number of records to skip (for pagination).'}, 'end_time': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'End of the time range, as a Unix timestamp (seconds).'}, 'start_time': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Start of the time range, as a Unix timestamp (seconds).'}}}
sendgrid_list_marketing_lists
List marketing lists
List your Marketing Campaigns contact lists, each with its id, name, and contact_count. Returns { result: [...], _metadata }. SendGrid: GET /v3/marketing/lists.
只读
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'page_size': {'type': 'integer', 'default': 100, 'maximum': 1000, 'minimum': 1, 'description': 'Number of lists per page (1–1000, default 100).'}, 'page_token': {'type': 'string', 'description': "Pagination token from a previous response's _metadata."}}}
sendgrid_list_templates
List email templates
List your transactional email templates (Dynamic and/or Legacy). Returns { result: [...], _metadata } — use _metadata.next / page_token to paginate. SendGrid: GET /v3/templates.
只读
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'page_size': {'type': 'integer', 'default': 50, 'maximum': 200, 'minimum': 1, 'description': 'Number of templates per page (1–200, default 50).'}, 'page_token': {'type': 'string', 'description': "Pagination token from a previous response's _metadata."}, 'generations': {'enum': ['legacy', 'dynamic', 'legacy,dynamic'], 'type': 'string', 'default': 'dynamic', 'description': 'Which template generation(s) to return (default: dynamic).'}}}
sendgrid_ping
Ping (health check)
Health check — verifies the API key works and returns the scopes (permissions) granted to it. SendGrid: GET /v3/scopes.
只读
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
sendgrid_search_contacts_by_email
Search contacts by email
Look up marketing contacts by exact email address (a read-only lookup — mutates nothing). Returns { result: { "<email>": { contact: {...} } } }. SendGrid: POST /v3/marketing/contacts/search/emails.
只读
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['emails'], 'properties': {'emails': {'type': 'array', 'items': {'type': 'string'}, 'minItems': 1, 'description': 'One or more exact email addresses to look up.'}}}
sendgrid_send_mail
Send email
SENDS A REAL EMAIL immediately via SendGrid. Provide `from_email` and one or more `to` recipients, plus EITHER a subject + content OR a `template_id` (dynamic template ids start with "d-", pass values via dynamic_template_data). Returns { status: "accepted", message_id }. SendGrid: POST /v3/mail/send.
可能执行破坏性操作
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['from_email', 'to'], 'properties': {'cc': {'type': 'array', 'items': {'type': 'string'}, 'description': 'CC recipient email addresses.'}, 'to': {'type': 'array', 'items': {'type': 'string'}, 'minItems': 1, 'description': 'One or more recipient email addresses.'}, 'bcc': {'type': 'array', 'items': {'type': 'string'}, 'description': 'BCC recipient email addresses.'}, 'content': {'type': 'string', 'description': 'The email body. Required unless template_id is provided.'}, 'subject': {'type': 'string', 'description': 'Email subject line. Required unless a template_id supplies it.'}, 'reply_to': {'type': 'string', 'description': 'Reply-To email address.'}, 'from_name': {'type': 'string', 'description': 'Sender display name.'}, 'from_email': {'type': 'string', 'description': 'Sender email address (must be a verified sender/domain).'}, 'template_id': {'type': 'string', 'description': 'A template id to render (dynamic template ids start with "d-"). When set, `content` is omitted.'}, 'content_type': {'enum': ['text/plain', 'text/html'], 'type': 'string', 'default': 'text/html', 'description': 'MIME type of the body content (default text/html).'}, 'dynamic_template_data': {'type': 'object', 'description': "Key/value data merged into a dynamic template's handlebars variables.", 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}}}
已更改
sendgrid_add_or_update_contacts
2026年10月1日 02:43
已更改
sendgrid_send_mail
2026年10月1日 02:43
已更改
sendgrid_list_global_unsubscribes
2026年10月1日 02:43
已更改
sendgrid_list_bounces
2026年10月1日 02:43
已更改
sendgrid_get_stats
2026年10月1日 02:43
已更改
sendgrid_search_contacts_by_email
2026年10月1日 02:43
已更改
sendgrid_get_contact_count
2026年10月1日 02:43
已更改
sendgrid_list_marketing_lists
2026年10月1日 02:43
已更改
sendgrid_get_template
2026年10月1日 02:43
已更改
sendgrid_list_templates
2026年10月1日 02:43
已更改
sendgrid_ping
2026年10月1日 02:43
已添加
sendgrid_add_or_update_contacts
2026年9月21日 02:44
已添加
sendgrid_send_mail
2026年9月21日 02:44
已添加
sendgrid_list_global_unsubscribes
2026年9月21日 02:44
已添加
sendgrid_list_bounces
2026年9月21日 02:44
已添加
sendgrid_get_stats
2026年9月21日 02:44
已添加
sendgrid_search_contacts_by_email
2026年9月21日 02:44
已添加
sendgrid_get_contact_count
2026年9月21日 02:44
已添加
sendgrid_list_marketing_lists
2026年9月21日 02:44
已添加
sendgrid_get_template
2026年9月21日 02:44
已添加
sendgrid_list_templates
2026年9月21日 02:44
已添加
sendgrid_ping
2026年9月21日 02:44