IBM Cloud Logs MCP Server
使用说明(Markdown 格式)
-
项目简介
- 该仓库实现了一个 MCP 服务器,旨在通过标准化的 MCP 架构向大语言模型(LLM)客户端提供上下文信息、数据访问能力、外部工具调用能力以及可定制的提示模板。服务器通过 JSON-RPC 与客户端通信,具备会话管理、能力声明以及对多种传输协议的支持(如 stdio、SSE、WebSocket)。
-
主要功能点
- 资源管理与数据访问:托管并管理可访问的资源,提供后端数据能力给 LLM 使用。
- 工具注册与执行:实现大量工具(如查询、告警、仪表盘、数据处理等)并对外暴露接口,LLM 可通过工具调用外部功能。
- 提示模板与渲染:定义和渲染 Prompts/模板,支持可定制的 LLM 交互模式。
- MCP 协议实现:支持核心的 MCP 请求/响应工作流,采用 JSON-RPC 风格的交互。
- 会话与能力声明:服务器端提供会话管理和服务能力声明,便于客户端理解可用能力。
- 多传输协议支持:内置对 STDIO、SSE、WebSocket 等传输协议的支持,以适配 Claude Desktop、Copilot 等 MCP 客户端。
- 安全与稳定性:包含认证、重试、速率限制、健康检查等稳健性特性(按实现细节覆盖 IAM 认证、令牌刷新、错误处理等)。
- 集成测试:包含集成测试用例和客户端样例,帮助验证 MCP 服务器的行为。
-
安装步骤
- 确保安装了 Go 语言环境(建议使用 Go 1.x 及以上版本)。
- 获取代码并安装依赖(在项目根目录执行:go mod download)。
- 构建服务器(二选一):
- 使用 Makefile 构建:执行 make deps 进行依赖下载,然后执行 make build 生成可执行二进制。
- 或直接在命令行构建:go build -o logs-mcp-server ./...
- 启动服务器:运行生成的 logs-mcp-server 可执行文件。启动时会读取环境变量中的配置,例如 IBM Cloud Logs 的 endpoint、API Key 等,必要时可通过命令行参数/配置文件覆盖。
-
服务器配置(给 MCP 客户端的配置说明,json 格式,便于在客户端环境中注入启动信息) server_name: "ibm-cloud-logs-mcp" command: "logs-mcp-server" args: ["--config", "/etc/logs-mcp/config.yaml"] 说明: server_name 用于标识一个 MCP 服务器实例,command 指定服务器启动命令,args 是启动参数列表(如需要加载的配置文件路径)。 备注: MCP 客户端(如 Claude Desktop, Microsoft Copilot 集成等)不需要你在此处提供客户端配置;该部分仅描述 MCP 服务器端的启动信息,便于自动化部署与多实例场景。
-
基本使用
- 启动后,LLM 客户端通过 MCP 流程向服务器请求资源数据、执行工具、获取和渲染 Prompts。
- 客户端可以通过 JSON-RPC 请求来读取资源、执行工具、获取 Prompts,服务器返回标准的 JSON-RPC 响应或推送通知。
- 如需对接 Claude Desktop、Copilot 等工具,参考客户端的连接方式,将上述启动信息配置为 MCP 服务提供方即可。
-
重要提示
- 配置中尽量使用环境变量或凭据管理工具来保护 API Key/令牌,避免硬编码。
- 根据实际部署规模,可设置多实例配置,并在 MCP 客户端侧通过 name 匹配对应服务。
- 如需进一步了解实现细节,请参阅仓库中的 main.go、internal/server、internal/tool 等实现文件。