DNS英特尔MCP服务器
域智能MCP服务器,提供RDAP查找、DNS查询和证书透明度日志搜索。
特性
- RDAP查找:查询域注册信息(注册商、日期、名称服务器、状态)
- dns查询:对A、AAAA、CNAME、TXT、MX、NS和SOA记录执行DNS查询
- CT搜索:在证书透明度日志中搜索为域颁发的证书
安装
npm install
npm run build用法
作为MCP服务器(stdio)
# Start the server
npm start
# Or with custom configuration
DNS_RESOLVER=1.1.1.1 npm start使用Claude桌面版
添加到您的Claude Desktop配置(~/.config/claude/claude_desktop_config.json):
{
"mcpServers": {
"dns-intel": {
"command": "node",
"args": ["/path/to/dns-intel/dist/cli.js"]
}
}
}使用HTTP健康检查
对于容器化部署,启用HTTP健康检查服务器:
npm start -- --http这暴露了:
GET /health-健康检查端点GET /ready-准备就绪探针
工具
rdap查找
查询RDAP以获取域注册信息。
输入:
{
"domain": "example.com"
}输出:
{
"ok": true,
"data": {
"domain": "example.com",
"registrar": "Example Registrar Inc.",
"creation_date": "1995-08-14T04:00:00Z",
"expiration_date": "2025-08-13T04:00:00Z",
"updated_date": "2024-08-14T07:01:34Z",
"status": ["clientDeleteProhibited", "clientTransferProhibited"],
"nameservers": ["a.iana-servers.net", "b.iana-servers.net"]
},
"meta": {
"source": "rdap-bootstrap.iana.org",
"retrieved_at": "2024-01-15T10:30:00Z"
}
}dns_query
对各种记录类型执行DNS查询。
输入:
{
"name": "example.com",
"type": "MX",
"resolver": "8.8.8.8"
}输出:
{
"ok": true,
"data": {
"name": "example.com",
"type": "MX",
"resolver": "8.8.8.8",
"records": [
{
"name": "example.com",
"type": "MX",
"ttl": 300,
"data": {
"priority": 10,
"exchange": "mail.example.com"
}
}
]
},
"meta": {
"source": "https://dns.google/resolve",
"retrieved_at": "2024-01-15T10:30:00Z"
}
}支持的记录类型:
A-IPv4地址AAAA-IPv6地址CNAME-规范名称TXT-文本记录MX-邮件交换NS-名称服务器SOA-开始授权
ct_search
在证书透明度日志中搜索证书。
输入:
{
"domain": "example.com",
"limit": 100,
"cursor": null
}输出:
{
"ok": true,
"data": {
"domain": "example.com",
"certificates": [
{
"id": 12345678,
"issuer_ca_id": 16418,
"issuer_name": "C=US, O=Let's Encrypt, CN=R3",
"common_name": "*.example.com",
"name_value": "example.com\n*.example.com",
"not_before": "2024-01-01T00:00:00",
"not_after": "2024-04-01T00:00:00",
"serial_number": "abc123...",
"entry_timestamp": "2024-01-01T00:00:01"
}
],
"total_returned": 1
},
"meta": {
"source": "crt.sh",
"retrieved_at": "2024-01-15T10:30:00Z",
"pagination": {
"next_cursor": "eyJvZmZzZXQiOjEwMH0="
}
}
}配置
环境变量:
| 变量 | 默认值 | 描述 |
|---|---|---|
DNS_RESOLVER | 8.8.8.8 | 查询的默认DNS解析器 |
REQUEST_TIMEOUT_MS | 10000 | 请求超时(毫秒) |
HTTP_PORT | 3000 | 用于健康检查的HTTP服务器端口 |
LOG_LEVEL | info | 日志级别(调试、信息、警告、错误) |
响应格式
所有工具都返回一个标准的响应信封:
成功响应
{
"ok": true,
"data": { ... },
"meta": {
"source": "...",
"retrieved_at": "2024-01-15T10:30:00Z",
"pagination": { "next_cursor": null },
"warnings": []
}
}错误响应
{
"ok": false,
"error": {
"code": "UPSTREAM_ERROR",
"message": "Human readable error message",
"details": { ... }
},
"meta": {
"retrieved_at": "2024-01-15T10:30:00Z"
}
}错误代码:
INVALID_INPUT-输入参数无效UPSTREAM_ERROR-上游服务出错RATE_LIMITED-超出费率限制TIMEOUT-请求超时PARSE_ERROR-解析响应失败INTERNAL_ERROR-内部服务器错误
发展
# Install dependencies
npm install
# Run in development mode
npm run dev
# Run tests
npm test
# Run tests with coverage
npm run test:coverage
# Type check
npm run typecheck
# Build
npm run build许可证
麻省理工学院
