使用说明
MISP MCP服务器
一个简单的模型上下文协议(MCP)服务器,向兼容MCP的客户端(如Claude Desktop)公开MISP(恶意软件信息共享平台)IOC检索功能。
特性
- 获取最近的IOC:检索过去24小时内添加到MISP的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 -
设置环境变量: 创建一个
.env使用您的MISP凭据文件:MISP_URL=https://your-misp-instance.com MISP_API_KEY=your-api-key-here
用法
运行MCP服务器
python misp_mcp_server.py
服务器将启动并通过STDIO监听MCP连接。
连接到克劳德桌面
将以下内容添加到您的Claude Desktop MCP配置文件中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
视窗: %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检验员测试
# Install MCP tools (optional)
pip install mcp
# Run the inspector
mcp-inspector python misp_mcp_server.py
可用工具
get_recent_iocs()
获取过去24小时内从MISP添加的所有IOC。
退货:带字段的IOC字典列表:值、类型、时间戳、类别、标签、事件
get_ioc_summary()
获取最近国际奥委会的汇总统计数据。
退货:包含总计数、按类型计数和IOC样本的词典
get_iocs_by_type(ioc_type: str)
按特定类型过滤IOC。
参数:
ioc_type:要过滤的IOC类型(例如,“ip dst”、“域”、“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失败”
- 检查你的
MISP_URL在.env文件 - 验证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数据时,确保遵守贵组织的安全策略。
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 与MCP检查员一起测试
- 提交拉取请求
支持
关于以下问题:
备注:此服务器专为内部使用受信任的MISP实例而设计。在处理威胁情报数据时,始终遵循贵组织的安全准则。