丰富 MCP 服务器
该项目是一个模型上下文协议 (MCP) 服务器,用于根据提供的可观察对象执行丰富功能。配置的服务与提供的可观察对象的组合将决定调用哪些丰富服务。
该工具提供了一个简单的 MCP 服务器实现,使用常见服务(例如 VirusTotal、Hybrid Analysis 等)执行第三方丰富功能,利用security-cli python 包执行丰富功能/与不同的服务通信。
MCP 服务器
enrichment-mcp MCP 服务器的此实现公开了以下工具。
lookup-observable - 一个通用端点,用于检查给定的可观察对象并将其路由到正确的工具。
Related MCP server: IR Toolshed MCP Server
支持的服务
目前支持以下服务和可观察类型:
如果您有任何建议或认为应该实施其他服务,请创建问题或拉取请求!
姓名 | 需要 API 密钥 | 支持IP | 支持域名 | 支持 URL | 支持电子邮件 |
VirusTotal | 是的 | 是的 | 是的 | 是的 | 不 |
混合分析 | 是的 | 是的 | 是的 | 是的 | 不 |
AlienVault | 是的 | 是的 | 是的 | 是的 | 不 |
初段 | 是的 | 是的 | 是的 | 是的 | 不 |
Urlscan.io | 是的 | 是的 | 是的 | 是的 | 不 |
滥用IPDB | 是的 | 是的 | 不 | 不 | 不 |
已获得 | 是的 | 不 | 不 | 不 | 是的 |
要求
此 MCP 服务使用security-cli和自定义config.yaml.example文件来确定哪些第三方丰富服务支持可观察查找。
在本地 Mac/系统上运行此程序的最简单方法是:
这要求您使用提供的模板.env.example并创建一个包含您的机密的新.env文件。
注意:有关配置不同服务的信息,请参阅security-cli的文档。默认值足以满足大多数用例。
环境变量
注意:强烈建议在实现此服务时将机密设置为环境变量。别再存储机密了,傻瓜。
为了让security-cli包能够发现这些变量,它们必须采用特定的格式。以下是当前支持的变量列表:
丰富_MCP_VIRUSTOTAL_KEY
富集_MCP_杂交分析_密钥
丰富_MCP_ALIENVAULT_KEY
ENRICHMENT_MCP_SHODAN_KEY
丰富_MCP_URLSCAN_KEY
ENRICHMENT_MCP_ABUSEIPDB_KEY
富集_MCP_HIBP_KEY
丰富配置
每个增强服务都在securiy-cli配置文件中定义。此外,我还列出了可以执行的不同类型的增强操作。这意味着,在当前实现中,我们只有一个名为enrich的操作类型,但未来可以将其扩展到scans或queries等操作。
在这些高级操作下方,我们列出了可观察对象的类型,后面跟着支持该类型的服务列表。当前支持的可观察对象类型包括:
ipaddress - ipv4 地址
域 - 域或 netloc
url - 带有架构等的完全限定 URL。
电子邮件 - 标准电子邮件地址
我们也支持这些类型,但目前尚未实现:
md5 - 文件 MD5 哈希值
sha1 - 文件 SHA1 哈希
sha256 - 文件 SHA256 哈希
每个服务必须有一个name和一个template 。 apikey字段可以提供,但我们建议使用环境变量。
提示模板
每个服务和可观察对象类型都可以拥有自己的响应模板。这些模板位于security-cli templates目录中,所有模板都应位于此处。
每个定义的服务都有一个使用 jinja2 模板的提示模板。您可以根据需要修改这些模板,但文件名的格式必须保持不变。
这些文件具有以下文件名模式。
确保响应对象在模板本身中具有正确的字段,否则您将收到错误。
下面是提示Enrich this IP 91.195.240.94的示例输出,其中混杂了一些错误:
MCP 服务器使用情况
要使用预建服务器,请参阅此处的说明: https://modelcontextprotocol.io/quickstart/user
下载 Claude 桌面版
安装 uv
下载此 repo 并添加到 Claude 桌面配置
Claude 桌面版 > 设置 > 开发者 > 编辑配置
您可以复制提供的.desktop_config.example.json文件
如果您想自己创建,这些是 Claude Desktop 的路径。
在任何文本编辑器中打开配置文件。将文件内容替换为以下内容:
重新启动 Claude 桌面版
您现在应该在聊天栏中看到两个图标,一个锤子图标(显示可用的工具)和一个连接图标(显示定义的提示和所需的输入)。
贡献
欢迎贡献代码!欢迎随时提交 Pull Request。