MCP ExplorerExplorer

Agentic

@oalleson 9 months ago
1 MIT
FreeCommunity
AI Systems
#java#mcp#mcp-client#mcp-ser#ollama#spring-ai#springboot#redis#redis-vector-store
Spring boot Agent-based architecture. The project consists of multiple services working together using MCP (Model Control Protocol) to provide comprehensive solution. Redis as Vector Store.

Overview

What is Agentic

Agentic is a sample system designed to provide intelligent business services through an agent-based architecture, utilizing multiple services that communicate via the Model Control Protocol (MCP).

Use cases

Use cases for Agentic include automating customer inquiries through the application agent, providing contextual answers using the RAG service, and monitoring system performance via the monitoring service.

How to use

To use Agentic, deploy the application agent on port 8080, the monitoring service on port 8081, and the RAG service on port 8082. Users can send requests to the application agent, which will route them to the appropriate services.

Key features

Key features of Agentic include a central application agent for user requests, a Retrieval Augmented Generation (RAG) service for contextual query responses, and a monitoring service for system status, all interconnected via MCP.

Where to use

Agentic can be used in various domains requiring intelligent service automation, such as customer support systems, data retrieval applications, and real-time monitoring solutions.

Content

Agentic Enterprise

Description

Agentic is a sample system designed to offer intelligent business services through an agent-based architecture.
The project consists of multiple services working together using MCP (Model Control Protocol) to provide comprehensive solution.

Architecture

The system architecture is based on three main components that communicate with each other:

  • A central application agent that receives user requests
  • A RAG (Retrieval Augmented Generation) service to answer queries with contextual knowledge, exposed via MCP.
  • A monitoring service to provide system status information, exposed via MCP.
flowchart TD
    subgraph application["application-agent (Port: 8080)"]
        app["🤖 Application Agent"]
        style app fill:#f0f0f0,stroke:#333,stroke-width:2px
        mc1["Monitor MCP Client"]
        mc2["RAG MCP Client"]
        app --- mc1
        app --- mc2
        style app font-weight:bold
    end
    
    subgraph system-status["Monitor Service (Port: 8081)"]
        status["🤖 System Status Service"]
        style status fill:#eef7e6,stroke:#333,stroke-width:2px
        status-server["Monitor MCP Server"]
        status --- status-server
        style status font-weight:bold
    end

    subgraph rag-service["RAG Service (Port: 8082)"]
        rag["🤖 RAG Agent"]
        style rag fill:#e6f7ff,stroke:#333,stroke-width:2px
        rag-server["Rag MCP Server"]
        kb["Redis Vector Store"]
        rag --- rag-server
        rag --- kb
        style rag font-weight:bold
    end

    %% Increased spacing between components using invisible nodes
    invisible1[" "]
    invisible2[" "]
    
    application ~~~ invisible1 ~~~ rag-service
    application ~~~ invisible2 ~~~ system-status
    
    %% Connect with longer edges
    mc1 --> rag-server
    mc2 --> status-server

    %% Hide invisible nodes
    style invisible1 fill:none,stroke:none
    style invisible2 fill:none,stroke:none

    classDef server fill:#f0f0f0,stroke:#666,stroke-width:1px
    class rag-server,status-server server

    classDef client fill:#f0f0f0,stroke:#666,stroke-width:1px
    class mc1,mc2 client

    classDef data fill:#f9f9f9,stroke:#999,stroke-width:1px
    class kb,api data

Modules

application-agent

Main agent that receives user requests, via rest endpoint, and orchestrates the other services.

Configuration:

  • Port: 8080
  • Dependencies: Connects to rag and monitor services via MCP clients

Configuration file: application.yml

rag

Retrieval Augmented Generation (RAG) agent that provides responses based on stored knowledge.
Redis vector store is used for efficient indexing and retrieval of information.

Configuration:

  • Port: 8081
  • Type: MCP Server
  • Storage: Redis Vector Store for efficient indexing and retrieval

Configuration file: application.yml

monitor

Role: Monitoring service that provides information about the system status.

Configuration:

  • Port: 8082
  • Type: MCP Server
  • Functionality: Collects fict data about system health and performance

Configuration file: application.yml

Running the Project

Redis

cd environment;
docker-compose up -d

Starting Services

1. Start the RAG service:

cd rag
mvn spring-boot:run

2. Start the monitor service:

cd monitor
mvn spring-boot:run

3. Start the application agent:

cd application-agent
mvn spring-boot:run

Usage

Send requests to the application agent on port 8080. The system will coordinate communication with the RAG and monitor services to retrieve
the necessary information and respond accordingly.

Video

Audio is awful. Just watch the video without sound. 🙂

Using it

Tools

No tools

Comments

Recommend MCP Servers

View All MCP Servers