关于 MISP MCP Server
MISP MCP Server 将 MISP 实例中的 IOC 检索功能提供给兼容 MCP 的客户端,支持近期 IOC 汇总、按类型筛选、导出 JSON 和检查连接。
主要功能
- 01获取过去 24 小时新增的 IOC
- 02按类型汇总 IOC 数量
- 03按类型筛选 IOC
- 04将近期 IOC 导出为 JSON
- 05检查 MISP 连接与配置
适用场景
- 01查看近期加入 MISP 的指标
- 02统计近期各类型指标数量
- 03获取 IP、域名、URL 或哈希指标
- 04保存近期指标以供后续使用
MCP 相关
向 MCP 客户端提供检索、汇总、筛选和导出 MISP IOC 的工具,以及服务器信息资源。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MISP MCP 服务
一个简单的 Model Context Protocol(MCP)服务,可向 Claude Desktop 等兼容 MCP 的客户端提供 MISP(Malware Information Sharing Platform)IOC 检索功能。
功能
- 获取近期 IOC:检索过去 24 小时内添加到 MISP 的 IOC
- IOC 摘要:获取统计数据和按 IOC 类型分类的数量
- 按类型筛选:获取按特定类型(IP、域名、URL 等)筛选的 IOC
- 保存到文件:将 IOC 导出到 JSON 文件
- 连接检查:验证 MISP 连接和配置
前置条件
- Python 3.8+
- 可访问的 MISP 实例
- 具有相应权限的 MISP API 密钥
安装
-
克隆或下载项目文件:
git clone <your-repo-url> cd misp-mcp-server -
安装依赖项:
pip install -r requirements.txt -
设置环境变量: 创建包含 MISP 凭据的
.env文件:MISP_URL=https://your-misp-instance.com MISP_API_KEY=your-api-key-here
使用方法
运行 MCP 服务
python misp_mcp_server.py
服务将启动,并通过 STDIO 监听 MCP 连接。
连接到 Claude Desktop
将以下内容添加到 Claude Desktop 的 MCP 配置文件中:
macOS:~/Library/Application Support/Claude/claude_desktop_config.json
Windows:%APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"misp-server": {
"command": "python",
"args": ["/absolute/path/to/misp_mcp_server.py"],
"env": {
"MISP_URL": "https://your-misp-instance.com",
"MISP_API_KEY": "your-api-key-here"
}
}
}
}
使用 MCP Inspector 测试
# Install MCP tools (optional)
pip install mcp
# Run the inspector
mcp-inspector python misp_mcp_server.py
可用工具
get_recent_iocs()
获取过去 24 小时内添加到 MISP 的所有 IOC。
返回:IOC 字典列表,字段包括:value、type、timestamp、category、tags、event
get_ioc_summary()
获取近期 IOC 的汇总统计数据。
返回:包含总数、按类型分类的数量以及示例 IOC 的字典
get_iocs_by_type(ioc_type: str)
按特定类型筛选 IOC。
参数:
ioc_type:要筛选的 IOC 类型(例如,'ip-dst'、'domain'、'url'、'md5'、'sha256')
返回:与指定类型匹配的 IOC 列表
save_iocs_to_file(filename: str = None)
将近期 IOC 保存到 JSON 文件。
参数:
filename:可选的自定义文件名(如果未提供,则自动生成)
返回:包含保存结果的状态字典
check_misp_connection()
验证 MISP 连接和配置。
返回:连接状态和配置信息
可用资源
misp://server-info
获取 MCP 服务的信息,包括可用工具及其说明。
交互示例
连接到 Claude Desktop 后,你可以询问:
- “获取 MISP 中近期 IOC 的摘要”
- “显示过去 24 小时内的所有 IP 地址 IOC”
- “将近期 IOC 保存到名为 'threats_today.json' 的文件中”
- “检查我的 MISP 连接是否正常”
- “近期添加了多少个域名 IOC?”
文件结构
misp-mcp-server/
├── misp_to_json.py # Original MISP IOC retrieval functions
├── misp_mcp_server.py # MCP server implementation
├── requirements.txt # Python dependencies
├── README.md # This file
├── .env # Environment variables (create this)
└── .env.example # Example environment file
配置
环境变量
| 变量 | 描述 | 必需 |
|---|---|---|
MISP_URL | MISP 实例的 URL | 是 |
MISP_API_KEY | MISP API 身份验证密钥 | 是 |
MISP 权限
你的 MISP API 密钥需要具备以下权限:
- 属性读取权限
- 事件访问权限(用于获取上下文)
- 标签查看权限(如果使用标签)
故障排除
常见问题
“未找到 MISP_API_KEY”
- 确保
.env文件与脚本位于同一目录 - 确认 API 密钥格式正确
“连接 MISP 失败”
- 检查
.env文件中的MISP_URL - 确认可从你的网络访问 MISP 实例
- 检查 SSL 证书问题(脚本对本地实例使用
ssl=False)
“未找到 IOC”
- 如果过去 24 小时内没有添加 IOC,这是正常情况
- 检查 MISP 实例近期是否有活动
Pydantic 验证错误
- 确保使用 fastmcp 2.0 或更高版本
- 检查所有函数参数是否都有正确的类型提示
调试模式
在 misp_mcp_server.py 顶部添加以下内容以启用调试日志:
import logging
logging.basicConfig(level=logging.DEBUG)
开发
添加新工具
要添加新的 MCP 工具,请使用 @mcp.tool() 装饰函数:
@mcp.tool()
def your_new_function(param: str) -> dict:
"""Description of what this tool does"""
# Your implementation here
return {"result": "success"}
添加新资源
要添加新的 MCP 资源,请使用 @mcp.resource():
@mcp.resource("misp://your-resource")
def your_resource() -> str:
"""Resource description"""
return "Resource content"
许可证
本项目按原样提供,用于教育和运营用途。处理 IOC 数据时,请确保遵守所在组织的安全策略。
贡献
- Fork 此仓库
- 创建功能分支
- 修改代码
- 使用 MCP inspector 进行测试
- 提交 pull request
支持
如遇到以下相关问题:
- MCP Protocol:请查看 Model Context Protocol 文档
- FastMCP:请访问 FastMCP 文档
- MISP API:请参阅 PyMISP 文档
注意:此服务专为在受信任的 MISP 实例中内部使用而设计。处理威胁情报数据时,请始终遵循所在组织的安全准则。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。