返回市场
丰富化-mcp

丰富化-mcp

作者:MSAdministrator2 星标更新:2025-04-30

项目介绍

Enrichment MCP Server

该项目是一个模型上下文协议(MCP)服务器,用于根据提供的可观测数据执行丰富化处理。配置的服务与提供的可观测数据相结合,将决定调用哪些丰富化服务。

此工具提供了一个简单的MCP服务器实现,使用常见的服务(如VirusTotal、Hybrid Analysis等)进行第三方丰富化处理,利用security-cli Python包来执行丰富化操作或与不同服务通信。

MCP Server

enrichment-mcp MCP服务器的实现公开了以下工具

  • lookup-observable - 一个通用端点,检查并路由给定的可观测数据到正确的工具。

支持的服务

当前支持以下服务和可观测类型:

如果您有任何建议或认为应实现其他服务,请创建一个问题或拉取请求!

名称需要API密钥支持IP支持域名支持URL支持电子邮件
VirusTotal
HybridAnalysis
AlienVault
Shodan
Urlscan.io
AbuseIPDB
HaveIBeenPwned

要求

此MCP服务使用security-cli和自定义的config.yaml.example文件来确定支持哪些第三方丰富化服务以供可观测数据查询。

在本地Mac/系统上运行此服务最简单的方法是:

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的操作类型,但在未来可以扩展为诸如扫描查询等其他类型。

在这些高层次操作之下,我们列出了可观测类型,随后是一系列支持该类型的可用服务。目前支持的可观测类型包括:

  • ipaddress - IPv4地址
  • domain - 域名或网络位置
  • url - 完整的URL,包括模式等
  • email - 标准电子邮件地址

我们也支持这些类型,但目前尚未实现:

  • md5 - 文件MD5哈希
  • sha1 - 文件SHA1哈希
  • sha256 - 文件SHA256哈希

每个服务都必须具有名称模板。可以提供apikey字段,但我们建议使用环境变量。

提示模板

每个服务和可观测类型都可以有自己的响应模板。这些模板位于security-clitemplates目录下,并且所有模板都应存在于这里。

每个定义的服务都有一个使用Jinja2模板的提示模板。您可以根据需要修改这些模板,但文件名格式必须保持不变。

这些文件遵循以下文件名模式:

{service.name}.{enrichment.type}.jinja2

确保响应对象在模板本身中具有正确的字段,否则您将收到错误。

下面是一个带有某些错误的丰富化此IP 91.195.240.94提示的示例输出:

{
    "virustotal": "在VirusTotal中查找IP 91.195.240.94时发生错误",
    "alienvault": "服务:alienvault\nIP地址:\n信誉评分:0\n总投票数:",
    "shodan": "服务:shodan\nIP地址:91.195.240.94\n最后分析结果:2025-04-25T21:02:52.644602\n\n标签\n\n\n附加信息包括:\n\n* 纬度:48.13743\n* 经度:11.57549\n* ASN:AS47846\n* 域名:[\"servervps.net\"]",
    "hybridanalysis": "在HybridAnalysis中查找IP 91.195.240.94时发生错误",
    "urlscan": "服务:urlscan\n结果:https://urlscan.io/api/v1/result/01966efe-c8fa-74a4-bfc0-1ed479838e85/\n\n统计\n\n* uniqIPs - 6\n\n* uniqCountries - 2\n\n* dataLength - 432561\n\n* encodedDataLength - 218606\n\n* requests - 14\n\n\n页面\n* 国家 - DE\n* 服务器 - Parking/1.0\n* IP - 91.195.240.94\n* MIME类型 - text/html\n* 标题 - wearab.org\xa0-\xa0关于wearab主题的信息。\n* URL - https://login.wearab.org/\n* TLS有效期天数 - 364\n* TLS年龄天数 - 0\n* TLS有效开始时间 - 2025-04-25T00:00:00.000Z\n* 域名 - login.wearab.org\n* 顶级域名 - wearab.org\n* ISP名称 - SEDO-AS SEDO GmbH, DE\n* ASN - AS47846\n* TLS颁发者 - Encryption Everywhere DV TLS CA - G2\n* 状态 - 200\n",
    "abuseipdb": "服务:abuseripdb\nIP地址:91.195.240.94\n最后分析结果:2025-03-30T14:04:45+00:00\n分数:7\n用途:数据中心/网络托管/传输\n是否为Tor节点:否\n是否被列入白名单:否\nISP:Sedo Domain Parking"
}

MCP Server 使用方法

对于使用预构建服务器,从这里获取说明:https://modelcontextprotocol.io/quickstart/user

  • 下载Claude桌面版
  • 安装uv
curl -LsSf https://astral.sh/uv/install.sh | sh
  • 下载此仓库并添加到Claude桌面版配置中
    • Claude桌面版 > 设置 > 开发者 > 编辑配置

您可以复制提供的.desktop_config.example.json文件

如果您想自己创建,这是Claude桌面版的路径。

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json

在任何文本编辑器中打开配置文件。替换文件内容如下:

{
	"mcpServers": {
		"enrichment-mcp": {
			"命令": "/绝对路径/到/父文件夹/uv",
			"参数": [
				"--directory",
				"/绝对路径/到/克隆的仓库/enrichment-mcp",
				"run",
				"server.py"
			]
		}
    }
}
  1. 重新启动Claude桌面版

现在您应该会在聊天栏看到两个图标,一个锤子图标显示可用的工具,另一个连接图标显示定义的提示和所需的输入。

贡献

欢迎贡献!请随时提交拉取请求。