research logo

research

by danieloh30

This project showcases a simple agentic application using Quarkus, LangChain4j, and the Model Context Protocol (MCP). It integrates multiple MCP servers to enable agent reasoning and tool invocation.

View on GitHub

Last updated: N/A

What is research?

This project is a demonstration of building an agentic application using Quarkus, LangChain4j, and the Model Context Protocol. It leverages Quarkus' supersonic subatomic Java framework and LangChain4j's capabilities for interacting with language models. It uses multiple MCP servers such as Brave web search, OpenAI, Google Maps, and Slack to enable agent functionalities.

How to use research?

To use this application, you need to install Node, NPM and either Podman or Docker. Clone the repository, configure the required API keys in a .env file, and run the application in dev mode using ./mvnw compile quarkus:dev. You can also package the application using ./mvnw package for runnable jar and create native executable using ./mvnw package -Dnative. Access the application through http://localhost:8080 to interact after either running jar or native executable.

Key features of research

  • Agent reasoning

  • Tool invocation through MCP

  • Integration with multiple MCP servers

  • Quarkus Dev UI for LLM interaction

  • Simple frontend for testing

  • Native executable support

Use cases of research

  • Restaurant recommendation based on dietary needs and preferences

  • Sending recommendations to Slack channel

  • Creating ICS calendar files

  • Answering questions about reasoning and actions taken by the agent

  • Demonstrating agent memory and context awareness

FAQ from research

What is Quarkus?

Quarkus is a Supersonic Subatomic Java Framework.

What is Model Context Protocol (MCP)?

MCP facilitates communication and data exchange between different models and services.

How do I get API keys for the MCP services?

Links to get the API keys for Brave web search, OpenAI, Google Maps, and Slack are provided in the README.

How do I run the application in Dev mode?

Use the command ./mvnw compile quarkus:dev.

How can I chat with the LLM in Dev Mode?

In dev mode, you can access the Dev UI at http://localhost:8080/q/dev/ and click "Extensions" then "Chat"