使用说明
项目简介
本项目 'quarkus-agentic-mcp' 是一个使用 Quarkus 框架和 LangChain4j 库构建的 Model Context Protocol (MCP) 服务器实现。它旨在演示如何通过 MCP 协议为 Agentic 应用提供后端服务,特别是上下文管理和工具集成。该服务器集成了多种实用工具,例如文件系统访问、Google Maps、Slack 通知、Brave 网页搜索等,并可通过 WebSocket 与 MCP 客户端进行通信。
主要功能点
- 资源管理 (Resources): 通过文件系统工具,服务器可以访问和操作本地文件系统中的资源(限定于 'playground' 目录)。
- 工具注册与执行 (Tools): 内置多种工具,包括:
- 文件系统工具: 读写 'playground' 目录下的文件。
- Google Maps 工具: 用于地点搜索、距离计算等地图相关操作。
- Slack 工具: 发送消息到 Slack 频道。
- Brave 网页搜索工具: 进行网页信息检索。
- 记忆检索工具: 模拟知识图谱的记忆检索。
- Prompt 模板 (Prompts): 通过 'Bot.java' 中的 '@SystemMessage' 注解定义了系统级 Prompt,指导 LLM 的行为和工具使用策略。
- WebSocket 通信: 使用 WebSocket 协议在 '/bot' 路径上与客户端进行实时通信。
- 会话管理: 使用 '@SessionScoped' 注解,暗示支持会话级别的上下文管理。
- 能力声明: 通过系统 Prompt 和代码结构,声明了服务器提供的工具和功能。
安装步骤
- 环境准备:
- 克隆仓库:
git clone https://github.com/danieloh30/quarkus-agentic-mcp.git cd quarkus-agentic-mcp - 创建 'playground' 目录:
在仓库根目录下创建名为 'playground' 的目录,用于文件系统工具的测试。
mkdir playground - 配置 API 密钥:
- 获取以下服务的 API 密钥,并记录下来:
- 在仓库根目录下创建 '.env' 文件,并将 API 密钥配置在文件中 (请勿将此文件提交到公开仓库):
quarkus.langchain4j.mcp.bravesearch.environment.BRAVE_API_KEY=<YOUR BRAVE API KEY HERE> quarkus.langchain4j.mcp.googlemaps.environment.GOOGLE_MAPS_API_KEY=<YOUR GMAPS API KEY HERE> quarkus.langchain4j.mcp.slack.environment.SLACK_BOT_TOKEN=<YOUR SLACK BOT TOKEN HERE> quarkus.langchain4j.mcp.slack.environment.SLACK_TEAM_ID=<YOUR SLACK TEAM ID HERE> quarkus.langchain4j.openai.api-key=<YOUR OPENAI API KEY HERE>
服务器配置 (MCP 客户端配置)
MCP 客户端需要配置以下信息以连接到此 MCP 服务器。以下是 JSON 格式的配置示例,请根据实际情况修改:
{ "serverName": "quarkus-mcp-server", "command": ["java", "-jar", "target/quarkus-app/quarkus-run.jar"], "args": [], "transport": "websocket", "baseUrl": "ws://localhost:8080/bot" }
配置参数说明:
- 'serverName': 服务器名称,可以自定义,用于在 MCP 客户端中标识该服务器。
- 'command': 启动服务器的命令。这里假设您在项目根目录下执行 MCP 客户端,并且已经使用 'mvnw package' 命令打包了服务器。如果使用 native 镜像,则 command 需修改为 native 镜像的执行命令。
- 'args': 启动服务器命令的参数,本示例中无需额外参数。
- 'transport': 传输协议,本服务器使用 WebSocket 协议。
- 'baseUrl': WebSocket 连接的 URL,指向服务器的 WebSocket 端点 '/bot'。请根据服务器实际运行地址和端口进行调整。
注意: MCP 客户端需要能够执行 'command' 指定的命令来启动 MCP 服务器进程,并使用 'baseUrl' 建立 WebSocket 连接。实际部署时,请确保 MCP 服务器已正确打包并可访问,并且 MCP 客户端的网络配置允许连接到服务器地址。
基本使用方法
-
启动服务器: 在仓库根目录下,使用 Maven 开发模式启动服务器:
./mvnw compile quarkus:dev或者,打包后运行:
./mvnw package java -jar target/quarkus-app/quarkus-run.jar服务器默认运行在 'http://localhost:8080'。
-
使用 MCP 客户端连接服务器: 配置 MCP 客户端,使用上面提供的服务器配置信息连接到 'quarkus-mcp-server'。
-
通过客户端与 LLM 助手交互: 客户端连接成功后,即可向服务器发送符合 MCP 协议的请求,与集成了各种工具的 LLM 助手进行对话和任务执行。例如,可以发送文本消息进行提问,或者触发工具调用来完成特定任务(如文件操作、搜索信息、发送 Slack 消息等)。
-
测试示例: 访问 'http://localhost:8080' 可以打开一个简单的 Web 前端应用,用于测试助手的功能。或者,在开发模式下,访问 'http://localhost:8080/q/dev/' 进入 Quarkus Dev UI,点击 "Extensions" -> "Chat" 可以与 LLM 进行对话。
可以尝试以下示例 Prompt:
Please find one good restaurant in Boston, MA with the highest rating that meets the team's dietary needs and preferences. Then, invite the team to a lunch at 12pm next Friday.更多示例 Prompt 可以在 README.md 文件中找到。
信息
分类
AI与计算