mcpField
Q
Quarkus + MCP = Agentic

Quarkus + MCP = Agentic

本地服务
github.com/jamesfalknerAI 与智能体282 周前更新

关于 Quarkus + MCP = Agentic

Quarkus + MCP = Agentic 是一个基于 Quarkus 和 LangChain4j 构建的 Agent 应用示例,展示助手如何调用多个 MCP 服务完成涉及搜索、地图和 Slack 的请求。

主要功能

  1. 01基于 Quarkus 和 LangChain4j
  2. 02使用多个 MCP 服务
  3. 03在 Dev UI 中进行 LLM 聊天
  4. 04用于测试的网页前端
  5. 05通过 Grafana 查看遥测数据

适用场景

  1. 01尝试多步骤 Agent 请求
  2. 02探索跨 MCP 服务的工具调用
  3. 03在 Dev UI 中与配置的 LLM 聊天
  4. 04通过网页前端测试助手

MCP 相关

应用使用 LangChain4j MCP 客户端连接多个 MCP 服务。README 将其描述为 Agent 应用示例,并未说明它会向外提供自己的 MCP 工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Quarkus + MCP = Agentic

本项目使用 Quarkus(超音速、亚原子级 Java 框架)和 Model Context Protocol,结合多个 MCP 服务与 Quarkus + LangChain4j,构建一个简单的 Agentic 应用。

想进一步了解 Quarkus,请访问其网站:https://quarkus.io/ 。

在开发模式下运行应用

你需要安装 node 和 npm(用于启动 MCP 服务)。请按照推荐方式为你的系统安装。

如果想查看内置遥测数据,你还需要可用的容器环境(例如 Podman 或 Docker)。应用启动后,你可以进入 Dev UI 并找到 Grafana 链接。如果没有容器环境,请注释掉 application.properties 中与遥测相关的部分。

如果想使用 filesystem MCP 服务,请在克隆项目的根目录下创建名为 playground 的目录(也可以在 application.properties 中改为其他名称,但该目录必须存在)。

有几个 MCP 服务需要 API 密钥。以下是获取密钥的链接:

准备好这些之后,最简单的方法是在克隆的项目中创建名为 .env 的文件(此文件已列在 .gitignore 中,因此如果你 fork 此仓库并创建该文件,它不会被推送到 GitHub)。.env 文件内容应如下所示:

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>

这些变量会在你以开发模式运行 Quarkus 时自动加载。你也可以将它们直接写入 application.properties,但请注意不要将其提交到公开的源代码仓库!

在生产环境中,显然应以不同方式处理这些变量,将其存储在保险库或 Kubernetes Secrets 等安全位置,并在运行时作为环境变量注入。

不过,在测试时,你可以通过以下命令在开发模式下运行应用,以启用实时编码:

./mvnw compile quarkus:dev

在开发模式下,你可以进入 Dev UI,在“Extensions”中点击“Chat”,与已配置的大模型聊天。系统消息已根据 Bot.java 中的内容预先填入。

NOTE: Quarkus 现在自带 Dev UI,仅在开发模式下可通过 http://localhost:8080/q/dev/ 访问。

测试应用

你可以使用一个简单的前端应用来测试助手——访问 http://localhost:8080,你应该会看到:

登录页面

点击左下方的聊天框图标,并输入一些示例提示词,看看它如何运用 Agent 推理来调用各种工具:

My name is John Doe. I am a member of a team of 2 myself and Daniel Jane. I like Asian food, while Daniel is on a strict gluten-free diet.

Please find one good restaurant in Atlanta, GA with the highest rating that meets
the team's dietary needs and preferences. Then, invite the team to a lunch
at 12pm next Wednesday using the slack channel "#lunchtime".
In your message, include the name and description of the restaurant, the time and
date of the lunch, and driving directions from Georgia World Congress Center.
Also create an ICS calendar file for me to use in my calendar in the
"playground/calendar" directory.`

也可以尝试一些更简单的后续提示词,例如:

  • 你是如何推理并得出该建议的?
  • 你是如何选择这家餐厅的?
  • 每个步骤中你采取了哪些操作,使用了哪些工具?
  • 你为什么搜索无麸质餐厅?
  • 你记住了团队中每个人的哪些信息?

在开发模式下,你也可以进入 Dev UI,在“Extensions”中点击“Chat”,与已配置的大模型聊天。系统消息已根据 Bot.java 中的内容预先填入。

NOTE: Quarkus 现在自带 Dev UI,仅在开发模式下可通过 http://localhost:8080/q/dev/ 访问。

打包和运行应用程序

应用程序可以使用以下命令打包:

./mvnw package

它在 target/quarkus-app/ 目录中生成 quarkus-run.jar 文件。 请注意,这不是一个 über-jar,因为依赖项被复制到 target/quarkus-app/lib/ 目录中。

现在可以使用 java -jar target/quarkus-app/quarkus-run.jar 运行应用程序。

如果您想构建 über-jar,请执行以下命令:

./mvnw package -Dquarkus.package.type=uber-jar

打包为 über-jar 的应用程序现在可以使用 java -jar target/*-runner.jar 运行。

创建本机可执行文件

您可以使用以下命令创建本机可执行文件:

./mvnw package -Dnative

或者,如果您没有安装 GraalVM,可以在容器中运行本机可执行文件构建:

./mvnw package -Dnative -Dquarkus.native.container-build=true

然后可以使用 ./target/research-1.0-SNAPSHOT-runner 执行本机可执行文件

如果您想进一步了解如何构建本机可执行文件,请参阅 https://quarkus.io/guides/maven-tooling。

相关指南

  • LangChain4j Model Context Protocol 客户端 (guide):为 LangChain4j 提供 Model Context Protocol 客户端实现
  • LangChain4j OpenAI (guide):提供与 LangChain4j 的基本集成

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。