mcpField
C
Customer Thermometer

Customer Thermometer

本地服务
github.com商业与营销01 周前更新

关于 Customer Thermometer

Customer Thermometer 是面向 AI 助手的 MCP 服务,可通过 Customer Thermometer API 管理客户反馈调查并查看结果。它覆盖核心调查流程,包括收件人列表、发送调查以及 NPS、满意度、回复和评论报告。

主要功能

  1. 01列出调查模板和收件人列表
  2. 02添加或取消订阅收件人
  3. 03发送邮件调查
  4. 04查询剩余发送额度
  5. 05读取 NPS、满意度、回复和评论报告

适用场景

  1. 01按日期范围查看 NPS 或满意度
  2. 02向收件人发送调查
  3. 03检查调查评论和原始回复

MCP 相关

它将 Customer Thermometer API 操作作为 MCP 工具提供,涵盖模板和列表查询、收件人管理、调查发送及报告读取。支持 stdio 和 HTTP 传输。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"wyre-ai-customer-thermometer": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"CUSTOMERTHERMOMETER_API_KEY",
"-e",
"MCP_TRANSPORT",
"-e",
"AUTH_MODE",
"-e",
"LOG_LEVEL",
"ghcr.io/wyre-ai/customer-thermometer-mcp:v1.0.5"
],
"env": {
"CUSTOMERTHERMOMETER_API_KEY": "<CUSTOMERTHERMOMETER_API_KEY>",
"MCP_TRANSPORT": "<MCP_TRANSPORT>",
"AUTH_MODE": "<AUTH_MODE>",
"LOG_LEVEL": "<LOG_LEVEL>"
}
}
}
}
启动命令docker run -i --rm -e CUSTOMERTHERMOMETER_API_KEY -e MCP_TRANSPORT -e AUTH_MODE -e LOG_LEVEL ghcr.io/wyre-ai/customer-thermometer-mcp:v1.0.5
需要配置的环境变量
CUSTOMERTHERMOMETER_API_KEY密钥Customer Thermometer API key (Super API key or sub-API key, from account Integration settings)
MCP_TRANSPORTTransport mode for the server. Set to 'stdio' for local CLI use; the image defaults to 'http' for gateway hosting.
AUTH_MODE密钥Credential source: 'env' reads vars locally, 'gateway' expects header injection from the WYRE MCP Gateway.
LOG_LEVELLog verbosity: debug, info, warn, error

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocighcr.io/wyre-ai/customer-thermometer-mcp:v1.0.5

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Customer Thermometer MCP 服务

面向 AI 助手和 WYRE Conduit 网关的 MCP 服务,用于访问 Customer Thermometer 的客户反馈 / NPS 调查 API,包括温度计、收件人列表、发送和报告。

身份验证

Customer Thermometer 使用单个静态 API 密钥进行身份验证,该密钥可在账户的 Integration 设置中生成。此连接器支持“Super API key”(拥有完整账户访问权限)或权限范围更窄的“sub-API key”。

配置

复制 .env.example,并设置以下变量。

环境变量说明
CUSTOMERTHERMOMETER_API_KEYCustomer Thermometer 签发的 API 密钥。供 stdio 使用;当 AUTH_MODE=env 时也供 HTTP 使用。
MCP_TRANSPORTstdio(默认)或 http。
AUTH_MODEenv(默认,读取上方的变量)或 gateway(API 密钥通过每个请求中的 X-CustomerThermometer-Api-Key 传入,绝不会回退到环境变量)。Docker 镜像和 Compose 文件默认使用 gateway。
CONDUIT_S2S_SECRETHTTP 必需。用于校验 /mcp 上 X-Gateway-S2S 的 HMAC 密钥。使用 openssl rand -hex 32 生成。如果该变量为空或为已知占位值(changeme、your-s2s-secret、replace-with-a-real-secret 及其他公开示例),HTTP 服务会记录错误并以非零状态码退出。未设置时,Compose 不会启动。切勿提交真实值。该值绝不会被记录到日志中。
MCP_ALLOW_INSECURE_DEV仅供本地开发使用,且必须准确设为 1,才能在没有 CONDUIT_S2S_SECRET 的情况下启动 HTTP。此模式会记录警告、不校验 X-Gateway-S2S,且仅绑定到 127.0.0.1。此模式下会忽略非环回地址的 MCP_HTTP_HOST。如果密钥是已知占位值,仍会拒绝启动。
MCP_HTTP_HOSTMCP_TRANSPORT=http 时的绑定地址。默认为 127.0.0.1。设置 CONDUIT_S2S_SECRET 时会采用此值。容器镜像设为 0.0.0.0。未设置密钥时,监听地址仅为 127.0.0.1。
MCP_HTTP_PORTHTTP 端口。默认为 8080。
LOG_LEVELdebug | info(默认)| warn | error。

/health 无需身份验证,也不会读取凭据。stdio 传输不使用 CONDUIT_S2S_SECRET。

HTTP 身份验证

当 MCP_TRANSPORT=http 且已设置 CONDUIT_S2S_SECRET 时,每个 /mcp 请求都必须包含 X-Gateway-S2S。该标头的值为 t=<unix seconds>,v1=<hex>。<hex> 是对字面字符串 t=<unix seconds>(使用相同的 t= 前缀和时间戳)计算的 HMAC-SHA256,以 CONDUIT_S2S_SECRET 为密钥,并编码为 64 位小写十六进制字符。时间戳与服务器时钟的偏差必须在 300 秒以内。标头缺失或无效时,会返回 HTTP 401,且不会读取供应商凭据。

在 AUTH_MODE=gateway 模式下,/mcp 还要求提供 X-CustomerThermometer-Api-Key。该标头是该请求唯一的凭据来源。请求未提供该标头时会返回 401,且不会回退到 CUSTOMERTHERMOMETER_API_KEY。

请求限制
  • HTTP 请求正文的大小上限为 256 KiB(262144 字节)。X-Gateway-S2S 校验通过后,若 Content-Length 超出上限,则返回包含 JSON-RPC 错误的 413;没有 Content-Length 的正文则由 MCP SDK 传输限制大小。未经身份验证的请求仍会先收到 401。
  • tools/call 参数最多允许 10,000 个元素(任意深度的每个数组项和对象键均计为一个元素)。输入超过上限时会返回带有 isError 的工具结果,且不会分派执行。

这些限制用于应对 CVE-2026-111768 / GHSA-46jr-4wx8-v453(验证期间的内存耗尽)和 GHSA-f897-62hf-6gxq(缺少请求正文 / 批处理上限)。

工具

列表
  • customerthermometer_get_thermometers - 列出账户中的所有调查模板(Thermometers)。
  • customerthermometer_get_recipient_lists - 列出账户中的所有收件人列表。
收件人
  • customerthermometer_add_recipient_to_list - 将收件人添加到列表。
  • customerthermometer_unsubscribe_recipient - 将电子邮件地址添加到账户的退订列表。
发送
  • customerthermometer_send_email - 向一位收件人发送一份 Email Thermometer 调查。
  • customerthermometer_get_credits - 查看账户剩余的 Thermometer 发送额度。
报告
  • customerthermometer_get_nps_value - 查看净推荐值,可按群发或日期范围筛选。
  • customerthermometer_get_happiness_value - 查看幸福度百分比,可按群发或日期范围筛选。
  • customerthermometer_get_blast_results - 查看原始调查回复,可按温度、群发或日期范围筛选。
  • customerthermometer_get_comments - 查看回复中留下的自由文本评论,可按温度、群发或日期范围筛选。

返回 XML 的读取端点(getThermometers、getRecipientLists、getBlastResults、getComments)会采用通用方式解析,而不是映射到手写的架构。供应商的 API 文档没有公布这些响应的元素名称,因此解析后的结构会直接传递,不会冒险使用与实际响应不匹配的架构。

范围

这是一个 v1 接口,涵盖核心调查工作流:列出温度计和列表、添加和取消订阅收件人、发送调查,以及读取 NPS/幸福度/回复/评论报告。目前明确不在范围内的端点:logResponse 和 deleteResponse——这两个端点具有破坏性、价值较低,会修改或丢弃现有回复数据。如有需求,可在后续添加。

开发

npm install
npm run build
npm test
npm run lint   # tsc --noEmit

Docker

容器内的镜像会监听 0.0.0.0(MCP_HTTP_HOST),并默认使用 AUTH_MODE=gateway。请将端口发布到回环地址并传入 S2S 密钥。在网关模式下,API 密钥会通过每个请求中的 X-CustomerThermometer-Api-Key 传入,不会从环境中读取。每个 /mcp 请求还必须包含有效的 X-Gateway-S2S 签名(参见HTTP 身份验证)。

docker build -t customer-thermometer-mcp .
docker run \
  -e CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" \
  -p 127.0.0.1:8080:8080 \
  customer-thermometer-mcp

如果未设置 CONDUIT_S2S_SECRET,Compose 将拒绝启动;默认将 AUTH_MODE 设为 gateway,发布 127.0.0.1:8080:8080,且不会设置 CUSTOMERTHERMOMETER_API_KEY:

CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" docker compose up

单租户 HTTP(AUTH_MODE=env)仍需要 S2S 密钥,然后使用 CUSTOMERTHERMOMETER_API_KEY:

docker run \
  -e CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" \
  -e AUTH_MODE=env \
  -e CUSTOMERTHERMOMETER_API_KEY="$CUSTOMERTHERMOMETER_API_KEY" \
  -p 127.0.0.1:8080:8080 \
  customer-thermometer-mcp

在 CONDUIT_S2S_SECRET 为真实密钥之前,HTTP 服务会拒绝启动。未设置密钥的本地 HTTP 仅用于开发:它只绑定到 127.0.0.1,并会记录警告。

CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" npm run start:http

MCP_ALLOW_INSECURE_DEV=1 npm run start:http

评论

支持 Markdown

第一次接触 MCP?

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

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