DEV Community

Cover image for Model Context Protocol Alternative: Spring And Java AI Tools Integration
vishalmysore
vishalmysore

Posted on

Model Context Protocol Alternative: Spring And Java AI Tools Integration

Model Integration Protocol (MIP)

The Model Integration Protocol (MIP) is a framework I’ve developed that enables seamless integration between Java services and AI systems by converting Java methods, classes, and services into AI-consumable tools using modified JSON-RPC format. MIP automatically handles the conversion of existing Java objects, including their fields, arrays, maps, and nested objects, into a standardized format that AI systems can understand and use.

👉Source code of the reference project is here

Features of MIP:

Automatic Conversion of Java Services to JSON-RPC Tools:

  • MIP leverages reflection and annotations to automatically expose Java methods and classes as tools for AI.
  • It transforms Java classes, methods, and objects into JSON-RPC compliant tools, making them compatible with AI and LLMs (Large Language Models).

Annotation-Based Mapping:

  • Java classes and methods are annotated with specific annotations like @Action, @Prompt, @ListType, and @MapKeyType to define how they should be treated in the JSON-RPC conversion process.
  • These annotations help define field types, array handling, and date formatting, among other behaviors.

AI Integration:

  • The converted JSON-RPC format can be easily consumed by AI systems, making it possible for AI models to interact with and control real-world Java applications.
  • This allows AI to access and call Java-based functionality directly via simple JSON-RPC requests.

Supports Complex Structures:

  • MIP can handle complex data types, including nested objects, arrays, maps, and custom date formats, ensuring full compatibility with AI systems.

No Need for Manual Serialization/Deserialization:

  • Instead of manually converting Java objects to a format AI systems can understand (e.g., writing custom serializers), MIP automates the process by using its own internal reflection mechanism and annotations.

Cross-Platform Compatibility:

  • The (modified) JSON-RPC format is widely understood and can be used across multiple platforms, making it easy to integrate AI with a variety of Java-based backends.

How Does MIP Work?

Input Annotations:

  • Java classes and methods are annotated with MIP-specific annotations (such as @Action, @ListType, @MapKeyType, etc.) to define their behavior when integrated into AI systems.

Reflection:

  • MIP uses reflection to inspect the Java class and its annotations to automatically extract the necessary details about the class, including its fields, types, and methods.

JSON-RPC Conversion:

  • The class or method is then converted into a Modified JSON-RPC format that defines its fields, types, and expected input/output.
  • This enables AI systems to call these methods directly using JSON-RPC requests, without having to write any custom API handling code.

AI Consumption:

  • The JSON-RPC format is then consumed by AI systems or Large Language Models (LLMs), allowing them to access the Java functionality and execute the required operations.

For example this java class:

@Service
@Log
@Agent
public class CompareMiniVanService {
    public CompareMiniVanService() {
        log.info("created compare car service");
    }

    @Action( description = "compare two minivan")
    public String compareMiniVan(String car1 , String car2) {
        log.info(car2);
        log.info(car1);
        // implement the comparison logic here
        return " this is better - "+car2;
    }
}
Enter fullscreen mode Exit fullscreen mode

Will Automatically get converted to this:

{
  "actionType": "JAVAMETHOD",
  "actionParameters": {
    "methodName": "compareMiniVan",
    "parameters": [
      {
        "name": "car1",
        "type": "String",
        "fieldValue": ""
      },
      {
        "name": "car2",
        "type": "String",
        "fieldValue": ""
      }
    ],
    "returnType": "String"
  },
  "actionClass": "io.github.vishalmysore.service.CompareMiniVanService",
  "description": "compare two minivan",
  "actionGroup": "No Group",
  "actionName": "compareMiniVan",
  "expanded": true
}
Enter fullscreen mode Exit fullscreen mode

🛠️ Key Highlights:

Annotation-based Tooling:

By simply annotating my Java classes with @agent, @Action, and @Prompt, I automatically expose them as AI-consumable tools.
MIP inspects the Java classes and converts their methods and parameters into JSON-RPC schemas — no need for custom serialization logic or creating new APIs.
Effortless Integration:

I have eliminated the need to build separate API layers or new REST servers.
Instead, I directly expose existing Spring services, HTTP calls, and shell scripts as tools for AI interaction.
Cross-LLM Compatibility:

MIP is platform-agnostic and works with any LLM that supports JSON-RPC (e.g., OpenAI, Claude, Gemini, etc.).
Simplified Parameter Handling:

MIP automatically handles complex and nested parameters (e.g., lists, maps, date formats, arrays) through annotations like:
@ListType → for Lists
@MapValueType and @MapKeyType → for Maps
@Prompt → for contextual hints and formatting
Reduced Boilerplate:

Unlike MCP (Model Context Protocol), which requires creating separate servers and extensive coding, MIP uses reflection and annotations to auto-generate the schema.
This makes maintenance, expansion, and scaling significantly easier.
🔥 What I’ve Achieved So Far:

Server:

I’ve built Neurocaster-Server — the reference implementation of MIP.
This server exposes existing Java classes as JSON-RPC tools with minimal configuration.
As soon as the library is included in any spring boot project it exposes the tools on this url http://localhost:8081/actuator/tools4ai-tools
Al you have to do in your spring boot project for toosl invocation is enable websocket

@Configuration
@EnableWebSocket
public class NeuroCasterWebSocketConfig implements WebSocketConfigurer {
    @Override
    public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
        registry.addHandler(webSocketHandler(), "/chat")
                .addInterceptors(new HttpSessionHandshakeInterceptor())
                .setAllowedOrigins("*");  // Allow all origins or specific ones
    }

    @Bean
    public WebSocketHandler webSocketHandler() {
        return new NeuroCasterChatEndpoint(); // Use the ChatEndpoint class as WebSocketHandler
    }

    @Bean
    public ServerEndpointExporter serverEndpointExporter() {
        return new ServerEndpointExporter();
    }
}
Enter fullscreen mode Exit fullscreen mode

Markdown

Model Integration Protocol (MIP)

The Model Integration Protocol (MIP) is a framework I’ve developed that enables seamless integration between Java services and AI systems by converting Java methods, classes, and services into AI-consumable tools using modified JSON-RPC format. MIP automatically handles the conversion of existing Java objects, including their fields, arrays, maps, and nested objects, into a standardized format that AI systems can understand and use.

👉Source code of the reference project is here

Features of MIP:

Automatic Conversion of Java Services to JSON-RPC Tools:

  • MIP leverages reflection and annotations to automatically expose Java methods and classes as tools for AI.
  • It transforms Java classes, methods, and objects into JSON-RPC compliant tools, making them compatible with AI and LLMs (Large Language Models).

Annotation-Based Mapping:

  • Java classes and methods are annotated with specific annotations like @Action, @Prompt, @ListType, and @MapKeyType to define how they should be treated in the JSON-RPC conversion process.
  • These annotations help define field types, array handling, and date formatting, among other behaviors.

AI Integration:

  • The converted JSON-RPC format can be easily consumed by AI systems, making it possible for AI models to interact with and control real-world Java applications.
  • This allows AI to access and call Java-based functionality directly via simple JSON-RPC requests.

Supports Complex Structures:

  • MIP can handle complex data types, including nested objects, arrays, maps, and custom date formats, ensuring full compatibility with AI systems.

No Need for Manual Serialization/Deserialization:

  • Instead of manually converting Java objects to a format AI systems can understand (e.g., writing custom serializers), MIP automates the process by using its own internal reflection mechanism and annotations.

Cross-Platform Compatibility:

  • The (modified) JSON-RPC format is widely understood and can be used across multiple platforms, making it easy to integrate AI with a variety of Java-based backends.

How Does MIP Work?

Input Annotations:

  • Java classes and methods are annotated with MIP-specific annotations (such as @Action, @ListType, @MapKeyType, etc.) to define their behavior when integrated into AI systems.

Reflection:

  • MIP uses reflection to inspect the Java class and its annotations to automatically extract the necessary details about the class, including its fields, types, and methods.

JSON-RPC Conversion:

  • The class or method is then converted into a Modified JSON-RPC format that defines its fields, types, and expected input/output.
  • This enables AI systems to call these methods directly using JSON-RPC requests, without having to write any custom API handling code.

AI Consumption:

  • The JSON-RPC format is then consumed by AI systems or Large Language Models (LLMs), allowing them to access the Java functionality and execute the required operations.

For example this java class:


java
@Service
@Log
@Agent
public class CompareMiniVanService {
    public CompareMiniVanService() {
        log.info("created compare car service");
    }

    @Action( description = "compare two minivan")
    public String compareMiniVan(String car1 , String car2) {
        log.info(car2);
        log.info(car1);
        // implement the comparison logic here
        return " this is better - "+car2;
    }
}
Will Automatically get converted to this:

JSON

{
  "actionType": "JAVAMETHOD",
  "actionParameters": {
    "methodName": "compareMiniVan",
    "parameters": [
      {
        "name": "car1",
        "type": "String",
        "fieldValue": ""
      },
      {
        "name": "car2",
        "type": "String",
        "fieldValue": ""
      }
    ],
    "returnType": "String"
  },
  "actionClass": "io.github.vishalmysore.service.CompareMiniVanService",
  "description": "compare two minivan",
  "actionGroup": "No Group",
  "actionName": "compareMiniVan",
  "expanded": true
}
🛠️ Key Highlights:

Annotation-based Tooling:

By simply annotating my Java classes with @Agent, @Action, and @Prompt, I automatically expose them as AI-consumable tools.
MIP inspects the Java classes and converts their methods and parameters into JSON-RPC schemas — no need for custom serialization logic or creating new APIs.
Effortless Integration:

I have eliminated the need to build separate API layers or new REST servers.
Instead, I directly expose existing Spring services, HTTP calls, and shell scripts as tools for AI interaction.
Cross-LLM Compatibility:

MIP is platform-agnostic and works with any LLM that supports JSON-RPC (e.g., OpenAI, Claude, Gemini, etc.).
Simplified Parameter Handling:

MIP automatically handles complex and nested parameters (e.g., lists, maps, date formats, arrays) through annotations like:
@ListType → for Lists
@MapValueType and @MapKeyType → for Maps
@Prompt → for contextual hints and formatting
Reduced Boilerplate:

Unlike MCP (Model Context Protocol), which requires creating separate servers and extensive coding, MIP uses reflection and annotations to auto-generate the schema.
This makes maintenance, expansion, and scaling significantly easier.
🔥 What I’ve Achieved So Far:

Server:

I’ve built Neurocaster-Server — the reference implementation of MIP.
This server exposes existing Java classes as JSON-RPC tools with minimal configuration.
As soon as the library is included in any spring boot project it exposes the tools on this url http://localhost:8081/actuator/tools4ai-tools
Al you have to do in your spring boot project for toosl invocation is enable websocket
Java

@Configuration
@EnableWebSocket
public class NeuroCasterWebSocketConfig implements WebSocketConfigurer {
    @Override
    public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
        registry.addHandler(webSocketHandler(), "/chat")
                .addInterceptors(new HttpSessionHandshakeInterceptor())
                .setAllowedOrigins("*");  // Allow all origins or specific ones
    }

    @Bean
    public WebSocketHandler webSocketHandler() {
        return new NeuroCasterChatEndpoint(); // Use the ChatEndpoint class as WebSocketHandler
    }

    @Bean
    public ServerEndpointExporter serverEndpointExporter() {
        return new ServerEndpointExporter();
    }
}
Client:

I’ve built Neurocaster-Client in Angular, allowing chatting and invoking MIP tools via a WebSocket interface.
You can either chat with the server or inoke the tool
Tools4AI:

I’ve developed Tools4AI, which handles the conversion of Java methods and classes into AI-compatible JSON-RPC schemas, invoking tools etc.
Real-World Use Cases:

I’ve demonstrated complex class hierarchies (Organization, Employee), map handling (Dictionary), and diary entries with date formatting—all automatically converted into JSON-RPC schemas.
🚀 Why This is Significant:

Simplifies AI Integration: MIP makes any existing Java service or class AI-compatible without writing separate API layers.
Reduces Development Overhead: No need for additional servers — just annotate and expose!
Future-Proof: Since it uses JSON-RPC, it will work with any AI model, making it future-proof and flexible.
Massive Potential: I am enabling the LLM-driven automation of legacy Java systems with minimal refactoring, which could be groundbreaking for large enterprises.
Enter fullscreen mode Exit fullscreen mode

Heroku

Deploy with ease. Manage efficiently. Scale faster.

Leave the infrastructure headaches to us, while you focus on pushing boundaries, realizing your vision, and making a lasting impression on your users.

Get Started

Top comments (1)

Collapse
 
agent profile image
ARMX86

Looking great!

AWS Q Developer image

Your AI Code Assistant

Automate your code reviews. Catch bugs before your coworkers. Fix security issues in your code. Built to handle large projects, Amazon Q Developer works alongside you from idea to production code.

Get started free in your IDE

👋 Kindness is contagious

If this article connected with you, consider tapping ❤️ or leaving a brief comment to share your thoughts!

Okay