mcpField
A
AhaSend

AhaSend

远程服务
ahasend.com通信协作02 天前更新

关于 AhaSend

AhaSend 是面向使用 AhaSend 管理邮件的团队的 Go MCP 服务模块,可让 AI Agent 操作邮件流程。工具涵盖发送、诊断、域名、营销活动、联系人和账户管理,访问权限由 API 密钥作用域控制。

主要功能

  1. 01发送和安排邮件
  2. 02诊断投递与退信问题
  3. 03管理域名和模板
  4. 04管理联系人、列表和营销活动
  5. 05配置 Webhook 与账户资源

适用场景

  1. 01发送单封邮件或模板邮件
  2. 02排查发送失败的邮件
  3. 03管理营销活动及其收件人
  4. 04更新域名、联系人或 Webhook

MCP 相关

该模块使用官方 Go MCP SDK 构建 MCP 服务。宿主程序可通过 stdio、HTTP 或其他 SDK 传输方式提供服务;可用工具和权限取决于 API 密钥的作用域。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://mcp.ahasend.com/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

ahasend-mcp

一个提供 AhaSend MCP 工具的 Go 模块。 借助这些工具,AI Agent 可以发送电子邮件、查明邮件发送失败的原因, 并管理域名、模板、联系人、列表、营销活动、Webhook、路由、 抑制列表、SMTP 凭据和子账户。

每个工具都会通过 ahasend-go 调用 AhaSend v2 API。API 密钥的作用域 决定 Agent 可以执行哪些操作。

该模块使用 official Go MCP SDK 构建服务端。程序 可以自行选择服务方式:stdio、HTTP 或 SDK 支持的其他传输方式。

go get github.com/AhaSend/ahasend-mcp

示例

server, err := ahasendmcp.NewServer(
	&mcp.Implementation{Name: "my-app", Version: "1.0.0"},
	ahasendmcp.Options{
		Client:           api.NewAPIClient(api.WithAPIKey(apiKey)),
		AccountID:        accountID,
		DashboardBaseURL: "https://dash.ahasend.com",
		ConfirmationKey:  key, // at least 32 random bytes
	},
)
if err != nil {
	return err
}
return server.Run(ctx, &mcp.StdioTransport{})

选项

字段功能
Clientahasend-go 客户端,包含 API 密钥。必填。
AccountID工具操作的账户。必填。
DashboardBaseURLAhaSend 仪表板 URL,用于营销活动链接。必填。
ConfirmationKey至少 32 字节的密钥,用于签署营销活动发送确认问题。必填。
ScopesAPI 密钥的作用域。只会显示该密钥可使用的工具。nil 表示显示所有工具。
Toolsets只显示这些工具集。nil 表示显示全部。
ReadOnly只显示不会更改任何内容的工具。
Stateless如果通过无状态 HTTP 提供服务,则设为 true。
MaxRecipientsPerSend单次发送的最大收件人数。默认值为 50。
ReadInbound允许消息工具返回账户收到的电子邮件。默认关闭。
Blocked如果已设置,每次工具调用都会将此文本作为错误返回,且不执行任何操作。
Recorder每次工具调用都会生成一条记录:工具名称、是否成功、错误类型和耗时。不会记录输入或结果。

如果要为许多用户提供服务,请使用每位用户的密钥和作用域,为每个请求 创建一个新的服务端。这样开销很低。所有实例都使用相同的 ConfirmationKey。

Catalogue() 会列出每个工具及其所需的作用域。 OfferedScopes() 会列出这些工具使用的所有作用域,可用于让用户 选择作用域的页面。

工具

工具集工具
sendingsend_email、send_conversation_email、send_template_email、cancel_scheduled_email
diagnosticslist_messages、get_message、diagnose_message、get_deliverability_stats、get_bounce_stats、get_delivery_time_stats
domainslist_domains、get_domain、add_domain、check_domain_dns、update_domain、delete_domain
templateslist_templates、get_template、create_template、update_template、delete_template、get_template_draft、discard_template_draft、publish_template、list_template_versions、get_template_version、restore_template_version、list_campaign_templates、get_campaign_template、create_campaign_template、update_campaign_template、delete_campaign_template
audiencelist_contacts、get_contact、create_contact、upsert_contacts、update_contact、delete_contact、list_contact_lists、list_lists、get_list、create_list、update_list、delete_list、list_list_contacts、add_contacts_to_list、upsert_list_contact、remove_contact_from_list
campaignslist_campaigns、get_campaign、create_campaign、update_campaign、delete_campaign、duplicate_campaign、send_campaign_test、send_campaign、schedule_campaign、unschedule_campaign、get_campaign_stats、list_campaign_recipients
managementget_account、list_webhooks、get_webhook、create_webhook、update_webhook、delete_webhook、list_routes、get_route、create_route、update_route、delete_route、list_suppressions、add_suppression、remove_suppression、list_smtp_credentials、get_smtp_credential、delete_smtp_credential、list_sub_accounts、get_sub_account、create_sub_account、update_sub_account、get_sub_account_usage

每个工具都需要其 API 端点所需的权限范围。send_campaign 和 schedule_campaign 还需要 campaigns:read 和 lists:read。活动模板工具也需要 campaigns:read。

列表工具默认返回 20 项,最多返回 100 项。传入返回的游标即可获取下一页。

没有用于创建 API 密钥或 SMTP 凭据、更改账户设置、账单或团队成员、移除所有抑制项,或删除或暂停子账户的工具。

安全规则

发送活动需要获得用户同意。 send_campaign 和 schedule_campaign 会向用户显示一个表单,其中包含发送时间、联系人数量、活动名称、主题、发件人和列表。只有用户回答“是”时才会发送。如果用户确认后活动发生更改,工具会再次询问。如果客户端无法显示表单,工具不会发送任何内容,并会返回控制面板中的活动链接。

单次发送有收件人数量限制。 单次发送的收件人超过 MaxRecipientsPerSend(默认值为 50)时,发送将被拒绝。批量邮件请使用活动。

默认隐藏收到的邮件。 任何人都可以向账户的入站地址发送邮件,而这些邮件可能包含试图欺骗 Agent 的文本。除非启用 ReadInbound,否则邮件工具不会返回收到的邮件。启用后,收到的邮件会标记为 untrusted: true。

错误

当 API 拒绝调用时,工具会返回错误,其中包含 API 提供的消息和后续操作建议。

在本地试用

cmd/ahasend-mcp-dev 使用你自己的 API 密钥,通过 stdio 提供所有工具。 它仅用于测试。

go build -o ahasend-mcp-dev ./cmd/ahasend-mcp-dev
claude mcp add ahasend \
  -e AHASEND_API_KEY=... -e AHASEND_ACCOUNT_ID=... \
  -- ./ahasend-mcp-dev

设置 AHASEND_BASE_URL,即可使用默认地址以外的 API。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。