可观测数据增强服务器

一个基于Model Context Protocol (MCP)的服务器,用于通过配置的服务对提供的可观测数据进行增强处理,支持多种第三方服务如VirusTotal、Hybrid Analysis等。

  • by MSAdministrator
  • Python
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 MSAdministrator/enrichment-mcp

使用说明

丰富MCP服务器

该项目是一个模型上下文协议(MCP)服务器,用于在给定可观察对象的情况下执行丰富。配置的服务和提供的可观察对象的组合将决定调用哪些富集服务。

该工具提供了一个简单的MCP服务器实现,使用通用服务(如VirusTotal、混合分析等)利用 安全cli python包,用于执行丰富/与不同服务通信。

MCP服务器

本次实施 enrichment-mcp MCP服务器公开了以下内容 工具.

  • 查找可观察性-一种通用端点,用于检查给定的可观察性并将其路由到正确的工具。

支持服务列表

目前支持以下服务和可观察类型:

如果您有任何建议或认为应该实施另一项服务,请创建问题或拉取请求!

名称 需要API密钥 支持IP 支持域 支持URL 支持电子邮件
VirusTotal 是 是 有 有 无
杂交分析 是 是 有 有 无
AlienVault 是 是 有 有 无
Shodan 是 是 有 有 没有
Urlscan.io 是 是 有 有 无
滥用IPDB 是 是 否 否 不
拥有 是 否 否 是

需求

此MCP服务使用 security-cli 以及一种习俗 config.yaml.示例 文件,以确定哪些第三方富集服务支持可观察的查找。

在本地mac/系统上运行此程序的最简单方法是:

uv run --env-file .env server.py

这要求您使用提供的模板 .env.示例 并创建一个新的 .env 把你的秘密归档。

注意:请查看以下文档 安全cli 有关配置不同服务的信息。 默认值足以满足大多数用例。

环境变量

注意:强烈建议在实现此服务时将secrets设置为环境变量。别再储存秘密了,傻瓜。

为了 security-cli 要发现这些变量,它们必须采用特定的格式。以下是当前支持的变量列表:

  • 富集_MCP_病毒密钥
  • 富集_MCP_hybridasis_KEY
  • 富集_MCP_alienvult_KEY
  • 富集_MCP_SHODAN_KEY
  • 富集_MCP_URLSCAN_KEY
  • 富集_MCP_ABUSEIPDB_KEY
  • 富集_MCP_HIBP_KEY

丰富配置

每个浓缩服务都在 securiy-cli 配置文件。此外,我还列出了可以进行的不同类型的充实。这意味着,在当前的实现中,我们有一个名为 enrich 但在未来,这可以扩展到以下方面 scans 或 queries 等等

在这些高级操作下面,我们列出了可观察的类型,后面是支持该类型的服务列表。目前支持的可观察类型有:

  • ipaddress-ipv4地址
  • domain-域或netloc
  • url-具有模式等的完全限定url。
  • email-标准电子邮件地址

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

  • md5-文件md5哈希
  • sha1-文件sha1哈希
  • sha256-sha256哈希文件

每个服务都必须有一个 name 以及a templateThe apikey 可以提供字段,但我们建议使用环境变量。

提示模板

每个服务和可观察类型都可以有自己的响应模板。这些位于 security-cli 模板 目录和所有模板都应该存在于此处。

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

这些文件具有以下文件名模式。

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

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

下面是一个提示的示例输出 Enrich this IP 91.195.240.94 其中混有一些错误:

{
    "virustotal": "error occurred looking up ip 91.195.240.94 in virustotal",
    "alienvault": "Service: alienvault\nIPAddress: \nReputation Score: 0\nTotal Votes: ",
    "shodan": "Service: shodan\nIPAddress: 91.195.240.94\nLast Analysis Results: 2025-04-25T21:02:52.644602\n\nTags\n\n\nAdditional information includes:\n\n* Latitude: 48.13743\n* Longitude: 11.57549\n* ASN: AS47846\n* Domains: ["servervps.net"]",
    "hybridanalysis": "error occurred looking up ip 91.195.240.94 in hybridanalysis",
    "urlscan": "Service: urlscan\nResult: https://urlscan.io/api/v1/result/01966efe-c8fa-74a4-bfc0-1ed479838e85/\n\nStats\n\n* uniqIPs - 6\n\n* uniqCountries - 2\n\n* dataLength - 432561\n\n* encodedDataLength - 218606\n\n* requests - 14\n\n\nPage\n* country - DE\n* server - Parking/1.0\n* ip - 91.195.240.94\n* mimeType - text/html\n* title - wearab.org\xa0-\xa0Informationen zum Thema wearab.\n* url - https://login.wearab.org/\n* tlsValidDays - 364\n* tlsAgeDays - 0\n* tlsValidFrom - 2025-04-25T00:00:00.000Z\n* domain - login.wearab.org\n* apexDomain - wearab.org\n* asnname - SEDO-AS SEDO GmbH, DE\n* asn - AS47846\n* tlsIssuer - Encryption Everywhere DV TLS CA - G2\n* status - 200\n",
    "abuseipdb": "Service: abuseripdb\nIPAddress: 91.195.240.94\nLast Analysis Result: 2025-03-30T14:04:45+00:00\nScore: 7\nUsage: Data Center/Web Hosting/Transit\nIs Tor: False\nIs Whitelisted: False\nISP: Sedo Domain Parking"
}

MCP服务器使用情况

要使用预构建的服务器,请按照以下说明操作:https://modelcontextprotocol.io/quickstart/user

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

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

如果你想自己创建它,这些是Claude Desktop的路径。

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

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

{
	"mcpServers": {
		"enrichment-mcp": {
			"command": "/ABSOLUTE/PATH/TO/PARENT/FOLDER/uv",
			"args": [
				"--directory",
				"/ABSOLUTE/PATH/TO/CLONED/REPOSITORY/enrichment-mcp",
				"run",
				"server.py"
			]
		}
    }
}
  1. 重新启动桌面版的Claude

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

贡献

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