mcpField
G
getdr

getdr

本地服务
index-pages.com商业与营销01 天前更新

关于 getdr

getdr-mcp 是为 AI Agent 提供 Ahrefs Domain Rating(DR)的开源 MCP 服务,可查询域名或 URL。它通过 getdr 服务或本地 getdr 二进制文件获取数据,本身不向 Ahrefs 发起请求。

主要功能

  1. 01查询域名或 URL 的 DR
  2. 02支持 dr3 与 dr4 公式
  3. 03可通过服务或本地二进制获取数据
  4. 04提供 JSON 结果与结构化内容

适用场景

  1. 01让 AI Agent 查询网站域名评级
  2. 02批量比较多个目标的 DR
  3. 03绕过缓存重新获取评级

MCP 相关

通过 stdio 向 MCP 客户端提供 get_dr 工具。客户端可配置它使用网络上的 getdr 服务,或调用 PATH 中的 getdr 二进制文件。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"index-pages-getdr": {
"command": "npx",
"args": [
"-y",
"getdr-mcp"
],
"env": {
"GETDR_API": "<GETDR_API>",
"GETDR_SERVE_TOKEN": "<GETDR_SERVE_TOKEN>"
}
}
}
}
启动命令npx -y getdr-mcp
需要配置的环境变量
GETDR_APIURL of a getdr server (getdr serve). When unset, the getdr binary on PATH is used.
GETDR_SERVE_TOKEN密钥Bearer token for the getdr server, if it requires one.

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

安装包
npmgetdr-mcp0.2.0

工具

1

收录的工具列表 · 更新于 1 天前

参数类型必填说明
freshboolean否忽略缓存并重新获取。
targetsarray是域名或 URL。URL 会简化为主机名,移除 www.,去除重复项;结果顺序与输入顺序一致。
versionenum否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 或更高版本。

后端

每次调用时按以下顺序检查:

  1. 已设置 GETDR_API:向该 getdr 服务(getdr serve)发送一次 POST $GETDR_API/dr 请求;若已设置令牌,则附带 Authorization: Bearer $GETDR_SERVE_TOKEN。服务端保存 Ahrefs 密钥和共享缓存,因此此机器两者都不需要。
  2. PATH 中有 getdr(0.2.0 或更高版本):运行 getdr --format json -q [--version V] [--fresh] -f -,并通过 stdin 传入目标;不使用 shell(当目标以 # 开头时,作为 -- 后的参数传入,否则 -f 会将其视为注释并跳过)。二进制文件使用自己的配置、缓存和密钥(AHREFS_KEY),或使用其自身的 api 设置。
  3. 两者都不满足:工具会返回包含设置说明的错误。

使用 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)”。

参数类型
targetsstring[]必填,不能为空;域名或 URL
version"dr3" 或 "dr4"DR 公式;若省略,则由后端配置决定:设置了 GETDR_API 时使用 getdr 服务的配置,否则使用二进制文件的配置(即使该二进制文件使用服务也如此),未另行设置时为 dr3;不同版本的值不可比较
freshboolean忽略缓存并重新获取

目标由 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 制作。

评论

支持 Markdown

第一次接触 MCP?

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

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