mcpField
K
Kaidn

Kaidn

本地服务
kaidn.io安全08 周前更新

关于 Kaidn

Kaidn 是通过 Kaidn API 调查欺诈评分和事件的 MCP 服务。它提供判定背后的原始证据、实体信息补充和审核队列,默认只读并设有配额限制。

主要功能

  1. 01依据原始证据解释判定
  2. 02筛选和搜索评分事件
  3. 03按分数整理审核队列
  4. 04调查邮箱、IP 和设备实体
  5. 05可选更新名单和标注结果

适用场景

  1. 01解释某个事件为何被拦截
  2. 02审查待处理的欺诈事件
  3. 03从 IP 或设备追踪关联活动
  4. 04检查邮箱、IP 或电话风险信号

MCP 相关

通过 stdio 或 Streamable HTTP 向 MCP 客户端提供 Kaidn 欺诈评分 API 工具。修改数据的工具需显式启用,配额上限用于限制 API 调用。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"io-kaidn-kaidn": {
"command": "npx",
"args": [
"-y",
"@kaidn/mcp"
],
"env": {
"KAIDN_API_KEY": "<KAIDN_API_KEY>",
"KAIDN_API_URL": "<KAIDN_API_URL>",
"KAIDN_MCP_ALLOW_WRITES": "<KAIDN_MCP_ALLOW_WRITES>",
"KAIDN_MCP_MAX_QUOTA_CALLS": "<KAIDN_MCP_MAX_QUOTA_CALLS>"
}
}
}
}
启动命令npx -y @kaidn/mcp
需要配置的环境变量
KAIDN_API_KEY密钥Your secret Kaidn API key, from https://kaidn.io
KAIDN_API_URLOverride the Kaidn API base URL
KAIDN_MCP_ALLOW_WRITESSet to 1 to register the mutating tools (add_to_list, label_outcome)
KAIDN_MCP_MAX_QUOTA_CALLSCeiling on quota-consuming calls per process

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

安装包
npm@kaidn/mcp0.4.0

工具

10

收录的工具列表 · 更新于 2 周前

参数类型必填说明
emailstring是要检查的电子邮件地址

详细介绍

Kaidn

npm 版本 MCP 注册表 MIT 许可证 文档

Kaidn MCP

面向 Kaidn 欺诈评分 API 的 Model Context Protocol 服务。

用日常语言调查欺诈——“为什么这次注册被拦截了?”、“这个设备还关联过什么?”、“今天早上的审核队列里有什么?”

  • 提供证据,而不只是评分。 每条原因都附带背后的原始数据,让模型能够解释判定,而不是猜测。
  • 默认只读。 除非你主动启用,否则不会对你的租户做任何更改。
  • 配额保护。 Agent 即使陷入循环,也无法在 10 分钟内耗尽你整个月的配额。
  • 支持任何客户端。 MCP 是开放协议——本地使用 stdio,远程和托管 Agent 使用 Streamable HTTP。
要求

Node.js 18 或更高版本,以及从 Kaidn 控制面板 获取的 API 密钥。


开始使用

首先,使用你的客户端安装 Kaidn MCP 服务。标准配置适用于大多数工具:

{
  "mcpServers": {
    "kaidn": {
      "command": "npx",
      "args": ["@kaidn/mcp@latest"],
      "env": { "KAIDN_API_KEY": "your_key" }
    }
  }
}
Claude Code
claude mcp add kaidn --env KAIDN_API_KEY=your_key -- npx @kaidn/mcp@latest
Claude Desktop

将标准配置添加到 claude_desktop_config.json,然后重启 Claude。 “设置 → 开发者 → 编辑配置”会打开该文件。

Cursor

选择“设置 → MCP → 添加新的 MCP 服务”,或将标准配置添加到项目中的 .cursor/mcp.json(或添加到 ~/.cursor/mcp.json,以供所有项目使用)。

VS Code
code --add-mcp '{"name":"kaidn","command":"npx","args":["@kaidn/mcp@latest"],"env":{"KAIDN_API_KEY":"your_key"}}'
Windsurf

将标准配置添加到 ~/.codeium/windsurf/mcp_config.json。

Cline

通过 MCP Servers 图标 → Configure MCP Servers,将标准配置添加到 cline_mcp_settings.json。

Zed

在 settings.json 的 context_servers 下添加,使用与标准配置相同的 command、args 和 env。

其他客户端

任何 MCP 客户端都需要一个 command、args 和 env 区块。使用上面的 标准配置。如果客户端只能通过网络连接服务,而不能启动进程,请参阅 Streamable HTTP。


配置

选项环境变量默认值用途
KAIDN_API_KEY必需您的密钥。仅限通过环境变量设置——绝不能作为标志或工具参数传入。
KAIDN_API_URLhttps://api.kaidn.ioAPI 基础 URL
--allow-writesKAIDN_MCP_ALLOW_WRITES=1关闭注册会修改数据的工具
KAIDN_MCP_MAX_QUOTA_CALLS100每个进程的配额上限
--httpKAIDN_MCP_TRANSPORT=httpstdio提供 Streamable HTTP 服务
--host <addr>KAIDN_MCP_HOST127.0.0.1HTTP 绑定地址
--port <n>KAIDN_MCP_PORT8765HTTP 端口
KAIDN_MCP_HTTP_TOKEN未设置要求 HTTP 请求携带 Authorization: Bearer
--help显示用法
--version显示版本

优先级: CLI 标志优先于环境变量。

API 密钥特意限制为仅通过环境变量设置。将密钥作为标志传入会使其出现在进程列表和 shell 历史记录中。


传输方式

传输方式适用场景端点
stdio (默认)启动子进程的本地客户端—
Streamable HTTP远程 Agent、容器及任何不在本机上的场景POST /mcp

特意不提供 HTTP+SSE:它已在 2025-03-26 规范中弃用,并将于 2026 年 6 月停止支持。

Streamable HTTP
npx @kaidn/mcp@latest --http --port 8765

无状态——每个请求都会启动一个全新的服务,调用方之间不共享任何内容——因此可放心地将其置于负载均衡器之后。GET /health 无需身份验证,便于编排器在不持有令牌的情况下检查服务是否存活。


Docker

docker build -t kaidn-mcp .
# stdio — behaves like the npx invocation
docker run -i --rm -e KAIDN_API_KEY=your_key kaidn-mcp

# HTTP — for remote agents
docker run --rm -p 8765:8765 \
  -e KAIDN_API_KEY=your_key \
  -e KAIDN_MCP_TRANSPORT=http \
  -e KAIDN_MCP_HOST=0.0.0.0 \
  -e KAIDN_MCP_HTTP_TOKEN=your_token \
  kaidn-mcp

采用多阶段构建,以非特权 node 用户运行,并配置了健康检查。


安全

服务会持有您的 API 密钥。 任何能够访问它的人都能消耗您的配额,因此默认设置较为保守,防护措施会在无法确保安全时直接拒绝,而不是仅发出警告。

  • 绑定到 127.0.0.1,除非设置了 KAIDN_MCP_HTTP_TOKEN,否则拒绝在更宽泛的网络接口上启动。 它会停止运行并说明原因,而不会悄悄暴露您的账户。
  • 默认只读。 只有启用 --allow-writes 后,才会提供 add_to_list 和 label_outcome。
  • 任何模式下都不会公开 set_config 和 forget_subject。 前者会静默更改所有未来事件的判定;后者会执行不可逆的 GDPR 数据擦除。两者都应在有人工参与的情况下通过控制面板操作。
  • 每个进程都设有配额上限,每次计费响应都会报告剩余额度。若预留配额会超出上限,请求将被直接拒绝,不会部分扣费。
  • 密钥绝不会跨越工具边界——不会作为参数传递、不会出现在输出中,也不会出现在错误信息里。

工具

每个工具都受两个因素约束:是否消耗配额,以及是否会更改内容。

只读——默认可用
工具费用功能
get_stats免费滚动时间窗口内的判定、评分和原因汇总。从这里开始。
list_events免费按时间从新到旧列出已评分事件;可按判定或类型筛选,也可按指纹或用户 ID 搜索
explain_event免费显示某个事件触发的所有检查及原始证据
triage_queue免费列出所有 review 事件,按评分从高到低排序
get_config免费此租户生效的权重和阈值
investigate_entity1 行¹查询单个实体的补充信息、网络信誉及相关事件
check_email1 行一次性邮箱域名、可投递性、欺诈评分和滥用历史
check_ip1 行代理、VPN、Tor、数据中心 ASN、地理位置和滥用历史
check_phone1 行有效性、线路类型、运营商和欺诈评分
score_event1 行为新事件评分(并记录该事件)

¹ 实体为 device_id 时免费;只有查询邮箱或 IP 时才会产生补充信息费用。

会修改数据——需要 --allow-writes
工具功能
add_to_list将实体添加到允许列表或拦截列表
label_outcome报告已确认的欺诈、拒付或正常结果

使用示例

这些工具旨在串联使用。以下是它们专为实现的工作流。

早间分诊

你: 昨晚发生了什么?有什么需要我处理?

模型会调用 get_stats 查看过去 24 小时的整体情况,然后调用 triage_queue 查看待审核的事件,最后对最严重的一起调用 explain_event。 你会得到一份附有推理依据的排序列表,而不是还需要你自行查看的仪表板。

###“为什么这个客户被拦截了?”

你: 事件 evt_8f21c——一位客户称自己被错误拦截。

explain_event 会返回触发的所有检查及其原始证据,包括匹配到的数据中心 ASN、共用该设备的账户数以及速率计数。信息足以回复客户,也足以判断规则是否有误、是否需要调整。

从一个信号向外调查

你: 194.x.x.x 是个例,还是某个团伙的一部分?

investigate_entity 会返回该 IP 的补充信息和网络信誉,以及其中出现过的所有近期事件。如果同一设备 ID 反复出现,那就是一个团伙,而非巧合。

修改规则前进行检查

你: 如果降低速率权重,哪些内容将不再被拦截?

get_config 会读取当前权重;使用 verdict: "block" 调用 list_events,可以查看当前拦截的事件。模型可以告诉你,其中哪些事件依赖于你即将弱化的检查。


错误处理

失败会以带有易读消息的工具错误形式返回,而非异常,因此模型可以据此采取行动。

你看到的内容含义解决方法
KAIDN_API_KEY is not set服务启动时未提供密钥在客户端的 env 块中设置密钥
Kaidn error: 401 …密钥遭拒轮换密钥,或从仪表板重新复制
Kaidn error: 429 …请求受到速率限制放慢请求速度;每个密钥的限流按分钟计算
Session quota ceiling reached (100/100 …)防护机制停止了一次高开销运行谨慎提高 KAIDN_MCP_MAX_QUOTA_CALLS,或重启
No event <id> in the most recent 200 events事件早于扫描窗口使用 offset 参数调用 list_events 向前翻页
Supply exactly one of email, ip or device_id调查对象不明确每次只调查一个对象
Refusing to bind <host> without authentication非回环 HTTP 未设置令牌设置 KAIDN_MCP_HTTP_TOKEN,或绑定到 127.0.0.1

错误中绝不会包含你的 API 密钥。


故障排除

客户端没有显示任何工具。 检查客户端的 MCP 日志,查找启动行。stderr 中出现 kaidn-mcp: ready (stdio, …),表示服务已启动,问题出在客户端。完全没有任何输出,通常意味着 npx 无法解析该软件包,或 Node 版本低于 18。

服务启动后立即退出。 几乎总是因为缺少 KAIDN_API_KEY。stderr 中会显示相关消息;有些客户端会隐藏 stderr,因此请在终端中运行以查看消息。

add_to_list 和 label_outcome 不可用。 这是预期行为。它们需要 --allow-writes。

set_config 和 forget_subject 不可用。 这也是预期行为,而且在任何模式下都不可用。请参阅 SECURITY.md。

HTTP 模式拒绝启动。 你绑定的地址不是回环地址,且未提供承载令牌。这是防护机制在发挥作用——该进程持有你的 API 密钥。

所有操作都很慢。 补充信息检查会实时调用上游服务。get_stats、list_events、 explain_event 和 triage_queue 均免费且速度快;查看历史记录时请优先使用它们。

独立于客户端检查服务:

node dist/index.js --help                 # no key required
KAIDN_API_KEY=your_key npm start          # should print a ready line

支持


从源代码运行

git clone https://github.com/Kaidn-io/kaidn-mcp.git
cd kaidn-mcp
npm install
npm run build
npm test
claude mcp add kaidn --env KAIDN_API_KEY=your_key -- node /absolute/path/to/kaidn-mcp/dist/index.js

若要检查它能否在没有客户端的情况下启动:

KAIDN_API_KEY=your_key npm start

它会向 stderr 输出 kaidn-mcp: ready (stdio, read-only, quota ceiling 100),然后等待 stdin 输入——这就是 MCP 传输,因此没有输出是正常的。


证据为何重要

Kaidn 的引擎以规则为先,且具有可解释性:每个原因都包含其背后的原始数字。单独的分数无法为模型提供推理依据,而附带证据的 checks[] 则能为它提供解释依据。这正是 explain_event 有用而非徒具形式的区别。

规则做决定。模型来讲述。


项目

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

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

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