虚拟服务器监控协议服务器

一个开源的模型上下文协议服务器,用于IBM Power Virtual Server的AI代理生态系统集成,提供虚拟机的可观测性和诊断功能。

  • by IBM
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 IBM/powervs-mcp-server

使用说明

IBM Power Virtual Server MCP(模型上下文协议)服务器

此仓库是IBM Power Virtual Server的一个MCP(模型上下文协议)服务器示例。

免责声明这是一个供参考的MCP服务器样本,并非IBM官方所属、认可或支持。此MCP服务器使用了 IBM Power Virtual Server(IBM 功率虚拟服务器) 外部API。

这个开源的模型上下文协议(MCP)服务器将有助于 IBM Power 虚拟服务器 融入代理式人工智能(Agentic-AI)生态系统。它将帮助用户实现其AI代理的无缝可观测性和对已注册虚拟机的诊断 IBM Power 虚拟服务器 .

🚀 功能特点

  • 可观测性工具利用关键(或:杠杆关键) IBM Power 虚拟服务器 通过MCP接口实现监控功能。
  • 可扩展设计轻松集成额外的Power Virtual Server API,以支持未来的扩展。
  • “Pythonic”可以翻译为“具有Python风格的”或“符合Python习惯的”。这个词汇通常用来描述代码或编程实践在Python语言中显得自然、简洁且符合该语言的设计哲学为AI开发者提供易用性和可扩展性

🛠️ 工具

以下是目前通过MCP服务器暴露的工具列表:

1. fetch_powervs_vms

  • 描述列出PowerVS中的所有虚拟机。
  • 回报列出IBM帐户下所有工作区和数据中心中注册的所有虚拟机。

2. fetch_powervs_vms_by_health_status

  • 描述根据虚拟机的健康状态筛选获取Power VS虚拟机。
  • 输入项:
    • health_status可能的健康状态包括:正常、严重、错误、警告、未知。
  • 退货列出所有工作区和数据中心中按健康状态过滤的通知中的所有虚拟机。

3. fetch_powervs_critical_vms

  • 描述获取所有处于CRITICAL健康状态的Power VS虚拟机。
  • 回报列出所有工作区和数据中心中处于CRITICAL(严重)健康状态的所有虚拟机通知。

4. fetch_powervs_all_workspaces

  • 描述获取租户的所有 Power VS 工作区。
  • 退货列出IBM账户下所有已注册数据中心的工作空间。

5. fetch_powervs_vm_network_health

  • 描述获取Power VS虚拟机实例的网络接口健康信息。
  • 输入项:
    • vm_id *(字符串)*虚拟服务器的唯一系统标识。
  • 退货虚拟服务器网络健康状况的详细信息。

6. fetch_powervs_vm_storage_health

  • 描述获取Power VS虚拟机实例的存储健康数据。
  • 输入项:
    • vm_id *(字符串)*虚拟服务器的唯一系统标识符。
  • 回报虚拟服务器存储健康状况的详细信息。

7. fetch_powervs_vm_health

  • 描述获取Power VS虚拟机(VM)的完整健康详情,包括存储和网络信息。
  • 输入:
    • vm_id *(字符串)*虚拟服务器的唯一系统标识。
  • 退货虚拟服务器的整体健康状况详情,包括存储和网络。

8. fetch_powervs_all_images

  • 描述获取工作区中所有可用的 Power VS 镜像。
  • 回报列出工作区内的所有Power VS镜像,需要传递CRN以获取此信息。

9. fetch_powervs_image_details

  • 描述获取特定Power VS镜像的详细信息。
  • 输入:
    • image_id *(字符串)*Power VS 镜像的唯一系统标识。
  • 退货Power VS 图像的详细信息。

10. fetch_powervs_all_networks

  • 描述获取Power VS工作区中的所有网络。
  • 退货列出Power VS工作区的所有网络,需要传递CRN来获取此信息。

11. fetch_powervs_vm_snapshots

  • 描述获取Power VS虚拟机的所有快照。
  • 输入:
    • vm_id *(字符串)*虚拟服务器的唯一系统标识。
  • 退货列出指定虚拟机的所有快照。

🧪 设置

设置你的环境

步骤1:构建容器镜像:

podman build -t powervs_mcp_server:latest -f Containerfile .

步骤2:运行容器:

你需要将ACCOUNT_ID和API_KEY作为必填属性传递,并且CRN(工作区CRN)是可选的,仅在需要指定特定PowerVS工作区时使用。这可以在config.yaml文件中设置,也可以作为运行时环境变量传递给podman或docker容器

podman run -d --name powervs_mcp_server \
-p 8002:8002 \
-e ACCOUNT_ID=<POWERVS_ACCOUNT_ID> \
-e API_KEY=<POWERVS_API_KEY> \
-e CRN=<CRN>
localhost/powervs_mcp_server

你也可以通过传递参数来覆盖默认的8002端口 USER_DEFINED_PORT:

podman run -d --name powervs_mcp_server \
-p <PORT_ON_HOST>:<USER_DEFINED_PORT> \
-e MCP_SERVER_PORT=<USER_DEFINED_PORT>
-e ACCOUNT_ID=<POWERVS_ACCOUNT_ID> \
-e API_KEY=<POWERVS_API_KEY> \
-e CRN=<CRN>
localhost/powervs_mcp_server

IBM Power虚拟服务器凭证

此MCP服务器中调用的工具 IBM Power VS API(应用程序编程接口) APIs,因此需要API密钥以进行正常设置。请参阅 生成IBM Cloud API密钥 为您的租户/帐户ID生成REST API密钥。

在下方添加以下值 src/config.yaml 文件:

account_id: <IBM Cloud tentant or account ID>
api_key: <IBM Cloud API Key>
base_url: <Serivce broker URL>
crn: <IBM Power VS CRN of workspace that needs to be targeted>

🖥️ 与Langchain MCP客户端的使用

以下是MCP客户端的配置详情:

{
    "powervsserver": {
        "transport": "streamable_http",
        "url": "http://127.0.0.1:8002/mcp",
    }
}

🐞 测试与调试

我们建议使用 MCP检查员 用于测试和调试。您可以使用以下命令运行检查器:

npx @modelcontextprotocol/inspector

检查员将提供一个URL,您可以在浏览器中打开该URL以查看日志并手动发送请求。

📄 许可证

这个项目采用以下许可证授权: Apache许可证,第2版。