mcp-greynoise
mcp-greynoise
用于 GreyNoise API 的 MCP 服务器 — 检查 IP 地址是互联网背景噪音还是潜在的有针对性的攻击。
快速开始
npx mcp-greynoise就这样。开箱即用,每天可查询 10 次(无需 API 密钥)。
Related MCP server: Yunaq GAC MCP Server
什么是 GreyNoise?
GreyNoise 收集并分析互联网范围的扫描流量。它能告诉你:
噪音:这个 IP 是否在大量扫描互联网?(僵尸网络、研究人员、爬虫)
RIOT:这个 IP 是否是已知的良性服务?(Google、Cloudflare、Microsoft 等)
分类:恶意、良性或未知
这对安全的重要性
当你在日志中看到可疑流量时:
GreyNoise 结果 | 解释 |
噪音 + 恶意 | 背景攻击流量(扫描器、僵尸网络)— 很可能不是针对你的 |
噪音 + 良性 | 安全研究人员、搜索引擎爬虫 — 通常安全 |
RIOT | 已知的良好服务(CDN、DNS、云)— 几乎肯定是良性的 |
非噪音 | ⚠️ 这个 IP 不是大量扫描的 — 流量可能是 针对你的 |
“非噪音”的情况通常最重要 — 它表明有人对你的系统特别感兴趣。
演示
check_ip 的输出示例:
IP: 51.91.185.74
Classification: MALICIOUS
Noise: YES - This IP has been observed scanning the internet
RIOT: NO - Not a known benign service IP
Last Seen: 2024-01-15
Details: https://viz.greynoise.io/ip/51.91.185.74
--- Interpretation ---
🚨 This IP is actively scanning the internet and classified as MALICIOUS.
Likely a scanner, botnet, or threat actor.安装
npm(推荐)
npm install -g mcp-greynoisenpx(无需安装)
npx mcp-greynoise从源码安装
git clone https://github.com/nickjlucker/mcp-greynoise.git
cd mcp-greynoise
npm install
npm run build
node build/index.js配置
Claude Desktop
添加到你的 claude_desktop_config.json 文件中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"greynoise": {
"command": "npx",
"args": ["mcp-greynoise"],
"env": {
"GREYNOISE_API_KEY": "your-api-key-here"
}
}
}
}环境变量
变量 | 必填 | 描述 |
| 否 | 用于更高速率限制的 API 密钥(每天 50 次 vs 10 次) |
在 viz.greynoise.io/signup 获取免费 API 密钥。
⚠️ 切勿提交 API 密钥。 请参阅
.env.example了解推荐设置。
工具
check_ip
检查单个 IP 地址与 GreyNoise 的关系。
输入:
ip(字符串):要检查的 IPv4 地址
check_ips
在一次调用中检查多个 IP 地址(最多 10 个)。
输入:
ips(字符串数组):IPv4 地址数组
输出示例:
=== Results ===
8.8.8.8: RIOT (benign service) [Google]
51.91.185.74: NOISE - MALICIOUS
192.168.1.1: NOT NOISE (potentially targeted)
--- Legend ---
RIOT: Known benign service (CDN, DNS, etc.)
NOISE: IP is mass-scanning the internet
NOT NOISE: IP is NOT mass-scanning (traffic may be targeted)资源
greynoise://status
返回 API 状态和速率限制信息。
速率限制
层级 | 每日查询次数 |
未认证 | 10 |
免费账户 | 50 |
付费计划 | 更高 |
速率限制在 API 调用和 GreyNoise Visualizer 之间共享。
安全
此服务器:
仅从 GreyNoise API 读取数据(无扫描、无漏洞利用)
不存储 当前请求之外的任何数据
不传输 你的 API 密钥到除 GreyNoise 之外的任何地方
仅执行 声誉/遥测富集
你的 API 密钥通过环境变量传递,且永远不会被记录。
用例
SOC 分类:快速判断告警 IP 是背景噪音还是针对性的
事件响应:识别攻击者 IP 是批量扫描器还是针对性的威胁
威胁狩猎:在日志中找到非批量扫描的 IP(可能具有针对性)
日志分析:通过过滤已知扫描器减少误报
开发
# Install dependencies
npm install
# Run in development mode
npm run dev
# Build for production
npm run build
# Run built version
npm start许可证
MIT
链接
Available Tools
2 toolscheck_ipA
Check if an IP address is internet background noise or potentially targeted activity. GreyNoise tracks IPs that mass-scan the internet. If an IP is 'noise', traffic from it is likely untargeted scanning. If it's NOT noise, traffic may be targeted at you specifically. RIOT dataset contains known-good IPs (CDNs, DNS servers, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | IPv4 address to check (e.g., 8.8.8.8) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. It explains the two classification outcomes (noise vs. targeted, and RIOT good IPs) but does not specify the actual output format, fields, or error behavior. The conceptual outline is helpful but lacks concrete details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with four sentences, front-loading the core purpose. Every sentence adds value: it defines the action, explains the background, and clarifies interpretation. No redundant or irrelevant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple lookup tool, the description covers the reasoning behind the classification, but it lacks explicit mention of the return format or fields. The existence of a sibling ('check_ips') suggests batch capability is not clarified, which could confuse an agent. The description is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one parameter with 100% schema description coverage (example provided). The tool description adds conceptual context about what the IP is checked against, but does not add new constraints or semantic details beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks if an IP is internet background noise or potentially targeted activity, using GreyNoise and RIOT datasets. It provides a specific verb and resource. However, it does not explicitly differentiate from the sibling tool 'check_ips', which likely handles multiple IPs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the context (security analysis, noise vs. targeted) but does not provide explicit guidance on when to use this tool over 'check_ips' or any exclusion criteria. The use case is implied but not directly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_ipsA
Check multiple IP addresses against GreyNoise in one call. Useful for triaging a list of suspicious IPs from logs or alerts. Rate limits apply (50/day for free tier).
| Name | Required | Description | Default |
|---|---|---|---|
| ips | Yes | Array of IPv4 addresses to check (max 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses rate limits (50/day for free tier) and the batch nature, but does not mention idempotency, error behavior, or whether the tool is read-only. This leaves gaps in the agent's understanding of side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, each earning its place: the first states the action and target, the second provides a use case and a critical constraint (rate limits). No redundancy or excess.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 1 parameter with full schema coverage, but no output schema. The description does not explain what the tool returns (e.g., risk scores, noise classification), which is essential for an agent to interpret results. It also lacks authentication requirements or explicit differentiation from 'check_ip', leaving the agent slightly under-informed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no new information about the 'ips' parameter beyond what the schema already provides (array of strings, max 10, min 1). It does not clarify IP format or validation rules.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Check' and the resource 'multiple IP addresses against GreyNoise'. It also distinguishes itself from the sibling tool 'check_ip' by emphasizing batch capability ('in one call'), leaving no ambiguity about its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: 'useful for triaging a list of suspicious IPs from logs or alerts.' It also mentions rate limits. While it does not explicitly contrast with 'check_ip' or state when not to use it, the use case is well-defined and implicitly differentiates from a single-IP check.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
v0.1.0- First observed
check_ip - First observed
check_ips
TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: one checks a single IP address, the other checks multiple IPs in bulk. An agent can easily distinguish between them based on the singular/plural naming and the explicit descriptions.
Both tools follow the consistent pattern of 'check_' followed by a noun indicating the input type ('ip' vs 'ips'). The naming is predictable and uses consistent snake_case throughout.
With only two tools, the server feels minimal for its domain. While both tools are necessary and well-scoped, a more comprehensive IP intelligence server would typically benefit from additional tools (e.g., contextual enrichment, history). The count is borderline thin.
The tool set covers the basic use case of checking IPs against GreyNoise data, both individually and in bulk. However, it lacks other common operations like fetching detailed threat context, searching by tags or queries, or retrieving known-good RIOT entries specifically. Notable gaps exist for a more complete threat intelligence surface.
Maintenance
Related MCP Connectors
GreyNoise Community MCP — internet scanner classification (free tier with key)
Free no-key IP intelligence: geolocation, VPN detection, DNS, WHOIS, blacklists, breach checks
Resolves IP autonomous system numbers (ASN) and geographic coordinates.
Enrich and search people and companies, resolve identities, and enrich IP addresses.
Related MCP Servers
- AlicenseAqualityDmaintenanceProvides threat intelligence lookups against the AbuseIPDB database, enabling IP reputation checks, CIDR block analysis, and log enrichment. It features intelligent caching and rate limiting to efficiently manage API usage for security analysis and automated workflows.5MIT
- AlicenseNot gradedqualityDmaintenanceProvides comprehensive IP and domain security intelligence, enabling analysis of IP addresses and domains for threat and reputation information.MIT
- AlicenseAqualityBmaintenanceMCP server for GreyNoise threat intelligence, enabling IP analysis, GNQL queries, tag and vulnerability lookups, and session/pcap retrieval via natural language.48328 npm6MIT
- AlicenseNot gradedqualityBmaintenanceEnables classification of internet scanners using GreyNoise data, helping identify benign or malicious scans through the free community tier.1 npmMIT