MSAdministrator
可用工具 (1 个)
该服务在 MCP 协议中暴露的工具,AI 可按需调用
lookup-observable 1 个参数 需填 1 项
A generic tool which takes any observable and passes it the correct tool.
必填参数:value
服务介绍
丰富化MCP服务器
该项目是一个模型上下文协议(MCP)服务器,用于根据提供的可观察对象执行丰富化。配置的服务与提供的可观察对象的组合将决定调用哪些丰富化服务。
此工具提供了一个简单的MCP服务器实现,使用常见的服务(例如VirusTotal、Hybrid Analysis等)通过security-cli Python包来执行第三方丰富化/与不同服务通信。
MCP服务器
这个enrichment-mcp MCP服务器的实现暴露了以下工具。
- lookup-observable - 一个通用端点,它检查并路由给定的可观察对象到正确的工具。
支持的服务
目前支持以下服务和可观察类型:
如果您有任何建议或认为应实现其他服务,请创建一个问题或拉取请求!
| 名称 | 需要API密钥 | 支持IP | 支持域名 | 支持URL | 支持电子邮件 |
|---|---|---|---|---|---|
| VirusTotal | 是 | 是 | 是 | 是 | 否 |
| HybridAnalysis | 是 | 是 | 是 | 是 | 否 |
| AlienVault | 是 | 是 | 是 | 是 | 否 |
| Shodan | 是 | 是 | 是 | 是 | 否 |
| Urlscan.io | 是 | 是 | 是 | 是 | 否 |
| AbuseIPDB | 是 | 是 | 否 | 否 | 否 |
| HaveIBeenPwned | 是 | 否 | 否 | 否 | 是 |
要求
此MCP服务使用security-cli和自定义的config.yaml.example文件来确定支持哪些第三方丰富化服务进行可观察查询。
在本地mac/系统上运行此服务最简单的方法是:
bash
uv run --env-file .env server.py
这要求您使用提供的模板文件.env.example,并根据您的密钥创建一个新的.env文件。
注意:请查阅security-cli文档以获取关于配置不同服务的信息。
默认设置对于大多数用例来说已经足够。
环境变量
注意:强烈建议在实现此服务时将密钥作为环境变量设置。不要再存储密钥了,傻鹅。
为了让security-cli包能够发现这些变量,它们必须采用特定格式。以下是当前支持的变量列表:
- ENRICHMENT_MCP_VIRUSTOTAL_KEY
- ENRICHMENT_MCP_HYBRIDANALYSIS_KEY
- ENRICHMENT_MCP_ALIENVAULT_KEY
- ENRICHMENT_MCP_SHODAN_KEY
- ENRICHMENT_MCP_URLSCAN_KEY
- ENRICHMENT_MCP_ABUSEIPDB_KEY
- ENRICHMENT_MCP_HIBP_KEY
丰富化配置
每个丰富化服务都在securiy-cli配置文件中定义。此外,我还细分了可以执行的不同类型的丰富化。这意味着,在当前实现中,我们有一个称为enrich的单一动作类型,但在未来这可以扩展为诸如scans或queries等。
在这些高层次的动作之下,我们列出了可观察类型以及支持该类型的服务列表。当前支持的可观察类型包括:
- ipaddress - IPv4地址
- domain - 域名或网络位置
- url - 完整的URL,包括模式等
- email - 标准电子邮件地址
我们也支持这些类型,但目前尚未实现:
- md5 - 文件MD5哈希
- sha1 - 文件SHA1哈希
- sha256 - 文件SHA256哈希每个服务都必须有一个
name和一个template。可以提供apikey字段,但我们建议使用环境变量。
提示模板
每个服务和可观察类型都可以有自己的响应模板。这些模板位于 security-cli 的 templates 目录中,并且所有模板都应存在于该目录中。
每个定义的服务都有一个使用 jinja2 模板的提示模板。您可以根据需要修改这些模板,但文件名格式必须保持不变。
这些文件具有以下文件名模式:
bash
{service.name}.{enrichment.type}.jinja2
确保响应对象在模板本身中具有正确的字段,否则您将收到错误。
下面是一个针对提示 Enrich this IP 91.195.240.94 的示例输出,其中包含一些错误:
python
{
"virustotal": "error occurred looking up ip 91.195.240.94 in virustotal",
"alienvault": "Service: alienvault
IPAddress:
Reputation Score: 0
Total Votes: ",
"shodan": "Service: shodan
IPAddress: 91.195.240.94
Last Analysis Results: 2025-04-25T21:02:52.644602
Tags
Additional information includes:
- Latitude: 48.13743
- Longitude: 11.57549
- ASN: AS47846
- Domains: ["servervps.net"]",
"hybridanalysis": "error occurred looking up ip 91.195.240.94 in hybridanalysis",
"urlscan": "Service: urlscan
Result: https://urlscan.io/api/v1/result/01966efe-c8fa-74a4-bfc0-1ed479838e85/
Stats
-
uniqIPs - 6
-
uniqCountries - 2
-
dataLength - 432561
-
encodedDataLength - 218606
-
requests - 14
Page
- country - DE
- server - Parking/1.0
- ip - 91.195.240.94
- mimeType - text/html
- title - wearab.orgxa0-xa0Informationen zum Thema wearab.
- url - https://login.wearab.org/
- tlsValidDays - 364
- tlsAgeDays - 0
- tlsValidFrom - 2025-04-25T00:00:00.000Z
- domain - login.wearab.org
- apexDomain - wearab.org
- asnname - SEDO-AS SEDO GmbH, DE
- asn - AS47846
- tlsIssuer - Encryption Everywhere DV TLS CA - G2
- status - 200
",
"abuseipdb": "Service: abuseripdb
IPAddress: 91.195.240.94
Last Analysis Result: 2025-03-30T14:04:45+00:00
Score: 7
Usage: Data Center/Web Hosting/Transit
Is Tor: False
Is Whitelisted: False
ISP: Sedo Domain Parking"
}
MCP 服务器使用
对于使用预构建的服务器,请参阅此处的说明:https://modelcontextprotocol.io/quickstart/user
-
下载 Claude for Desktop
-
安装 uv
bash
curl -LsSf https://astral.sh/uv/install.sh | sh -
下载此仓库并将其添加到 Claude for Desktop 配置中
- Claude for Desktop > 设置 > 开发者 > 编辑配置
您可以复制提供的 .desktop_config.example.json 文件
如果您想自己创建它,以下是 Claude Desktop 的路径:
bash
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%Claudeclaude_desktop_config.json
用任何文本编辑器打开配置文件。将文件内容替换为以下内容:
json
{
"mcpServers": {
"enrichment-mcp": {
"command": "/ABSOLUTE/PATH/TO/PARENT/FOLDER/uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/CLONED/REPOSITORY/enrichment-mcp",
"run",
"server.py"
]
}
}
}
- 重新启动 Claude for Desktop
现在您应该在聊天栏中看到两个图标,一个是锤子图标,显示可用的工具;另一个是连接图标,显示定义的提示和所需输入。
贡献
欢迎贡献!请随时提交拉取请求。