Chapter 9 : Agents & Dashboard
Agents & Dashboard
EasyManage helps you build and test AI Agents with No-Code.
AI Agents | Use EasyManage Builder Studio to design AI Agent Workflows as Agent Projects. Test and deploy them with companion Agent Server.
App Dashboard | Make available Apps containing AI Agents to your users. They can Run Agents, share insights and reports.
Using Agents & Dashboard
- View Sample Screens below to help you on using Agents.
- Perform Agent Server Setup before Running Agents.
Agent Project
- AI Agent Workflows as Agent Projects

Run Agent With Human-in-the-loop
- Test AI Agents: With Approve Steps - Human-in-the-loop.

Run Agent With Auto Approve
- Test AI Agents - Inventory: With Auto Approve

Agent Run Ops
- AI Agent Run Ops : Endpoints available

Agent Server
- Companion Agent Server
- See Agent Server Setup
RAG Context
- Prompt Building - RAG Context Added

Publish Agents in Apps
- Make available in Apps

Share Insights & Reports
- View and share insights and reports by app users

Agent Server Setup
Agent Project uses companion Agent Server to Run Agents. Setup and Run Agent Server before Running Agents from App.
Agent Server Prerequisites
Before Running AI Agents, Run Builds For Backend APIs, MCP Server, and then Agent Server.
Deploy & Run
- APIs: REST
- MCP Server: REST
- Using Server Transport Streamable HTTP
- Agent Server
Note: You can use APIs GraphQL with MCP Server GraphQL.
One-click Build Run Script
- For APIs REST, MCP REST
- Use One-click Build Run Script
- Locate below in generated code folder:
resources\scripts\spring-java\build-run.bat
- Build & Run Backend REST:
resources\scripts\spring-java\build-run.bat 1
- Build & Run MCP REST:
resources\scripts\spring-java\build-run.bat 2
- Build & Run Agent Server:
resources\scripts\spring-java\build-run.bat 3
- Run All 3 together:
resources\scripts\spring-java\build-run.bat
Agent Server Compile & Run
- Locate Agent Server in downloaded code.
Downloads/EmGenDir_JohnDoe_WS_51186/WS_51186/agent/spring-java/agentserver- Go to this directory, compile & run.
- Set
OPENAI_API_KEYto use default OpenAI. - You can change to another LLM provider supported by Spring AI, by editing
pom.xml, and set its key.
On Win:
set OPENAI_API_KEY=<your key>
mvnw clean package
mvnw spring-boot:run
- Verify Started AgentServerApp:
2026-01-15T11:18:26.885+05:30 INFO 54448 --- [agentserver] [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 9030 (http) with context path '/'
2026-01-15T11:18:26.917+05:30 INFO 54448 --- [agentserver] [ main] com.example.agentserver.AgentServerApp : Started AgentServerApp in 4.024 seconds (process running for 4.582)
- View REST endpoints via Swagger:
- http://127.0.0.1:9030/swagger-ui/index.html

Agent Server Endpoints
| Type | Endpoints | Parameters |
|---|---|---|
| GET Endpoints | list-sessions , list-status , close-all-danger | No parameters |
| GET Endpoints | status , step-results , restore-points , cancel , close | Parameter: executionId |
| POST Endpoints | approve , reject | Parameter: executionId |
| Request Body: { "approved": true, "reason": "string" } | ||
| POST Endpoints | restore | Parameter: executionId |
| Request Body: { "stepIndex": 0, "reExecute": true } Note: stepIndex is stepNumber - 1 |
Combine MCP Server with AI Agents
When selected security methods, Combine MCP Server with AI Agents.
Combine with Agent Server
Follow these guidelines:
- MCP Server REST Combine with Agent Server
- Packaging as jar so that Agent Server can use it as dependency.
Changes to MCP Server REST
Locate Spring Java MCP Server REST project
mcp\spring-java\emmcp\app\mcprest
Edit pom.xml for mcprest
mcp\spring-java\emmcp\app\mcprest\pom.xml
Add packaging as jar:
<groupId>com.example.emmcp</groupId>
<artifactId>mcprest</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>emmcp : app : mcprest</name>
<description>MCP REST</description>
Remove plugin:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
Remove dependency:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
- Remove/Delete Java Config File:
mcp\spring-java\emmcp\app\mcprest\src\main\java\com\example\emmcp\app\SpringSecurityConfigBasicAuth.java
- Build and install project
cd mcp\spring-java\emmcp
mvn clean install
Changes to Agent Server
Locate Spring Java Agent Server project
agent\spring-java\agentserver
Edit pom.xml
agent\spring-java\agentserver\pom.xml
Enable Combined MCP Server: Locate below block and un-comment/enable:
<!-- withmcp
<dependency>
<groupId>com.example.emmcp</groupId>
<artifactId>mcprest</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-mcp-server-webmvc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
withmcp -->
- Edit File
AgentServerApp.javaagent\spring-java\agentserver\src\main\java\com\example\agentserver\AgentServerApp.java
Add scanBasePackages as below to @SpringBootApplication:
@SpringBootApplication(scanBasePackages = {"com.example.agentserver", "com.example.emmcp"})
- Edit application.properties
agent\spring-java\agentserver\src\main\resources\application.properties
Enable Combined MCP Server: Locate below block and
- comment out **EM MCP Client** section:
- Enable uncomment **EM MCP Server Combined** section (Replace "#withmcp")
- Edit `em.mcp.authType=None` , Set Basic or Bearer as applicable.
- Edit `em.mcp.authToken=` , Set Token value.
# -----------------------------------------------------------------
# EM MCP Client
# STDIO Mode
#spring.ai.mcp.client.stdio.servers-configuration=mcp.json
# If SSE MCP Server (deprecated)
#spring.ai.mcp.client.sse.connections.easymanage-mcp.url=http://localhost:9040
# Streamable HTTP transport Mode
spring.ai.mcp.client.streamable-http.connections.server1.url=http://localhost:9040
spring.ai.mcp.client.streamable-http.connections.server1.endpoint=/mcp
#spring.ai.mcp.client.streamable-http.connections.server2.url=http://otherserver:8081
#spring.ai.mcp.client.streamable-http.connections.server2.endpoint=/custom-sse
spring.ai.mcp.client.type=SYNC
logging.level.io.modelcontextprotocol.client=WARN
logging.level.io.modelcontextprotocol.spec=WARN
#spring.ai.mcp.client.enabled=true
#spring.ai.mcp.client.type=SYNC
#spring.ai.mcp.client.toolcallback.enabled=true
#spring.ai.mcp.client.initialized=true
#spring.ai.mcp.client.annotation-scanner.enabled=true
# -----------------------------------------------------------------
#withmcp# -----------------------------------------------------------------
#withmcp# EM MCP Server Combined
#withmcp
#withmcp# Server Transport
#withmcp# ----------------------------------
#withmcp# STREAMABLE (Streamable HTTP transport)
#withmcp
#withmcpspring.ai.mcp.server.protocol=STREAMABLE
#withmcpspring.ai.mcp.server.type=SYNC
#withmcpspring.ai.mcp.server.instructions=This streamable server provides mcp tools
#withmcpspring.ai.mcp.server.tool-change-notification=true
#withmcpspring.ai.mcp.server.resource-change-notification=true
#withmcpspring.ai.mcp.server.prompt-change-notification=true
#withmcpspring.ai.mcp.server.streamable-http.mcp-endpoint=/mcp
#withmcpspring.ai.mcp.server.streamable-http.keep-alive-interval=60s
#withmcp
#withmcpspring.ai.mcp.server.name=mcprest
#withmcpspring.ai.mcp.server.version=0.0.1
#withmcp
#withmcp# Pass as arg when calling jar or define here
#withmcp# "args": ["-jar", "path/mcprest-1.0-SNAPSHOT.jar", "--em.mcp.apiUrl=restApiUrl" ]
#withmcp# e.g. em.mcp.apiUrl="http://127.0.0.1:9080/emdbrest"
#withmcpem.mcp.apiUrl=http://127.0.0.1:9080/emdbrest
#withmcpem.mcp.authType=None
#withmcpem.mcp.authToken=
#withmcp
#withmcp# -----------------------------------------------------------------
- Add Bean @Primary For MCP Tools to populate and get all tools listing in
ToolCallbackProvider. - Add file:
agent\spring-java\agentserver\src\main\java\com\example\agentserver\McpToolsConfig.java
See below sample file. Use/replace all services @Service from your MCP Server REST project.
Sample McpToolsConfig.java
package com.example.agentserver;
import org.springframework.ai.tool.ToolCallbackProvider;
import org.springframework.ai.tool.method.MethodToolCallbackProvider;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Primary;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@Configuration
public class McpToolsConfig {
private final ApplicationContext applicationContext;
public McpToolsConfig(ApplicationContext applicationContext) {
this.applicationContext = applicationContext;
}
/*
@Bean
@Primary
public ToolCallbackProvider buildToolsAllRest() {
Map<String, Object> services = applicationContext.getBeansWithAnnotation(Service.class);
//System.out.println("\n--- Services found using getBeansWithAnnotation ---");
List<Object> serviceInstances = new ArrayList<>(services.values());
services.forEach((beanName, beanInstance) ->
System.out.println("Found service: " + beanName + " -> Class: " + beanInstance.getClass().getName())
);
return MethodToolCallbackProvider.builder()
.toolObjects(serviceInstances.toArray()
).build();
}
*/
@Bean
@Primary
public ToolCallbackProvider buildToolsAllRest(
com.example.emmcp.app.EmMcpRestService emMcpRestService,
com.example.emmcp.app.CustomerRestMcpService customerRestMcpService,
com.example.emmcp.app.InventoryRestMcpService inventoryRestMcpService,
com.example.emmcp.app.OrdersRestMcpService ordersRestMcpService,
com.example.emmcp.app.ProductRestMcpService productRestMcpService,
com.example.emmcp.app.ShippingRestMcpService shippingRestMcpService,
com.example.emmcp.app.TenantRestMcpService tenantRestMcpService
) {
return MethodToolCallbackProvider.builder()
.toolObjects(
emMcpRestService,
customerRestMcpService,
inventoryRestMcpService,
ordersRestMcpService,
productRestMcpService,
shippingRestMcpService,
tenantRestMcpService
).build();
}
}
- Build and Run Agent Server
- Follow Agent Server Setup
- Note: Except You do not need to Build and Run MCP Server REST, as it is combined with Agent Server.