MISP IOC检索服务

一个简单的MCP服务器,提供MISP(恶意软件信息共享平台)IOC检索功能,适用于MCP兼容客户端如Claude Desktop。

  • by sairambokka
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 sairambokka/misp-mcp-server

使用说明

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密钥

安装

  1. 克隆或下载项目文件:

    git clone <your-repo-url>
    cd misp-mcp-server
    
  2. 安装依赖项:

    pip install -r requirements.txt
    
  3. 设置环境变量: 创建一个 .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数据时,确保遵守贵组织的安全策略。

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 与MCP检查员一起测试
  5. 提交拉取请求

支持

关于以下问题:


备注:此服务器专为内部使用受信任的MISP实例而设计。在处理威胁情报数据时,始终遵循贵组织的安全准则。