本项目仓库包含一个为红帽峰会 Agentic AI 演示而构建的系统组件,其中核心部分是多个基于 Model Context Protocol (MCP) 实现的工具服务器。这些 MCP 服务器充当 AI Agent 与外部系统之间的桥梁,通过标准化的协议向 LLM 提供特定领域的功能。

主要功能点

这些 MCP 服务器通过提供可被 LLM 调用的工具(Tools),实现了与以下外部系统的集成:

  • CRM 集成: 提供查询活动机会 ('getOpportunities') 和查询支持案例 ('getSupportCases') 的工具,允许 Agent 获取客户相关的业务数据。
  • Slack 集成: 提供列出公共频道 ('slack_list_channels') 和发送消息 ('slack_post_message') 的工具,使 Agent 能够与团队进行信息交流。
  • 文件上传: 提供将文件上传至报告仓库并获取访问 URL ('upload_report_pdf') 的工具,支持 Agent 处理和分享生成的报告。
  • PDF 生成: 提供将结构化内容渲染为 PDF 文档的功能,允许 Agent 生成报告或文档。

安装步骤

本项目是一个完整的演示系统,MCP 服务器是其中的一部分。部署整个演示系统将包含 MCP 服务器。

  • OpenShift 部署:
    1. 确保您拥有 Red Hat OpenShift Cluster 4.17+ 环境和 Red Hat OpenShift AI 2.16+ 环境。
    2. 确保您的集群配置了支持的模型推理硬件,例如至少 2 个 GPU,每个至少 24GiB VRAM。
    3. 使用 Kubernetes 清单进行部署:运行命令 'oc apply -k kubernetes/deploy-demo'。这将部署包括 MCP 服务器在内的所有组件。
  • 本地部署: 仓库提供了详细的本地部署指南。请参照 './docs/deploy-demo-local.md' 文件中的说明进行操作。本地部署通常涉及构建容器镜像、设置环境变量并使用 Docker Compose 或类似工具启动服务。

服务器配置

这些 MCP 服务器设计用于与支持 MCP 协议的客户端(如项目中的 Llama-Stack Agent)通过 Stdio(标准输入/输出)传输协议进行通信。您的 MCP 客户端或 Agent 框架需要配置如何启动这些服务器进程并与之建立连接。

通常,MCP 客户端的配置会包含一个描述每个 MCP 服务连接的 JSON 对象列表。对于使用 Stdio 传输的服务器,配置对象至少需要指定:

  • 逻辑名称: MCP 客户端用于标识该服务的名称(例如 'crm', 'Slack MCP Server', 'Report Upload MCP Server')。请注意,Agent 配置中可能会使用分组标识符,如 'mcp::crm', 'mcp::slack', 'mcp::upload'。
  • 启动命令 (command) 和参数 (args): 告诉客户端如何启动服务器进程。例如,'node' 作为命令,后跟服务器主文件的路径作为参数(如 'app/index.js')。
  • 环境变量 (env): 列出服务器运行所需的环境变量及其值。

根据本仓库的代码,以下 MCP 服务器是可配置的:

  • CRM 服务:
    • 逻辑名称: 'crm'
    • 启动命令: 通常是 '["node", "/path/to/mcp-servers/crm/app/index.js"]' (具体路径取决于部署方式)。
    • 所需环境变量: 'DB_USER', 'DB_HOST', 'DB_NAME', 'DB_PASSWORD', 'DB_PORT' (连接 PostgreSQL 数据库)。
  • Slack 服务:
    • 逻辑名称: 'Slack MCP Server' (或由客户端分组为 'mcp::slack')
    • 启动命令: 通常是 '["node", "/path/to/mcp-servers/slack/app/index.js"]'。
    • 所需环境变量: 'SLACK_BOT_TOKEN' (Slack API 认证 Token)。
  • 上传服务:
    • 逻辑名称: 'Report Upload MCP Server' (或由客户端分组为 'mcp::upload')
    • 启动命令: 通常是 '["node", "/path/to/mcp-servers/upload/app/index.js"]'。
    • 所需环境变量: 'REPORT_REPO_URL' (上传报告的目标基础 URL)。

客户端需要根据实际部署时服务器文件的位置和所需的环境变量来构建其 MCP 服务配置。

基本使用方法

成功部署整个演示系统(包括 MCP 服务器和 Agent/Llama-Stack)后,您可以通过 Agent 的接口(例如 Streamlit UI 或脚本)与系统交互。

向 Agent 发送包含意图的自然语言提示,例如查询客户信息、发送 Slack 消息或生成报告。Agent 会识别出这些任务需要借助外部工具完成,然后通过 MCP 协议向相应的 MCP 服务器发送工具调用请求。MCP 服务器执行任务(如查询数据库、调用 Slack API、调用 PDF 生成器),并将结果返回给 Agent。Agent 利用这些结果来生成最终的回复。

例如,尝试使用 README 中提供的示例提示:

  • 'Review the current opportunities for ACME'
  • 'Send a slack message to agentic-ai-slack with the status of the account'
  • 'Generate a PDF document with a summary of the support cases and the account status'

通过观察 Agent 的响应,您可以了解它是如何通过 MCP 服务器与外部系统进行交互的。

信息

分类

商业系统