DNS查询服务器

一个基于TypeScript的DNS查询服务器,提供全面的DNS查询功能,支持多种记录类型、批量查询和DNS追踪。

  • by cenemil
  • TypeScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 cenemil/dns-mcp-server

使用说明

@cenemiljezweb/dns mcp服务器

基于TypeScript的模型上下文协议(MCP)服务器,为AI助手提供全面的DNS查找功能。

安装

NPM全局安装

npm install -g @cenemiljezweb/dns-mcp-server

NPX(无需安装)

npx @cenemiljezweb/dns-mcp-server

特性

  • 多种DNS记录类型:支持A、AAAA、CNAME、MX、TXT、NS、SOA、PTR、SRV和CAA记录
  • 反向DNS查找:将IP地址转换回主机名
  • 批量查询:并行或顺序执行多个DNS查找
  • DNS跟踪:跟踪从根服务器到最终结果的DNS解析路径
  • 可配置DNS服务器:使用自定义DNS服务器(谷歌、Cloudflare或您自己的)
  • 日志记录:具有可配置级别的全面日志记录
  • 错误处理:具有详细错误消息的稳健错误处理

快速开始

与Claude Desktop一起使用

添加到您的Claude Desktop配置(~/Library/Application Support/Claude/claude_desktop_config.json 在 macOS 上:

{
  "mcpServers": {
    "dns-server": {
      "command": "npx",
      "args": ["@cenemiljezweb/dns-mcp-server"],
      "env": {}
    }
  }
}

或者,如果全局安装:

{
  "mcpServers": {
    "dns-server": {
      "command": "mcp-dns-server",
      "args": [],
      "env": {}
    }
  }
}

配置

服务器可以使用配置 dns-config.json 工作目录中的文件:

{
  "dns": {
    "servers": ["8.8.8.8", "8.8.4.4", "1.1.1.1", "1.0.0.1"],
    "timeout": 5000,
    "retries": 2,
    "useTCP": false
  },
  "cache": {
    "enabled": true,
    "ttl": 300,
    "maxSize": 1000
  },
  "logging": {
    "level": "info",
    "file": "dns-server.log"
  }
}

MCP工具可用

1.dns_lookup

对域执行DNS查找以检索各种记录类型。

参数:

  • domain (必填):要查找的域名
  • recordType:DNS记录类型(A、AAAA、CNAME、MX、TXT、NS、SOA、PTR、SRV、CAA)
  • useCustomServer:如果已配置,请使用自定义DNS服务器
  • timeout:查询超时(毫秒)

例子:

{
  "domain": "example.com",
  "recordType": "A"
}

2.反向_ dns

执行反向DNS查找以查找IP地址的主机名。

参数:

  • ipAddress (必填):用于执行反向查找的IP地址
  • timeout:查询超时(毫秒)

例子:

{
  "ipAddress": "8.8.8.8"
}

3.批次

在一次操作中执行多个DNS查找。

参数:

  • queries (必需):要执行的DNS查询数组
    • domain:域名
    • recordTypes:要查询的记录类型数组
  • parallel:并行执行查询(默认值:true)
  • timeout:每个请求的查询超时

例子:

{
  "queries": [
    {"domain": "example.com", "recordTypes": ["A", "MX"]},
    {"domain": "google.com", "recordTypes": ["A", "AAAA"]}
  ],
  "parallel": true
}

4.dns_trace

跟踪从根服务器到最终结果的DNS解析路径。

参数:

  • domain (必填):跟踪DNS解析路径的域
  • recordType:要跟踪的记录类型(默认值:A)

例子:

{
  "domain": "example.com",
  "recordType": "A"
}

发展

地方发展

# Clone the repository
git clone https://github.com/yourusername/mcp-dns-server.git
cd mcp-dns-server

# Install dependencies
npm install

# Run in development mode
npm run dev

# Build the project
npm run build

# Run tests
npm test

脚本

  • npm run build -将TypeScript编译为JavaScript
  • npm run dev -以热重载的开发模式运行
  • npm start -运行已编译的服务器
  • npm test -运行单元测试
  • npm run lint -运行ESLint
  • npm run typecheck -运行TypeScript类型检查

贡献

欢迎投稿!请随时提交拉取请求。

许可证

麻省理工学院

作者

MCP DNS服务器贡献者

支持

有关问题和功能请求,请访问 GitHub存储库.