mcpField
A
Abnormal Security

Abnormal Security

本地服务
github.com安全02 周前更新

关于 Abnormal Security

Abnormal Security 是用于邮件威胁检测、调查案件和补救操作的 MCP 服务。工具按领域通过决策树导航组织,威胁详情还可在支持 MCP Apps 的宿主中显示为只读交互卡片。

主要功能

  1. 01导航威胁、邮件、补救、滥用和案件领域
  2. 02列出并查看检测到的威胁案件
  3. 03检查邮件头、链接、附件和分析
  4. 04触发或查询邮件补救操作
  5. 05以只读卡片呈现威胁详情

适用场景

  1. 01查看已检测邮件威胁的详情
  2. 02检查可疑邮件内容及分析
  3. 03管理邮件补救操作
  4. 04跟踪进行中的安全调查案件

MCP 相关

将 Abnormal Security 的威胁、邮件、补救、滥用和案件操作作为 MCP 工具提供。威胁详情可显示为交互式只读 MCP Apps 卡片;补救仍需单独调用明确执行的工具。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"wyre-technology-abnormal": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"ABNORMAL_API_TOKEN",
"-e",
"MCP_TRANSPORT",
"-e",
"AUTH_MODE",
"-e",
"LOG_LEVEL",
"ghcr.io/wyre-technology/abnormal-mcp:v1.2.5"
],
"env": {
"ABNORMAL_API_TOKEN": "<ABNORMAL_API_TOKEN>",
"MCP_TRANSPORT": "<MCP_TRANSPORT>",
"AUTH_MODE": "<AUTH_MODE>",
"LOG_LEVEL": "<LOG_LEVEL>"
}
}
}
}
启动命令docker run -i --rm -e ABNORMAL_API_TOKEN -e MCP_TRANSPORT -e AUTH_MODE -e LOG_LEVEL ghcr.io/wyre-technology/abnormal-mcp:v1.2.5
需要配置的环境变量
ABNORMAL_API_TOKEN密钥Abnormal Security API token (Bearer credential)
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-technology/abnormal-mcp:v1.2.5

工具

还没有获取到工具列表

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

详细介绍

abnormal-mcp

适用于 Abnormal Security 的 MCP 服务——基于 AI 的威胁检测、案例管理和邮件修复。

工具

此服务采用决策树架构。首先调用 abnormal_navigate 选择一个领域,然后使用该领域的专用工具。

导航
工具描述
abnormal_navigate导航至某个领域(威胁、消息、修复、滥用、案例)
abnormal_back返回领域选择
威胁领域
工具描述
abnormal_threats_list列出检测到的威胁案例(分页)
abnormal_threats_get按 ID 获取特定威胁的完整详情
消息领域
工具描述
abnormal_messages_list列出威胁案例中的消息
abnormal_messages_get获取详细的消息分析(标头、URL、附件、AI 分析)
修复领域
工具描述
abnormal_remediation_manage触发或检查针对某条消息的修复操作
滥用领域
工具描述
abnormal_abuse_list列出通过 Abuse Mailbox 举报的钓鱼邮件
案例领域
工具描述
abnormal_cases_list列出活跃的安全调查案例
abnormal_cases_get获取特定案例的详情
交互式威胁卡片(MCP Apps)
  • 在 MCP Apps 主机(Claude Desktop/web)中,abnormal_threats_get 会呈现为交互式威胁卡片,显示主题、发件人、攻击分类、修复状态以及威胁中的消息。卡片为只读——修复仍是一项由模型介导、需要主动执行的操作。在其他主机中的纯 JSON 行为保持不变。默认采用中性样式,可通过注入 window.__BRAND__ 或设置 MCP_BRAND_* 环境变量(MCP_BRAND_NAME、MCP_BRAND_LOGO_URL、MCP_BRAND_PRIMARY_COLOR、MCP_BRAND_ACCENT_COLOR、MCP_BRAND_BG、MCP_BRAND_TEXT)进行品牌定制——无需重新构建。

身份验证

Abnormal Security 使用 Bearer 令牌身份验证。复制 .env.example,并设置以下变量。

变量必需描述
ABNORMAL_API_TOKENstdio 和 AUTH_MODE=env 时必需Abnormal Security API 令牌。在 Abnormal 门户的 Settings > Integrations > API 下生成。
MCP_TRANSPORT否stdio(默认)或 http
AUTH_MODE否env(Docker 外的默认值)或 gateway。镜像和 Compose 服务设置为 gateway。网关模式要求每个 /mcp 请求都携带 Authorization: Bearer,且绝不会回退到 ABNORMAL_API_TOKEN。
CONDUIT_S2S_SECRETHTTP 模式下必需服务间密钥。使用 openssl rand -hex 32 生成。若该值为空或为已知占位符(changeme、placeholder、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(包括 0.0.0.0)会被忽略,并记录覆盖情况。已知的占位符密钥仍会被拒绝。
MCP_HTTP_HOST否MCP_TRANSPORT=http 时的绑定地址。未设置时默认为 127.0.0.1。设置密钥后,此值会生效。容器镜像将其设置为 0.0.0.0。未设置密钥时,不安全开发模式会强制使用 127.0.0.1。
MCP_HTTP_PORT否HTTP 端口。默认为 8080。

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

X-Gateway-S2S 签名

当 MCP_TRANSPORT=http 且 CONDUIT_S2S_SECRET 是真实密钥时,每个 /mcp 请求都必须包含 X-Gateway-S2S。标头值为 t=<unix seconds>,v1=<hex>,其中 hex 是以 CONDUIT_S2S_SECRET 为密钥、对字面字符串 t=<unix seconds> 进行 HMAC-SHA256 运算得到的结果(64 个小写十六进制字符)。时间戳与服务器时钟的差值必须在 300 秒以内。若标头缺失或无效,则会在读取 Abnormal 令牌之前返回 401。

TS=$(date +%s)
SIG=$(printf 't=%s' "$TS" | openssl dgst -sha256 -hmac "$CONDUIT_S2S_SECRET" -hex | awk '{print $NF}')
curl -sS http://127.0.0.1:8080/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -H "X-Gateway-S2S: t=${TS},v1=${SIG}" \
  -H "Authorization: Bearer $ABNORMAL_API_TOKEN" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

在 AUTH_MODE=gateway 模式下,必须提供 Authorization 标头,且它是唯一的凭据来源。AUTH_MODE=env 仍要求有效的 X-Gateway-S2S 标头;若请求未携带 Authorization,则使用环境变量中的 ABNORMAL_API_TOKEN。

独立运行(env 模式)
export ABNORMAL_API_TOKEN=your-api-token
node dist/index.js
Gateway 模式

部署在 MCP gateway 后时,请设置 AUTH_MODE=gateway。Gateway 会为每个 /mcp 请求签署 X-Gateway-S2S,并注入 Authorization: Bearer {token}。缺少该凭据标头的请求会被拒绝并返回 401。

运行

stdio(用于 Claude Desktop)
npm install
npm run build
node dist/index.js
HTTP Streamable(用于托管式/gateway 部署)

若 CONDUIT_S2S_SECRET 不是有效密钥,HTTP 将拒绝启动:

CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" MCP_TRANSPORT=http AUTH_MODE=gateway node dist/index.js

不配置密钥的本地 HTTP 仅供开发使用。它只绑定到 127.0.0.1,并会记录警告:

MCP_TRANSPORT=http MCP_ALLOW_INSECURE_DEV=1 npm run start:http
Docker

镜像在容器内监听 0.0.0.0(MCP_HTTP_HOST),且默认使用 AUTH_MODE=gateway。请在回环地址上发布端口,并传入 S2S 密钥。在 gateway 模式下,API 令牌会随每个请求通过 Authorization 传入;镜像不会读取 ABNORMAL_API_TOKEN。

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

若未设置 CONDUIT_S2S_SECRET,Compose 将拒绝启动;它会设置 AUTH_MODE=gateway,不会注入 ABNORMAL_API_TOKEN,并发布 127.0.0.1:8080:8080:

CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" docker compose up

单租户 HTTP(AUTH_MODE=env)仍要求配置 S2S 密钥,之后会使用 ABNORMAL_API_TOKEN:

docker run \
  -e CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" \
  -e AUTH_MODE=env \
  -e ABNORMAL_API_TOKEN=your-api-token \
  -p 127.0.0.1:8080:8080 \
  abnormal-mcp

开发

npm install
npm run dev          # watch mode
npm test             # run tests
npm run typecheck    # TypeScript type check
npm run build:ui     # rebuild the MCP Apps card bundle (only needed when ui/ changes)

许可证

Apache-2.0

评论

支持 Markdown

第一次接触 MCP?

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

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