关于 getdr
getdr-mcp 是为 AI Agent 提供 Ahrefs Domain Rating(DR)的开源 MCP 服务,可查询域名或 URL。它通过 getdr 服务或本地 getdr 二进制文件获取数据,本身不向 Ahrefs 发起请求。
主要功能
- 01查询域名或 URL 的 DR
- 02支持 dr3 与 dr4 公式
- 03可通过服务或本地二进制获取数据
- 04提供 JSON 结果与结构化内容
适用场景
- 01让 AI Agent 查询网站域名评级
- 02批量比较多个目标的 DR
- 03绕过缓存重新获取评级
MCP 相关
通过 stdio 向 MCP 客户端提供 get_dr 工具。客户端可配置它使用网络上的 getdr 服务,或调用 PATH 中的 getdr 二进制文件。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
1收录的工具列表 · 更新于 1 天前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| fresh | boolean | 否 | 忽略缓存并重新获取。 |
| targets | array | 是 | 域名或 URL。URL 会简化为主机名,移除 www.,去除重复项;结果顺序与输入顺序一致。 |
| version | enum | 否 | DR 公式:dr3 或 dr4(新版);默认值为 getdr 服务或二进制文件的配置(除非另有设置,否则为 dr3)。不同版本的值不可比较。dr3 | dr4 |
详细介绍
getdr-mcp
getdr-mcp 是由 Index Pages 提供的小型开源 MCP 服务,为 AI Agent 提供一个工具 get_dr:查询域名或 URL 的 Ahrefs Domain Rating(DR)。它是 getdr 的轻量封装——调用 getdr 服务或 getdr 二进制文件,不会自行向 Ahrefs 发起请求。使用 stdio 传输,无运行时依赖。文档:
index-pages.com/getdr。
设置
将它添加到你的 MCP 客户端中(Claude Desktop、Claude Code、Cursor 等使用以下格式):
{
"mcpServers": {
"getdr": {
"command": "npx",
"args": ["-y", "getdr-mcp"]
}
}
}
这会使用 PATH 中的 getdr 二进制文件。若要改用网络中的 getdr 服务:
{
"mcpServers": {
"getdr": {
"command": "npx",
"args": ["-y", "getdr-mcp"],
"env": {
"GETDR_API": "http://lan-host:8080",
"GETDR_SERVE_TOKEN": "s3cret"
}
}
}
}
需要 Node.js 18 或更高版本。
后端
每次调用时按以下顺序检查:
- 已设置
GETDR_API:向该 getdr 服务(getdr serve)发送一次POST $GETDR_API/dr请求;若已设置令牌,则附带Authorization: Bearer $GETDR_SERVE_TOKEN。服务端保存 Ahrefs 密钥和共享缓存,因此此机器两者都不需要。 PATH中有getdr(0.2.0 或更高版本):运行getdr --format json -q [--version V] [--fresh] -f -,并通过 stdin 传入目标;不使用 shell(当目标以#开头时,作为--后的参数传入,否则-f会将其视为注释并跳过)。二进制文件使用自己的配置、缓存和密钥(AHREFS_KEY),或使用其自身的api设置。- 两者都不满足:工具会返回包含设置说明的错误。
使用 go install github.com/index-pages/getdr@latest 或从
Releases 安装二进制文件,然后获取免费的 Ahrefs API 密钥:
index-pages.com/getdr#key。
两个后端返回相同的记录。调用在 120 秒后超时。
代理:HTTP 后端使用 Node 内置的 fetch,除非设置 NODE_USE_ENV_PROXY=1,否则会忽略 HTTP_PROXY/HTTPS_PROXY(需要 Node 22.21 或更高版本,或 24 及更高版本;旧版本不支持内置代理)。二进制后端会按常规方式遵循 HTTP_PROXY、HTTPS_PROXY 和 NO_PROXY。
工具
get_dr – “通过 Index Pages 的 getdr 查询域名或 URL 的 Ahrefs Domain Rating(0–100)”。
| 参数 | 类型 | |
|---|---|---|
targets | string[] | 必填,不能为空;域名或 URL |
version | "dr3" 或 "dr4" | DR 公式;若省略,则由后端配置决定:设置了 GETDR_API 时使用 getdr 服务的配置,否则使用二进制文件的配置(即使该二进制文件使用服务也如此),未另行设置时为 dr3;不同版本的值不可比较 |
fresh | boolean | 忽略缓存并重新获取 |
目标由 getdr 规范化:URL 会转换为其主机名,移除 www.,全部转为小写,并移除重复项。结果顺序与输入顺序一致。
输出
文本结果是一个 JSON 数组,每个目标对应一条记录,仅此而已:
[
{"target":"ahrefs.com","dr":91,"version":"dr3","checked_at":"2026-10-28T12:00:00Z","cached":true},
{"target":"nodata.example","dr":null,"version":"dr3","checked_at":"2026-10-28T12:00:00Z","cached":false}
]
记录遵循 getdr JSON 契约,与 getdr --format json 和 getdr serve 相同。若 Ahrefs 没有数据,dr 为 null;若没有收到响应或目标无效,checked_at 也为 null。无效目标(不是域名或 URL,或被 Ahrefs 拒绝,例如 localhost)还会包含 "error":"invalid target";其他记录均不包含 error 键。使用 MCP 协议 2025-06-18 或更高版本的客户端还会收到 structuredContent——{"results": […]}——以及对应的 outputSchema。
无效目标和未收到响应的目标属于正常结果。发生故障时,工具会返回工具错误(isError: true)并附上 getdr 的错误消息:
- 所有目标均未收到响应;
- getdr 服务返回 401——令牌缺失或错误,请设置
GETDR_SERVE_TOKEN; - getdr 服务返回 503,或二进制文件以代码 3 退出——Ahrefs 密钥缺失或被拒绝;
- 服务不可达、二进制文件运行失败,或调用超时。
支持的 MCP 协议版本:2026-07-28(无状态:server/discover 和每个请求的 _meta,无需握手),以及基于 initialize 的 2025-11-25、2025-06-18、2025-03-26 和 2024-11-05;这些版本并行提供。
归属声明
Domain Rating 数据来自 Ahrefs,并受 Domain Rating License 约束。该许可要求你在发布这些数字时注明“Domain Rating by Ahrefs”。工具结果仅包含数据,不包含归属声明。
getdr 与 Ahrefs 没有任何关联。
无遥测
getdr-mcp 只会连接一个位置:当你设置 GETDR_API 时连接 getdr 服务;否则,它只会启动 getdr 二进制文件。不会进行遥测、更新检查、分析或 ping。请求会携带 User-Agent getdr-mcp/<version> (+https://index-pages.com/getdr)。你可以在源代码中验证这一点:唯一的外发请求和唯一的子进程都位于 src/backends.ts 中。
开发
npm ci
npm run build
npm test
后端测试会从 getdr 源代码树(../bin 或 GETDR_SRC)构建 getdr 及其由模拟服务端支持的服务器,并且需要 Go;如果没有 Go,这些测试会跳过。只有设置了 AHREFS_KEY,才会运行在线检查。
发布
在 package.json、server.json(两处)和 src/version.ts 中更新版本号,更新 CHANGELOG.md,然后推送标签 vX.Y.Z。.github/workflows/release.yml 会构建项目、针对同一标签的 getdr 源代码运行测试、检查所有版本号是否与标签一致,以及打包的 tarball 是否包含带 shebang 的 dist/index.js,并通过 npm 可信发布(OIDC,无令牌,包含来源证明)进行发布。
可信发布只能为 npm 上已存在的软件包配置,因此首次发布需要手动进行一次:运行 npm login,然后运行 npm run release。紧接着,在 npmjs.com 上添加可信发布者(软件包设置 → 可信发布:GitHub Actions,index-pages / getdr-mcp,工作流 release.yml);该工作流必须在 2 天内完成首次发布,否则配置会过期。
手动发布时,请使用 npm run release(构建、测试、check-release、npm publish),切勿直接运行 npm publish:禁用安装脚本(ignore-scripts)时,prepack 不会运行,软件包发布时就会缺少 dist/。对于会运行脚本的环境,prepack 仍会作为备用方案保留。
之后,同一工作流还会将 server.json 以 io.github.index-pages/getdr-mcp 的名称发布到 MCP Registry:它会等待 npm 显示新版本(注册表会检查 npm 软件包中的 mcpName),使用工作流的 OIDC 令牌证明 index-pages 命名空间(mcp-publisher login github-oidc,无需密钥),并运行经过固定版本和校验和验证的 mcp-publisher 来执行 mcp-publisher publish。如果某个版本已存在于注册表中,则会跳过发布。
许可证
MIT,详见 LICENSE。由 Index Pages 制作。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。