返回 MCP 目录
public公开dns本地运行

mcp-nvd

一个基于Model Context Protocol(MCP)的服务器实现,用于通过API查询NIST国家漏洞数据库(NVD)。

article

README

🚀 项目文档

本项目基于Uvicorn和SSE,为NVD(国家漏洞数据库)打造实时漏洞监控服务,借助WebSocket协议与前端或其他客户端实时通信,实现高效的漏洞管理与跟踪。

🚀 快速开始

克隆项目

git clone https://github.com/your-username/mcp-nvd.git
cd mcp-nvd

安装依赖

pip install -r requirements.txt

启动服务

默认绑定地址为0.0.0.0:9090,使用SSE模式:

uvicorn mcp_nvd.main:app --host 0.0.0.0 --port 9090

访问服务

  • 测试接口:发送一条测试消息到指定端点。
  • 实时数据流:通过WebSocket客户端或支持SSE的浏览器连接,获取实时数据。

✨ 主要特性

  1. 实时数据传输:采用SSE技术,支持长时间保持连接,实现数据的实时推送。
  2. 多平台兼容性:支持同时运行HTTP和WebSocket两种协议,满足不同客户端的需求。
  3. 配置灵活
    • 允许自定义绑定地址、端口号以及日志记录等级。
    • 支持设置每条消息的最大字节数(默认为无限制)。
  4. 高效性能:基于Uvicorn的异步框架,处理高并发请求时表现优异。

📦 安装指南

克隆项目

git clone https://github.com/your-username/mcp-nvd.git
cd mcp-nvd

安装依赖

pip install -r requirements.txt

💻 使用示例

基础用法

main.py中可以通过以下方式配置服务器:

app = FastAPI(
    title="NVD漏洞监控服务",
    description="基于SSE的实时漏洞监控系统",
    version="1.0.0",
)

# 启动命令示例:
uvicorn mcp_nvd.main:app --host 0.0.0.0 --port 9090

高级用法

以下是一个简单的使用示例:

@app.websocket("/ws")
async def websocket_endpoint(websocket: WebSocket):
    await websocket.accept()
    try:
        while True:
            # 发送一条消息到指定端点
            await websocket.send_text("数据更新:{}".format(datetime.now()))
            await asyncio.sleep(1)
    except Exception as e:
        print(f"WebSocket连接关闭,错误:{e}")

📚 详细文档

配置选项

main.py中可以通过以下方式配置服务器:

app = FastAPI(
    title="NVD漏洞监控服务",
    description="基于SSE的实时漏洞监控系统",
    version="1.0.0",
)

# 启动命令示例:
uvicorn mcp_nvd.main:app --host 0.0.0.0 --port 9090

🔧 技术细节

本项目基于Uvicorn和SSE实现实时漏洞监控服务,通过WebSocket协议与前端或其他客户端进行实时通信。Uvicorn作为异步服务器框架,能够高效处理高并发请求;SSE技术则支持长时间保持连接,实现数据的实时推送。同时,项目支持HTTP和WebSocket两种协议,具有良好的多平台兼容性。

📄 项目结构

mcp-nvd/
├── mcp_nvd/          # 核心服务代码
│   ├── main.py       # FastAPI应用入口
│   └── tools.py      # 辅助函数和配置项
├── requirements.txt  # 依赖管理文件
└── README.md         # 项目文档

👥 贡献者

📝 致谢

感谢@sidharthrajaram为SSE基的MCP客户端和服务器提供参考实现:https://github.com/sidharthrajaram/mcp-sse

⚠️ 注意事项

⚠️ 重要提示

请确保安装所有必要的依赖项,包括fastapiuvicornsseclient。本项目作为内部工具使用时需注意网络安全,建议在生产环境中启用HTTPS。

💡 使用建议

根据实际需求调整服务器配置,例如增加线程数或优化数据推送频率。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端