misp-mcp
MCP(模型上下文协议)服务器 mist (恶意软件信息共享平台和威胁情报共享)。使LLM能够执行IOC查找、管理事件、发现相关性,并直接从MISP实例导出威胁情报。
特性
- 36个MCP工具 涵盖事件、属性、相关性、标签、导出、目击、警告列表、对象、星系、提要、组织和服务器管理
- 3 MCP资源 用于浏览属性类型、实例统计信息和可用分类
- 3个MCP提示 用于指导国际奥委会的调查、事件事件创建和威胁报告
- SSL灵活性 用于MISP部署中常见的自签名证书
- 导出格式 包括CSV、STIX、Suricata、Snort、文本、RPZ和哈希列表
- MITRE ATT&CK 集成 通过星系团搜索和附着
- 批量操作 用于在单个调用中将多个IOC添加到事件中
- 关联引擎 通过共享指标发现跨事件关系
先决条件
- Node.js 20或更高版本
- 具有API访问权限的正在运行的MISP实例
- MISP API密钥(从MISP UI生成:管理>列出验证密钥)
安装
git clone https://github.com/solomonneas/misp-mcp.git
cd misp-mcp
npm install
npm run build配置
设置以下环境变量:
export MISP_URL=https://misp.example.com
export MISP_API_KEY=your-api-key-here
export MISP_VERIFY_SSL=true # Set to 'false' for self-signed certificates| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
MISP_URL | 是 | - | MISP实例基URL |
MISP_API_KEY | 是 | - | neneneba API身份验证密钥 |
MISP_VERIFY_SSL | 没有 | true | 设置 false 用于自签名证书 |
MISP_TIMEOUT | 没有 | 30 | 请求超时(秒) |
用法
克劳德桌面版
添加 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)或 %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"misp": {
"command": "misp-mcp",
"env": {
"MISP_URL": "https://misp.example.com",
"MISP_API_KEY": "your-api-key-here",
"MISP_VERIFY_SSL": "false"
}
}
}
}克劳德代码
claude mcp add misp \
--env MISP_URL=https://misp.example.com \
--env MISP_API_KEY=your-api-key-here \
--env MISP_VERIFY_SSL=false \
-- misp-mcp添加 --scope user 使其可从任何目录访问,而不仅仅是当前项目。
开爪
如果你从源代码签出而不是npm安装的二进制文件运行,请指向 command/args 在建成 dist/index.js:
openclaw mcp set misp '{
"command": "node",
"args": ["/absolute/path/to/misp-mcp/dist/index.js"],
"env": {
"MISP_URL": "https://misp.example.com",
"MISP_API_KEY": "your-api-key-here",
"MISP_VERIFY_SSL": "false"
}
}'或者,使用全局npm安装:
openclaw mcp set misp '{
"command": "misp-mcp",
"env": {
"MISP_URL": "https://misp.example.com",
"MISP_API_KEY": "your-api-key-here",
"MISP_VERIFY_SSL": "false"
}
}'然后重新启动OpenClaw网关,以便启动新服务器:
systemctl --user restart openclaw-gateway
openclaw mcp list # confirm "misp" is registered爱马仕代理商
爱马仕代理商 从读取MCP配置 ~/.hermes/config.yaml 在...之下 mcp_servers 钥匙。添加条目:
mcp_servers:
misp:
command: "misp-mcp"
env:
MISP_URL: "https://misp.example.com"
MISP_API_KEY: "your-api-key-here"
MISP_VERIFY_SSL: "false"或者,当从源代码签出而不是全局npm安装运行时:
mcp_servers:
misp:
command: "node"
args: ["/absolute/path/to/misp-mcp/dist/index.js"]
env:
MISP_URL: "https://misp.example.com"
MISP_API_KEY: "your-api-key-here"
MISP_VERIFY_SSL: "false"然后从Hermes会话中重新加载MCP:
/reload-mcpCodex CLI
Codex CLI 通过注册MCP服务器 codex mcp add:
codex mcp add misp \
--env MISP_URL=https://misp.example.com \
--env MISP_API_KEY=your-api-key-here \
--env MISP_VERIFY_SSL=false \
-- misp-mcp或者,从源代码签出运行时:
codex mcp add misp \
--env MISP_URL=https://misp.example.com \
--env MISP_API_KEY=your-api-key-here \
--env MISP_VERIFY_SSL=false \
-- node /absolute/path/to/misp-mcp/dist/index.jsCodex将条目写入 ~/.codex/config.toml 在...之下 [mcp_servers.misp].通过以下方式进行验证:
codex mcp list独立
MISP_URL=https://misp.example.com MISP_API_KEY=your-key node dist/index.js码头工人
docker build -t misp-mcp .
docker run -e MISP_URL=https://misp.example.com -e MISP_API_KEY=your-key -e MISP_VERIFY_SSL=false misp-mcp发展
MISP_URL=https://misp.example.com MISP_API_KEY=your-key npm run dev工具参考
事件工具(6)
| 工具 | 说明 |
|---|---|
misp_search_events | 按IOC值、类型、标签、日期范围、组织搜索事件 |
misp_get_event | 获取完整的事件详细信息,包括属性、对象、星系、相关事件 |
misp_create_event | 创建具有威胁级别、分布和分析状态的新事件 |
misp_update_event | 更新事件元数据(信息、威胁级别、分析、发布状态) |
misp_publish_event | 发布事件以触发对共享合作伙伴的警报 |
misp_tag_event | 在事件中添加或删除标签(TLP、MITRE ATT&CK、自定义) |
属性工具(4)
| 工具 | 说明 |
|---|---|
misp_search_attributes | 使用类型、类别和相关性过滤器在所有事件中搜索IOC |
misp_add_attribute | 将单个IOC添加到事件中 |
misp_add_attributes_bulk | 在一次操作中将多个IOC添加到事件中 |
misp_delete_attribute | 软删除或硬删除属性 |
关联与情报工具(3)
| 工具 | 说明 |
|---|---|
misp_correlate | 使用跨事件相关性查找与值匹配的所有事件和属性 |
misp_get_related_events | 通过共享IOC发现相关事件 |
misp_describe_types | 获取所有可用的属性类型和类别映射 |
标签和分类工具(2)
| 工具 | 说明 |
|---|---|
misp_list_tags | 列出可用标签和使用统计信息 |
misp_search_by_tag | 按标签查找事件或属性 |
导出工具(2)
| 工具 | 说明 |
|---|---|
misp_export_iocs | 以CSV、STIX、Suricata、Snort、文本或RPZ格式导出IOC |
misp_export_hashes | 导出文件哈希值(MD5、SHA1、SHA256)以进行HIDS集成 |
瞄准和警告列表工具(2)
| 工具 | 说明 |
|---|---|
misp_add_sighting | 向国际奥委会报告目击、假阳性或过期情况 |
misp_check_warninglists | 检查某个值是否出现在已知的良性/假阳性列表中 |
对象工具(4)
| 工具 | 说明 |
|---|---|
misp_list_object_templates | 列出可用的MISP对象模板(文件、域ip、电子邮件等) |
misp_get_object_template | 获取具有必需/可选属性的模板详细信息 |
misp_add_object | 将结构化对象(分组属性)添加到事件中 |
misp_delete_object | 从事件中删除对象 |
银河工具(4)
| 工具 | 说明 |
|---|---|
misp_list_galaxies | 列出星系(MITRE ATT&CK、威胁行为者、恶意软件、工具等) |
misp_get_galaxy | 获取所有星系团的详细信息 |
misp_search_galaxy_clusters | 按关键字搜索集群(查找ATT&CK技术、威胁行为者) |
misp_attach_galaxy_cluster | 将集群(ATT&CK技术等)附加到事件或属性 |
进给工具(4)
| 工具 | 说明 |
|---|---|
misp_list_feeds | 列出已配置的威胁情报源 |
misp_toggle_feed | 启用或禁用提要 |
misp_fetch_feed | 触发从提要中获取/拉取 |
misp_cache_feed | 在本地缓存提要数据以进行关联 |
组织工具(2)
| 工具 | 说明 |
|---|---|
misp_list_organisations | 列出本地和远程共享合作伙伴组织 |
misp_get_organisation | 获取组织详细信息 |
服务器和管理工具(3)
| 工具 | 说明 |
|---|---|
misp_server_status | 获取MISP版本、权限和诊断 |
misp_list_sharing_groups | 列出受控分发的共享组 |
misp_delete_event | 删除MISP事件 |
资源
| 资源URI | 描述 |
|---|---|
misp://types | 所有支持的属性类型、类别及其映射 |
misp://statistics | MISP实例统计 |
misp://taxonomies | 可用的分类法(TLP、MITRE ATT&CK等) |
提示
| 提示 | 描述 |
|---|---|
investigate-ioc | 深入的国际奥委会调查:搜索、关联、检查警告列表、总结威胁背景 |
create-incident-event | 根据事件描述和IOC摄入指导事件创建 |
threat-report | 根据MISP数据生成威胁情报报告 |
用法示例
搜索国际奥委会
“在MISP中搜索IP地址203.0.113.50”
用途 misp_search_events 和 misp_search_attributes 查找引用此IP的所有事件和属性。
调查可疑域名
“调查MISP中的evil-domain.com”
触发 investigate-ioc 提示工作流:搜索域、检查相关性、查询警告列表,并提供结构化的威胁评估。
创建事件
“为针对我们财务团队的钓鱼活动创建一个MISP事件。钓鱼电子邮件来自attacker@evil.com并链接到https://evil-login.com/harvest"
用途 misp_create_event 紧随其后 misp_add_attributes_bulk 创建一个完全填充的事件。
出口苏里卡塔规则
“按照Suricata的规定导出过去7天的所有IOC”
用途 misp_export_iocs 格式为“suricata”,最后为“7d”。
检查假阳性
“8.8.8.8是否在任何MISP警告列表中?”
用途 misp_check_warninglists 以验证该值是否是已知的良性指标。
查找MITRE ATT&CK技术
“在MITRE ATT&CK中搜索钓鱼技术”
用途 misp_search_galaxy_clusters 找到相关的ATT&CK技术,然后 misp_attach_galaxy_cluster 将它们与事件联系起来。
添加结构化对象
使用文件名encrypt.exe、SHA256哈希和文件大小向事件1添加文件对象
用途 misp_add_object 使用“文件”模板创建一组结构化的相关属性。
支持的属性类型
| 类型 | 类别 | 示例 |
|---|---|---|
ip-src | 网络活动 | 源IP地址 |
ip-dst | 网络活动 | 目标IP地址 |
domain | 网络活动 | 域名 |
hostname | 网络活动 | 主机名 |
url | 网络活动 | 完整URL |
email-src | 有效载荷交付 | 发件人电子邮件地址 |
md5 | 有效载荷传递 | MD5文件哈希 |
sha1 | 有效载荷传递 | SHA1文件哈希 |
sha256 | 有效载荷传递 | SHA256文件哈希 |
filename | 有效载荷交付 | 文件名 |
使用 misp_describe_types 查看支持的类型和类别的完整列表。
测试
npm test # Unit tests (55 tests, mocked)
npm run test:integration # Integration tests against live MISP (27 tests)
npm run test:watch # Watch mode
npm run lint # Type check集成测试需要 MISP_URL, MISP_API_KEY,并且可选 MISP_VERIFY_SSL=false 环境变量。
项目结构
misp-mcp/
src/
index.ts # MCP server entry point
config.ts # Environment config + validation
client.ts # MISP REST API client
types.ts # MISP API type definitions
resources.ts # MCP resources
prompts.ts # MCP prompts
tools/
events.ts # Event CRUD tools
attributes.ts # Attribute management tools
correlation.ts # Correlation & intelligence tools
tags.ts # Tag and taxonomy tools
exports.ts # Export format tools
sightings.ts # Sighting tools
warninglists.ts # Warninglist checks
objects.ts # Object template & CRUD tools
galaxies.ts # Galaxy & cluster tools (MITRE ATT&CK)
feeds.ts # Feed management tools
organisations.ts # Organisation management tools
servers.ts # Server admin & sharing group tools
tests/
client.test.ts # API client unit tests
tools.test.ts # Tool handler unit tests
integration.test.ts # Live MISP API integration tests
Dockerfile
package.json
tsconfig.json
tsup.config.ts
vitest.config.ts
vitest.integration.config.ts
README.md许可证
麻省理工学院
