Nebula MCP 服务器实现

使用说明(Markdown 形式)

  • 项目简介

    • Nebula 提供一个完整的 MCP 服务器实现,用来向 LLM 客户端暴露后端能力,包括对资源的访问、工具的注册与执行,以及提示模板的渲染,帮助 LLM 在对云环境进行分析与操作时获得结构化的上下文信息。
  • 主要功能点

    • 资源管理与数据访问:服务器端托管并管理可访问的资源信息,便于 LLM 获取和操作资源上下文。
    • 工具注册与执行:将后端模块转换为 MCP 工具,LLM 可以通过 MCP 请求调用外部功能与执行任务。
    • Prompt 模板定义与渲染:支持基于模板的 Prompt 渲染,提供自定义的交互模式。
    • JSON-RPC 通信:服务器通过 JSON-RPC 与 MCP 客户端通信,请求读取资源、调用工具、获取 Prompt 等并返回标准化响应。
    • 会话与能力声明:服务器端负责会话管理、能力声明,并可按需启用多种传输协议(如 STDIO、HTTP SSE)。
    • 多传输协议支持:目前实现了 STDIO 与 HTTP (SSE) 传输,方便在本地开发和远程部署中灵活使用。
  • 安装步骤

    • 从源代码构建
      • git clone https://github.com/praetorian-inc/nebula
      • cd nebula
      • go build
    • 使用 Docker 构建与运行(示例,需本地替换路径/设置)
    • 预置依赖
      • 需要可执行的 AWS/Azure/GCP 等颗粒模块以及相应的外部工具,具体依赖请参见项目文档。
  • 服务器配置(MCP 客户端需要的配置信息,配置格式为 JSON) 注:以下为示例配置说明。MCP 客户端需要提供 server 名称、启动命令与参数等信息来连接 Nebula MCP 服务器。Nebula 客户端配置不需要 Nebula 的实现细节代码,直接按以下 JSON 模板填写即可。

    { "server_name": "Nebula Server", "command": "/path/to/nebula", "args": ["mcp-server"], "transport": "http", // 取值可选: "stdio" 或 "http" "addr": ":8080" // 当 transport 为 http 时生效,示例端口 }

    说明

    • server_name: MCP 服务器在客户端显示的名称,对应 Nebula 的 MCP 服务器标识。
    • command: 启动 Nebula 的可执行文件路径,通常为构建后的 Nebula 二进制(含 mcp-server 子命令)。
    • args: 启动参数,至少需要包含 "mcp-server";如需通过 HTTP 传输可增加 --http 与相关选项。
    • transport/addr: 指定客户端如何与服务器通信。HTTP 传输时应提供地址,STDIO 模式下通常不需要这些。
    • 配置一旦在 MCP 客户端配置好后,客户端即可通过 JSON-RPC 与 Nebula MCP 服务器进行资源读取、工具调用和 Prompt 获取等交互。
  • 基本使用方法

    • 启动服务器
      • 直接运行 nebula mcp-server(默认 STDIO 传输)
      • 或 nebula mcp-server --http --addr :8080(启用 HTTP 传输,监听 8080 端口)
    • 客户端连接
      • 使用上述配置模板在 MCP 客户端中添加 Nebula 服务器条目,指定可执行命令和参数,确保客户端能够通过 JSON-RPC 与服务器通信。
    • 常见操作
      • 通过 MCP 调用 Nebula 模块(工具)来执行资源查询、分析或其他功能。
      • 使用 Prompt 模板渲染等能力,获取 LLM 的上下文信息以驱动对话。
  • 备注

    • Nebula 的 MCP 服务端实现集成了 Janus 框架的链路、模块,以及 MCP 工具适配等逻辑,确保 MCP 客户端可以以标准化方式与后端进行交互。

服务器信息