You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
With the recent surge in Large Language Models (LLMs) and AI agents, there's an increasing demand for AI systems to access the latest data from various sources, including databases and public APIs. The Model Context Protocol (MCP) has emerged as a universal, open standard for facilitating these connections. This presents an opportunity for OpenSearch to join this AI revolution by supporting MCP servers and exposing OpenSearch APIs as tools. This integration would allow diverse AI systems to interact with OpenSearch with minimal modifications.
Proposed Solutions
Since MCP is working based on JSON-RPC, so an example of index/_mapping API would look like below: Request
We are considering two primary approaches to support MCP in OpenSearch:
Modifying OpenSearch Core:
Implement support for the MCP protocol directly within the OpenSearch core.
As MCP is based on JSON-RPC, we would need to:
a) Handle and parse incoming JSON-RPC requests.
b) Construct corresponding OpenSearch requests based on the JSON request body.
c) Route these requests to the appropriate OpenSearch handlers.
Developing a New OpenSearch Plugin:
Create a dedicated plugin (e.g., 'opensearch-mcp') to implement MCP protocol support.
This approach may require:
a) Exposing a new port to handle JSON-RPC requests.
b) Implementing logic to dispatch these requests to various OpenSearch handlers.
Further investigation is needed to determine the feasibility and specifics of this approach.
Each solution has its own set of advantages and challenges, which will need to be carefully evaluated to determine the most effective implementation strategy.
For now, let's focus on discussing this proposal at a high level. If there's consensus to move forward, I will iteratively refine this RFC, incorporating more detailed low-level design.
Related component
Other
Describe alternatives you've considered
No response
Additional context
No response
The text was updated successfully, but these errors were encountered:
Without digging into the details of the protocol, is it more of a streaming or just more of a parsing/formatting thing?
I think it is more of a parsing/formatting thing, not streaming which is specially for huge responses.
Basically it is about making OpenSearch as MCP server to provide standard tool APIs that MCP client can use to get standard tool metadata and responses, then provide them to LLMs. I guess LLMs are well-trained against these standard message format and could respond in a better way.
Problem Statement
With the recent surge in Large Language Models (LLMs) and AI agents, there's an increasing demand for AI systems to access the latest data from various sources, including databases and public APIs. The Model Context Protocol (MCP) has emerged as a universal, open standard for facilitating these connections. This presents an opportunity for OpenSearch to join this AI revolution by supporting MCP servers and exposing OpenSearch APIs as tools. This integration would allow diverse AI systems to interact with OpenSearch with minimal modifications.
Proposed Solutions
Since MCP is working based on JSON-RPC, so an example of
index/_mapping
API would look like below:Request
Response
We are considering two primary approaches to support MCP in OpenSearch:
Modifying OpenSearch Core:
a) Handle and parse incoming JSON-RPC requests.
b) Construct corresponding OpenSearch requests based on the JSON request body.
c) Route these requests to the appropriate OpenSearch handlers.
Developing a New OpenSearch Plugin:
a) Exposing a new port to handle JSON-RPC requests.
b) Implementing logic to dispatch these requests to various OpenSearch handlers.
Each solution has its own set of advantages and challenges, which will need to be carefully evaluated to determine the most effective implementation strategy.
For now, let's focus on discussing this proposal at a high level. If there's consensus to move forward, I will iteratively refine this RFC, incorporating more detailed low-level design.
Related component
Other
Describe alternatives you've considered
No response
Additional context
No response
The text was updated successfully, but these errors were encountered: