solomonneas/misp-mcp
GitHub: solomonneas/misp-mcp
为 MISP 威胁情报平台提供 MCP 服务器,使 LLM 能够直接通过自然语言查询 IOC、管理事件、执行关联分析并导出威胁情报。
Stars: 0 | Forks: 0
# misp-mcp
[](https://www.typescriptlang.org/)
[](https://nodejs.org/)
[](https://modelcontextprotocol.io/)
[](LICENSE)
一个用于 [MISP](https://www.misp-project.org/) (Malware Information Sharing Platform & Threat Intelligence Sharing) 的 MCP (Model Context Protocol) 服务器。使 LLM 能够直接从您的 MISP 实例执行 IOC 查询、管理事件、发现关联性以及导出威胁情报。
## 功能特性
- **36 个 MCP 工具**,涵盖事件、属性、关联、标签、导出、目击、警告列表、对象、星系、订阅源、组织以及服务器管理
- **3 个 MCP 资源**,用于浏览属性类型、实例统计数据和可用的分类法
- **3 个 MCP 提示词**,用于指导 IOC 调查、突发事件创建和威胁报告
- **SSL 灵活性**,适应 MISP 部署中常见的自签名证书
- **导出格式**,包括 CSV、STIX、Suricata、Snort、text、RPZ 和哈希列表
- **MITRE ATT&CK 集成**,通过星系集群搜索和附加实现
- **批量操作**,可在单次调用中向事件添加多个 IOC
- **关联引擎**,通过共享指标发现跨事件关系
## 前置条件
- Node.js 20 或更高版本
- 一个具有 API 访问权限的运行中的 MISP 实例
- MISP API 密钥(从 MISP UI 生成:Administration > List Auth Keys)
## 安装
```
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` | 是 | - | API 认证密钥 |
| `MISP_VERIFY_SSL` | 否 | `true` | 对于自签名证书设置为 `false` |
| `MISP_TIMEOUT` | 否 | `30` | 请求超时时间(秒) |
## 使用方法
### Claude Desktop
添加到您的 Claude Desktop MCP 配置 (`claude_desktop_config.json`):
```
{
"mcpServers": {
"misp": {
"command": "node",
"args": ["/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"
}
}
}
}
```
### OpenClaw
添加到您的 `openclaw.json` MCP 服务器:
```
{
"mcp": {
"servers": {
"misp": {
"command": "node",
"args": ["/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"
}
}
}
}
}
```
### 独立运行
```
MISP_URL=https://misp.example.com MISP_API_KEY=your-key node dist/index.js
```
### Docker
```
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、text 或 RPZ 格式导出 IOC |
| `misp_export_hashes` | 导出文件哈希(MD5, SHA1, SHA256)用于 HIDS 集成 |
### 目击与警告列表工具 (2)
| 工具 | 描述 |
|------|-------------|
| `misp_add_sighting` | 报告某个 IOC 的目击、误报或过期 |
| `misp_check_warninglists` | 检查某个值是否出现在已知的良性/误报列表中 |
### 对象工具 (4)
| 工具 | 描述 |
|------|-------------|
| `misp_list_object_templates` | 列出可用的 MISP 对象模板(file、domain-ip、email 等) |
| `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 技术等)附加到事件或属性 |
### Feed 工具 (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` | 深度 IOC 调查:搜索、关联、检查警告列表、总结威胁背景 |
| `create-incident-event` | 从事件描述引导创建事件并进行 IOC 导入 |
| `threat-report` | 从 MISP 数据生成威胁情报报告 |
## 使用示例
### 搜索 IOC
使用 `misp_search_events` 和 `misp_search_attributes` 查找所有引用此 IP 的事件和属性。
### 调查可疑域名
触发 `investigate-ioc` 提示词工作流:搜索域名、检查关联、查询警告列表,并提供结构化的威胁评估。
### 创建突发事件
使用 `misp_create_event`,然后使用 `misp_add_attributes_bulk` 创建一个完整填充的事件。
### 导出 Suricata 规则
使用 `misp_export_iocs`,格式为 "suricata",时间为 "7d"。
### 检查误报
使用 `misp_check_warninglists` 验证该值是否为已知的良性指标。
### 查找 MITRE ATT&CK 技术
使用 `misp_search_galaxy_clusters` 查找相关的 ATT&CK 技术,然后使用 `misp_attach_galaxy_cluster` 将它们链接到事件。
### 添加结构化对象
使用 `misp_add_object` 和 "file" 模板创建一组结构化的相关属性。
## 支持的属性类型
| 类型 | 类别 | 示例 |
|------|----------|---------|
| `ip-src` | Network activity | 源 IP 地址 |
| `ip-dst` | Network activity | 目标 IP 地址 |
| `domain` | Network activity | 域名 |
| `hostname` | Network activity | 主机名 |
| `url` | Network activity | 完整 URL |
| `email-src` | Payload delivery | 发件人电子邮件地址 |
| `md5` | Payload delivery | MD5 文件哈希 |
| `sha1` | Payload delivery | SHA1 文件哈希 |
| `sha256` | Payload delivery | SHA256 文件哈希 |
| `filename` | Payload delivery | 文件名 |
使用 `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
```
## 许可证
MIT
标签:API 封装, Cloudflare, DAST, GNU通用公共许可证, GPT, HTTP/HTTPS抓包, IOC 查询, LLM 集成, MCP Server, MITM代理, MITRE ATT&CK, Node.js, STIX, Suricata, TypeScript, 人工智能安全, 关联分析, 合规性, 威胁情报, 安全插件, 开发者工具, 态势感知, 恶意软件分析, 情报共享, 模型上下文协议, 漏洞管理, 现代安全运营, 网络安全, 自动化攻击, 请求拦截, 隐私保护