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 客户端可以以标准化方式与后端进行交互。