Token导航 LogoToken导航TokenDH.com
Enrichment MCP Server logo
搜索检索stdio官方级别未说明来源级核验

Enrichment MCP Server

MCP Server

A Model Context Protocol (MCP) server for security data enrichment

工具数

5

提示词数

0

GitHub Stars

0

资源数

0
安全分析PythonClaude开发工具Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

synackpwn

提供方

synackpwn

最后核验

2026/5/18 04:07

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

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

详细介绍

丰富MCP服务器

一种模型上下文协议(MCP)服务器,用于在给定可观察值的情况下执行丰富。配置的服务和提供的可观察到的组合将决定使用哪些富集服务。

该工具提供了一个简单的实现,可以使用通用服务(如VirusTotal、混合分析等)执行第三方富集。

此项目尚未在任何生产环境中使用。

特性

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

  • 可观测查找-一种通用端点,用于检查给定的可观测值并将其路由到正确的工具。
  • lookup ipaddress-对给定的IPv4地址进行扩充。
  • 查找域-对给定的域名进行丰富。
  • 查找url-对给定的url(在某些情况下还有域名)进行丰富。
  • 查找电子邮件-对给定的电子邮件地址进行丰富。
如果您遇到确定的可观察类型的问题,请创建一个问题,或者我可以更新当前实现的正则表达式模式。

支持服务列表

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

如果您有任何建议或认为应该实施另一项服务,请创建问题或拉取请求!
名称需要API密钥支持IP支持域支持URL支持电子邮件
VirusTotal
杂交分析
AlienVault
Shodan没有
Urlscan.io
滥用IPDB
拥有

需求

此MCP服务实现了一个自定义配置文件,用于确定哪些第三方富集服务应用于可观察的查找。

由于目前这纯粹是为了开发/测试,在本地mac/系统上运行它的最简单方法是:

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

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

config.yaml

这个项目提供了一个自定义配置文件,我相信它很容易理解。

首先,复制提供的 config.yaml.示例 配置并删除 .example 在使用此服务之前进行扩展。

在这个配置文件中,有两个主要的数据部分; 服务器丰富.

默认情况下,所有支持的服务都映射到当前实现的丰富操作类型。目前,唯一真正的浓缩动作类型是 lookups 但未来可能会实施其他方案。

上下 lookups 我们有不同的支持富集类型。

也就是说,每个单独的服务都可以有一个名为 apikey 以及该服务的API密钥值,但请考虑不要这样做。

您可以直接在 config.yaml.示例 但首选方法是使用 .env.

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

为了使此服务能够发现这些变量,它们必须采用特定的格式。以下是当前支持的变量列表:

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

服务器配置

这里的设置很少,因为这主要是为了沙盒和测试,但这些设置通常不需要更改或更改,此服务就可以正常工作。

server:
  host: 0.0.0.0 # the host address
  port: 8000 # the port
  debug: false # whether to enable debug logging
  log_level: INFO # the default logging level

丰富配置

我们配置文件中的每一项功能都位于 enrichments 钥匙。此外,我还列出了可以进行的不同类型的充实。这意味着,在当前的实现中,我们只有一个名为 lookups 但在未来,这可以扩展到以下方面 scansqueries 等等

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

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

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

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

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

提示模板

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

每个定义的服务都有一个使用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"
}

用法

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

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

- Claude桌面版>设置>开发人员>编辑配置

这将在以下位置创建一个配置文件:
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

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

设计

在构建这个服务器时,我正在学习星光 紫外线 以及MCP。我确实过度设计了这个,但很有趣。我对这些代码中的一些也有未来的用途,所以我试图在设计时也考虑到这一点(更多内容将在后面介绍)。

此外,我特别转向Jinja2模板,因为这可以更好地管理返回的提示/结果,以及未来的用例。

请提供任何反馈、改进或功能请求;很高兴听到他们所有人。

贡献

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

免责声明

此工具仅用于教育和授权测试目的。

目录标签

目录标签

安全分析PythonClaude开发工具research-and-dataenrichmentmcpsecurity-data数据增强本地部署威胁情报API集成

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

部署方式(deploymentType,部署类型)

remote-capable

工具数量(toolCount,工具数)

5

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiononeremote-capable

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP