Skip to content

initial commit for MCP server in OpenSearch #3781

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 10 commits into from
Apr 29, 2025

Conversation

zane-neo
Copy link
Collaborator

@zane-neo zane-neo commented Apr 26, 2025

Description

This PR is to support MCP server within OpenSearch, the feature is experimental and you'll need to enable transport-reactor-netty4 to test, for more details can refer this: https://docs.opensearch.org/docs/latest/install-and-configure/configuring-opensearch/network-settings/#selecting-the-transport

There are several experimental APIs are introduced:

POST /_plugins/_ml/mcp_tools/_register
POST /_plugins/_ml/mcp_tools/_remove
GET /_plugins/_ml/sse
POST /_plugins/_ml/sse/message

The later twos are standard MCP's sse and message APIs. An example of using these API is like below:

  1. Create tools for MCP server:
POST /_plugins/_ml/mcp_tools/_register
{
    "tools": [
        {
            "name": "PPLTool",
            "description": "Use this tool to transfer natural language to generate PPL and execute PPL to query inside. Use this tool after you know the index name, otherwise, call IndexRoutingTool first. The input parameters are: {index:IndexName, question:UserQuestion}",
            "params": {
                "model_type": "FINETUNE",
                "model_id": "${your_model_id}"
            },
            "schema": {
                "type": "object",
                "properties": {
                    "parameters": {
                        "type": "object",
                        "question": {
                            "type": "string"
                        },
                        "index": {
                            "type": "string"
                        }
                    }
                },
                "required": [
                    "question",
                    "index"
                ]
            }
        },
        {
            "name": "ListIndexTool",
            "description": "This is my first list index tool",
            "params": {},
            "schema": {
                "type": "object",
                "properties": {
                    "indices": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "OpenSearch index name list, separated by comma. for example: [\"index1\", \"index2\"], use empty array [] to list all indices in the cluster"
                    }
                },
                "additionalProperties": false
            }
        }
    ]
}

Sample response:

{
    "_ZNV5BrNTVm6ilcM7Jn1pw": {
        "created": true
    },
    "NZ9aiUCrSp2b5KBqdJGJKw": {
        "created": true
    }
}
  1. Get a connection session for current client:
GET /_plugins/_ml/sse

Sample response:

event: endpoint
data: /sse/message?sessionId=9d6aeca5-89f6-4df3-82fc-625098362198
  1. List tools in MCP server:
POST /_plugins/_ml/sse/message?sessionId=9d6aeca5-89f6-4df3-82fc-625098362198
{
  "jsonrpc": "2.0",
  "id": "1",
  "method": "tools/list"
}

Sample response:

event: message
data: {"jsonrpc":"2.0","id":"100","result":{"tools":[{"name":"ListIndexTool","description":"This is my first list index tool","inputSchema":{"type":"object","properties":{"indices":{"description":"OpenSearch index name list, separated by comma. for example: [\"index1\", \"index2\"], use empty array [] to list all indices in the cluster","type":"array","items":{"type":"string"}}},"additionalProperties":false}}]}}
  1. Execute tool in MCP server:
POST /_plugins/_ml/sse/message?sessionId=9d6aeca5-89f6-4df3-82fc-62509836219
{
    "jsonrpc": "2.0",
    "id": "2",
    "method": "tools/call",
    "params": {
        "name": "ListIndexTool",
        "arguments": {
            "input": {
                "index": ["test"]
            }
        }
    }
}

Sample response:

event: message
data: {"jsonrpc":"2.0","id":"110","result":{"content":[{"type":"text","text":"row,health,status,index,uuid,pri(number of primary shards),rep(number of replica shards),docs.count(number of available documents),docs.deleted(number of deleted documents),store.size(store size of primary and replica shards),pri.store.size(store size of primary shards)\n1,green,open,.plugins-ml-config,2E1HgTkGS1-jwEYlyfd0og,1,0,1,0,4kb,4kb\n2,green,open,top_queries-2025.04.25-51488,I6BkcS5kSrOfh7Lgi4IcDg,1,0,28,12,138.9kb,138.9kb\n3,green,open,.opendistro_security,VSZdbnKYRKmvnmihS5TJ9Q,1,0,9,0,77.8kb,77.8kb\n"}],"isError":false}}
  1. Remove tools in MCP server:
POST /_plugins/_ml/mcp_tools/_remove
[
    "ListIndexTool", "PPLTool"
]

Sample response:

{
    "_ZNV5BrNTVm6ilcM7Jn1pw": {
        "removed": true
    },
    "NZ9aiUCrSp2b5KBqdJGJKw": {
        "removed": true
    }
}

A example project that uses MCP client to connect to MCP server in OpenSearch can be found here: https://github.com/zane-neo/opensearch-mcpserver-test-example

Related Issues

opensearch-project/OpenSearch#17577

Check List

  • New functionality includes testing.
  • New functionality has been documented.
  • API changes companion pull request created.
  • Commits are signed per the DCO using --signoff.
  • Public documentation issue/PR created.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@zane-neo zane-neo force-pushed the support-mcp-server branch from 7a33e9c to 3e7065b Compare April 26, 2025 06:21
Signed-off-by: zane-neo <[email protected]>
Signed-off-by: zane-neo <[email protected]>
@opensearch-trigger-bot
Copy link
Contributor

The backport to 3.0 failed:

The process '/usr/bin/git' failed with exit code 1

To backport manually, run these commands in your terminal:

# Fetch latest updates from GitHub
git fetch
# Create a new working tree
git worktree add .worktrees/backport-3.0 3.0
# Navigate to the new working tree
cd .worktrees/backport-3.0
# Create a new branch
git switch --create backport/backport-3781-to-3.0
# Cherry-pick the merged commit of this pull request and resolve the conflicts
git cherry-pick -x --mainline 1 9b0294d905ad2fb7f1526194241f3591c8a057a3
# Push it to GitHub
git push --set-upstream origin backport/backport-3781-to-3.0
# Go back to the original working tree
cd ../..
# Delete the working tree
git worktree remove .worktrees/backport-3.0

Then, create a pull request where the base branch is 3.0 and the compare/head branch is backport/backport-3781-to-3.0.

@mingshl
Copy link
Collaborator

mingshl commented Apr 29, 2025

If this is targeting 3.0 please add backport 3.0 label @zane-neo

zane-neo added a commit to zane-neo/ml-commons that referenced this pull request Apr 29, 2025
* initial commit for MCP server in OpenSearch

Signed-off-by: zane-neo <[email protected]>

* Make change to support register or remove tools across cluster

Signed-off-by: zane-neo <[email protected]>

* format code

Signed-off-by: zane-neo <[email protected]>

* fix UT failure caused by code change

Signed-off-by: zane-neo <[email protected]>

* format code

Signed-off-by: zane-neo <[email protected]>

* format code

Signed-off-by: zane-neo <[email protected]>

* add license header

Signed-off-by: zane-neo <[email protected]>

* fix notifications initialized not respond issue

Signed-off-by: zane-neo <[email protected]>

* fix minor issues and add UTs

Signed-off-by: zane-neo <[email protected]>

* Add more UTs

Signed-off-by: zane-neo <[email protected]>

---------

Signed-off-by: zane-neo <[email protected]>
(cherry picked from commit 9b0294d)
@jngz-es
Copy link
Collaborator

jngz-es commented Apr 29, 2025

One more high level question.
Did you try do a load test on the execute tool api? I strongly suggest you to do a little bit.
As I mentioned above, your server logic is in rest handler RestMcpConnectionMessageStreamingAction, not through transport call. If my understanding is correct, mcp tools call would use netty thread which would block other incoming rest requests. Usually rest handler should be light-weight, I recommend to use another thread pool as what I did for model inference streaming, https://github.com/jngz-es/ml-commons/blob/7b7e0b16ceeeafe67eb42e752ca5b37a78e3bf90/ml-algorithms/src/main/java/org/opensearch/ml/engine/algorithms/remote/HttpJsonConnectorExecutor.java#L191.

opensearch-trigger-bot bot pushed a commit that referenced this pull request Apr 29, 2025
* initial commit for MCP server in OpenSearch

Signed-off-by: zane-neo <[email protected]>

* Make change to support register or remove tools across cluster

Signed-off-by: zane-neo <[email protected]>

* format code

Signed-off-by: zane-neo <[email protected]>

* fix UT failure caused by code change

Signed-off-by: zane-neo <[email protected]>

* format code

Signed-off-by: zane-neo <[email protected]>

* format code

Signed-off-by: zane-neo <[email protected]>

* add license header

Signed-off-by: zane-neo <[email protected]>

* fix notifications initialized not respond issue

Signed-off-by: zane-neo <[email protected]>

* fix minor issues and add UTs

Signed-off-by: zane-neo <[email protected]>

* Add more UTs

Signed-off-by: zane-neo <[email protected]>

---------

Signed-off-by: zane-neo <[email protected]>
(cherry picked from commit 9b0294d)
@ylwu-amzn
Copy link
Collaborator

Add cluster setting to enable/disable this feature

@zane-neo
Copy link
Collaborator Author

One more high level question. Did you try do a load test on the execute tool api? I strongly suggest you to do a little bit. As I mentioned above, your server logic is in rest handler RestMcpConnectionMessageStreamingAction, not through transport call. If my understanding is correct, mcp tools call would use netty thread which would block other incoming rest requests. Usually rest handler should be light-weight, I recommend to use another thread pool as what I did for model inference streaming, https://github.com/jngz-es/ml-commons/blob/7b7e0b16ceeeafe67eb42e752ca5b37a78e3bf90/ml-algorithms/src/main/java/org/opensearch/ml/engine/algorithms/remote/HttpJsonConnectorExecutor.java#L191.

@jngz-es, if there are any blocking operations either in rest handler or in transport handler, it'll block the transport_worker threads which are the NIO threads of netty which indeed can cause serious problems, but if you check the code here: https://github.com/opensearch-project/ml-commons/pull/3781/files#diff-5efd0e0dcc84b1e4e115cbb4f4dda4c812bfd5e1ae8317056a99c7fa3b92e861R127-R135 which is where the tools executed, they're been executed in a non-blocking fashion(using action listener), so it seems fine in the performance perspective. Anyway I'll do a performance test for this once I complete the following bug fixes, thanks!

@ylwu-amzn
Copy link
Collaborator

Use _plugins/_ml/mcp as URL prefix for all MCP related APIs

zane-neo added a commit to zane-neo/ml-commons that referenced this pull request Apr 29, 2025
* initial commit for MCP server in OpenSearch

Signed-off-by: zane-neo <[email protected]>

* Make change to support register or remove tools across cluster

Signed-off-by: zane-neo <[email protected]>

* format code

Signed-off-by: zane-neo <[email protected]>

* fix UT failure caused by code change

Signed-off-by: zane-neo <[email protected]>

* format code

Signed-off-by: zane-neo <[email protected]>

* format code

Signed-off-by: zane-neo <[email protected]>

* add license header

Signed-off-by: zane-neo <[email protected]>

* fix notifications initialized not respond issue

Signed-off-by: zane-neo <[email protected]>

* fix minor issues and add UTs

Signed-off-by: zane-neo <[email protected]>

* Add more UTs

Signed-off-by: zane-neo <[email protected]>

---------

Signed-off-by: zane-neo <[email protected]>
(cherry picked from commit 9b0294d)
zane-neo added a commit that referenced this pull request Apr 29, 2025
* initial commit for MCP server in OpenSearch



* Make change to support register or remove tools across cluster



* format code



* fix UT failure caused by code change



* format code



* format code



* add license header



* fix notifications initialized not respond issue



* fix minor issues and add UTs



* Add more UTs



---------


(cherry picked from commit 9b0294d)

Signed-off-by: zane-neo <[email protected]>
Co-authored-by: zane-neo <[email protected]>
@ylwu-amzn ylwu-amzn mentioned this pull request Apr 29, 2025
5 tasks
zane-neo added a commit to zane-neo/ml-commons that referenced this pull request Apr 30, 2025
zane-neo added a commit that referenced this pull request Apr 30, 2025
* support MCP session management

Signed-off-by: zane-neo <[email protected]>

* Addressing comments

Signed-off-by: zane-neo <[email protected]>

* add feature flag for mcp server and renaming mcp connector feature flag

Signed-off-by: zane-neo <[email protected]>

* Address critical comments in #3781

Signed-off-by: zane-neo <[email protected]>

---------

Signed-off-by: zane-neo <[email protected]>
opensearch-trigger-bot bot pushed a commit that referenced this pull request Apr 30, 2025
* support MCP session management

Signed-off-by: zane-neo <[email protected]>

* Addressing comments

Signed-off-by: zane-neo <[email protected]>

* add feature flag for mcp server and renaming mcp connector feature flag

Signed-off-by: zane-neo <[email protected]>

* Address critical comments in #3781

Signed-off-by: zane-neo <[email protected]>

---------

Signed-off-by: zane-neo <[email protected]>
(cherry picked from commit 7c05295)
zane-neo added a commit that referenced this pull request Apr 30, 2025
* support MCP session management



* Addressing comments



* add feature flag for mcp server and renaming mcp connector feature flag



* Address critical comments in #3781



---------


(cherry picked from commit 7c05295)

Signed-off-by: zane-neo <[email protected]>
Co-authored-by: zane-neo <[email protected]>
@zane-neo
Copy link
Collaborator Author

Few High Level Questions about this:

  1. Do we need experimental streaming feature in core for this to work (I could not make it work by cloning)
  2. I think the server Endpoint should be /_plugins/_ml/mcp because only /sse seems generic.
  3. Generally when we initialize an MCP client using MCP SDK, we need to provide the URL.
    The SDK internally does these things:
  • GET {url}/sse to get the sessionID and the message endpoint like: /messages/?session_id=c381902fafd3436295cd07df156498d2
  • Next, the client performs the POST call to initialize the connection: {url}/messages/?session_id=c381902fafd3436295cd07df156498d2
  • 3rd initialization step and tool calls follow.

But in the code I see that we have these URLs:

  • GET /_plugins/_ml/sse
  • POST /_plugins/_ml/sse/message?sessionId=9d6aeca5-89f6-4df3-82fc-625098362198

Perhaps we do not need /sse in messages endpoint.

I took a look on java client and python client and there are discrepancy between them:
java client connect: https://github.com/modelcontextprotocol/java-sdk/blob/0.9.x/mcp/src/main/java/io/modelcontextprotocol/client/transport/HttpClientSseClientTransport.java#L343
java client message: https://github.com/modelcontextprotocol/java-sdk/blob/0.9.x/mcp/src/main/java/io/modelcontextprotocol/client/transport/HttpClientSseClientTransport.java#L415

So in java client you specifies a baseUri, e.g. http://localhost:8000 and it will be concatenated with default /sse or the message endpoint returned /see/message?sessionId=xxx.

python client connect: https://github.com/modelcontextprotocol/python-sdk/blob/main/src/mcp/client/sse.py#L47
python client message: https://github.com/modelcontextprotocol/python-sdk/blob/main/src/mcp/client/sse.py#L64

So in python client the url is a SSE url, e.g. http://localhost:8000/sse, and the message endpoint will be the concatenated with the message uri returned by server, e.g. /message?sessionId=xxx

So the common pattern is: /sse for sse endpoint and /sse/message for message endpoint. I'll add an extra parameter in the /sse endpoint to let user control which type of uri should return, also we should bring this up in MCP community to let them know the issue.

zane-neo added a commit to zane-neo/ml-commons that referenced this pull request Apr 30, 2025
dhrubo-os added a commit that referenced this pull request May 8, 2025
* [BUG] Agent Framework: Handle model response when toolUse is not accompanied by text (#3755)

* fix: handle model response when toolUse is not accompanied by text

Signed-off-by: Pavan Yekbote <[email protected]>

* feat: add test case for parseLLMOutput

Signed-off-by: Pavan Yekbote <[email protected]>

---------

Signed-off-by: Pavan Yekbote <[email protected]>

* [BUG] Allow user to control react agent max_interations value to prevent empty response (#3756)

* fix: expose max_iteration for react

Signed-off-by: Pavan Yekbote <[email protected]>

* fix: defaults for agent execution and differentiate between step and step result

Signed-off-by: Pavan Yekbote <[email protected]>

* fix: return react agent id in agent response to expose more details

Signed-off-by: Pavan Yekbote <[email protected]>

* spotless

Signed-off-by: Pavan Yekbote <[email protected]>

* fix: remove test prompt from react system prompt

Signed-off-by: Pavan Yekbote <[email protected]>

* refactor: rename parameters exposed to user to executor

Signed-off-by: Pavan Yekbote <[email protected]>

* fix: give user complete control over planner system prompt

Signed-off-by: Pavan Yekbote <[email protected]>

---------

Signed-off-by: Pavan Yekbote <[email protected]>

* Clean up JSM from MCP (#3773)

Signed-off-by: rithin-pullela-aws <[email protected]>

* [Bug] ListTools call does not return tool attributes (#3785)

* initial commit for MCP server in OpenSearch (#3781)

* initial commit for MCP server in OpenSearch

Signed-off-by: zane-neo <[email protected]>

* Make change to support register or remove tools across cluster

Signed-off-by: zane-neo <[email protected]>

* format code

Signed-off-by: zane-neo <[email protected]>

* fix UT failure caused by code change

Signed-off-by: zane-neo <[email protected]>

* format code

Signed-off-by: zane-neo <[email protected]>

* format code

Signed-off-by: zane-neo <[email protected]>

* add license header

Signed-off-by: zane-neo <[email protected]>

* fix notifications initialized not respond issue

Signed-off-by: zane-neo <[email protected]>

* fix minor issues and add UTs

Signed-off-by: zane-neo <[email protected]>

* Add more UTs

Signed-off-by: zane-neo <[email protected]>

---------

Signed-off-by: zane-neo <[email protected]>

* Remove beta1 qualifier (#3794) (#3795)

(cherry picked from commit 3f503f1)

Signed-off-by: Peter Zhu <[email protected]>
Co-authored-by: Peter Zhu <[email protected]>

* [AUTO] Increment version to 3.1.0-SNAPSHOT (#3789)

* Increment version to 3.1.0-SNAPSHOT

Signed-off-by: opensearch-ci-bot <[email protected]>

* Update build.gradle

Signed-off-by: Peter Zhu <[email protected]>

---------

Signed-off-by: opensearch-ci-bot <[email protected]>
Signed-off-by: Peter Zhu <[email protected]>
Co-authored-by: opensearch-ci-bot <[email protected]>
Co-authored-by: Peter Zhu <[email protected]>

* add release note for 3.0 (#3792)

Signed-off-by: Mingshi Liu <[email protected]>

* support MCP session management (#3803)

* support MCP session management

Signed-off-by: zane-neo <[email protected]>

* Addressing comments

Signed-off-by: zane-neo <[email protected]>

* add feature flag for mcp server and renaming mcp connector feature flag

Signed-off-by: zane-neo <[email protected]>

* Address critical comments in #3781

Signed-off-by: zane-neo <[email protected]>

---------

Signed-off-by: zane-neo <[email protected]>

* upgrade http client to version align with core (#3809)

* upgrade http client to versoin align with core

Signed-off-by: zane-neo <[email protected]>

* upgrade httpclient-h2 to correct versiono

Signed-off-by: zane-neo <[email protected]>

* use placeholder approach

Signed-off-by: zane-neo <[email protected]>

---------

Signed-off-by: zane-neo <[email protected]>

* support customized message endpoint and addressing comments (#3810)

* support customized message endpoint and addressing comments

Signed-off-by: zane-neo <[email protected]>

* fix UT failures

Signed-off-by: zane-neo <[email protected]>

* add files to jacoco exception

Signed-off-by: zane-neo <[email protected]>

* fix tool name issue and optimize register tool api

Signed-off-by: zane-neo <[email protected]>

* fix schema not parsed correctly issue and NPE when parameters is null

Signed-off-by: zane-neo <[email protected]>

* fix failure UT

Signed-off-by: zane-neo <[email protected]>

---------

Signed-off-by: zane-neo <[email protected]>

* excluding circuit breaker for Agent (#3814)

Signed-off-by: Dhrubo Saha <[email protected]>

* change release note (#3811)

* change release note

Signed-off-by: zane-neo <[email protected]>

* Update opensearch-ml-common.release-notes-3.0.0.0.md

* Update opensearch-ml-common.release-notes-3.0.0.0.md

* Update opensearch-ml-common.release-notes-3.0.0.0.md

---------

Signed-off-by: zane-neo <[email protected]>
Co-authored-by: Peter Zhu <[email protected]>

* Downgrade MCP version to 0.9 (#3821)

Signed-off-by: rithin-pullela-aws <[email protected]>

* remove libs folder (#3824)

Signed-off-by: Yaliang Wu <[email protected]>

* add more logging to deploy/undeploy flows for better debugging (#3825)

* add more logging to deploy/undeploy flows for better debugging

Signed-off-by: Bhavana Goud Ramaram <[email protected]>

* Fix python client not able to connect to MCP server issue (#3822)

Signed-off-by: zane-neo <[email protected]>
Co-authored-by: Dhrubo Saha <[email protected]>

* exclude trusted connector check for hidden model (#3838)

Signed-off-by: Dhrubo Saha <[email protected]>

* adding tenantId to the connector executor when this is inline connector (#3837)

* adding tenantId to the connector executor when this is inline connector

Signed-off-by: Dhrubo Saha <[email protected]>

* added more unit tests

Signed-off-by: Dhrubo Saha <[email protected]>

---------

Signed-off-by: Dhrubo Saha <[email protected]>

---------

Signed-off-by: Pavan Yekbote <[email protected]>
Signed-off-by: rithin-pullela-aws <[email protected]>
Signed-off-by: zane-neo <[email protected]>
Signed-off-by: Peter Zhu <[email protected]>
Signed-off-by: opensearch-ci-bot <[email protected]>
Signed-off-by: Mingshi Liu <[email protected]>
Signed-off-by: Dhrubo Saha <[email protected]>
Signed-off-by: Yaliang Wu <[email protected]>
Signed-off-by: Bhavana Goud Ramaram <[email protected]>
Co-authored-by: Pavan Yekbote <[email protected]>
Co-authored-by: Rithin Pullela <[email protected]>
Co-authored-by: zane-neo <[email protected]>
Co-authored-by: opensearch-trigger-bot[bot] <98922864+opensearch-trigger-bot[bot]@users.noreply.github.com>
Co-authored-by: Peter Zhu <[email protected]>
Co-authored-by: opensearch-ci-bot <[email protected]>
Co-authored-by: Mingshi Liu <[email protected]>
Co-authored-by: Yaliang Wu <[email protected]>
Co-authored-by: Bhavana Goud Ramaram <[email protected]>
rcho93 pushed a commit to rcho93/ml-commons that referenced this pull request May 9, 2025
* initial commit for MCP server in OpenSearch

Signed-off-by: zane-neo <[email protected]>

* Make change to support register or remove tools across cluster

Signed-off-by: zane-neo <[email protected]>

* format code

Signed-off-by: zane-neo <[email protected]>

* fix UT failure caused by code change

Signed-off-by: zane-neo <[email protected]>

* format code

Signed-off-by: zane-neo <[email protected]>

* format code

Signed-off-by: zane-neo <[email protected]>

* add license header

Signed-off-by: zane-neo <[email protected]>

* fix notifications initialized not respond issue

Signed-off-by: zane-neo <[email protected]>

* fix minor issues and add UTs

Signed-off-by: zane-neo <[email protected]>

* Add more UTs

Signed-off-by: zane-neo <[email protected]>

---------

Signed-off-by: zane-neo <[email protected]>
rcho93 pushed a commit to rcho93/ml-commons that referenced this pull request May 9, 2025
* support MCP session management

Signed-off-by: zane-neo <[email protected]>

* Addressing comments

Signed-off-by: zane-neo <[email protected]>

* add feature flag for mcp server and renaming mcp connector feature flag

Signed-off-by: zane-neo <[email protected]>

* Address critical comments in opensearch-project#3781

Signed-off-by: zane-neo <[email protected]>

---------

Signed-off-by: zane-neo <[email protected]>
dhrubo-os pushed a commit that referenced this pull request May 12, 2025
* initial commit for MCP server in OpenSearch (#3781)

* initial commit for MCP server in OpenSearch

Signed-off-by: zane-neo <[email protected]>

* Make change to support register or remove tools across cluster

Signed-off-by: zane-neo <[email protected]>

* format code

Signed-off-by: zane-neo <[email protected]>

* fix UT failure caused by code change

Signed-off-by: zane-neo <[email protected]>

* format code

Signed-off-by: zane-neo <[email protected]>

* format code

Signed-off-by: zane-neo <[email protected]>

* add license header

Signed-off-by: zane-neo <[email protected]>

* fix notifications initialized not respond issue

Signed-off-by: zane-neo <[email protected]>

* fix minor issues and add UTs

Signed-off-by: zane-neo <[email protected]>

* Add more UTs

Signed-off-by: zane-neo <[email protected]>

---------

Signed-off-by: zane-neo <[email protected]>

* support MCP session management (#3803)

* support MCP session management

Signed-off-by: zane-neo <[email protected]>

* Addressing comments

Signed-off-by: zane-neo <[email protected]>

* add feature flag for mcp server and renaming mcp connector feature flag

Signed-off-by: zane-neo <[email protected]>

* Address critical comments in #3781

Signed-off-by: zane-neo <[email protected]>

---------

Signed-off-by: zane-neo <[email protected]>

* Create prompt API & System Index for prompt

Signed-off-by: seungwon cho <[email protected]>

* spotless is applied & disabled wildcard import

Signed-off-by: seungwon cho <[email protected]>

* javadoc added & header added & minor code errors fixed

Signed-off-by: seungwon cho <[email protected]>

* Apply spotless

Signed-off-by: seungwon cho <[email protected]>

* apply spotless

Signed-off-by: seungwon cho <[email protected]>

* addressed comments

Signed-off-by: seungwon cho <[email protected]>

* apply spotless

Signed-off-by: seungwon cho <[email protected]>

* addresses comments

Signed-off-by: seungwon cho <[email protected]>

* apply spotless

Signed-off-by: seungwon cho <[email protected]>

* addressed comments

Signed-off-by: seungwon cho <[email protected]>

* solve gradle build issue

Signed-off-by: seungwon cho <[email protected]>

* add test cases for create-api

Signed-off-by: seungwon cho <[email protected]>

* fix javadoc test case failure

Signed-off-by: seungwon cho <[email protected]>

* fix javadoc error

Signed-off-by: seungwon cho <[email protected]>

* fix guava noclass issue

Signed-off-by: seungwon cho <[email protected]>

* fix jacocoTestCoverageVerification fail

Signed-off-by: seungwon cho <[email protected]>

* improve test coverages

Signed-off-by: seungwon cho <[email protected]>

---------

Signed-off-by: zane-neo <[email protected]>
Signed-off-by: seungwon cho <[email protected]>
Co-authored-by: zane-neo <[email protected]>
akolarkunnu pushed a commit to akolarkunnu/ml-commons that referenced this pull request Jun 6, 2025
* initial commit for MCP server in OpenSearch

Signed-off-by: zane-neo <[email protected]>

* Make change to support register or remove tools across cluster

Signed-off-by: zane-neo <[email protected]>

* format code

Signed-off-by: zane-neo <[email protected]>

* fix UT failure caused by code change

Signed-off-by: zane-neo <[email protected]>

* format code

Signed-off-by: zane-neo <[email protected]>

* format code

Signed-off-by: zane-neo <[email protected]>

* add license header

Signed-off-by: zane-neo <[email protected]>

* fix notifications initialized not respond issue

Signed-off-by: zane-neo <[email protected]>

* fix minor issues and add UTs

Signed-off-by: zane-neo <[email protected]>

* Add more UTs

Signed-off-by: zane-neo <[email protected]>

---------

Signed-off-by: zane-neo <[email protected]>
Signed-off-by: Abdul Muneer Kolarkunnu <[email protected]>
akolarkunnu pushed a commit to akolarkunnu/ml-commons that referenced this pull request Jun 6, 2025
* support MCP session management

Signed-off-by: zane-neo <[email protected]>

* Addressing comments

Signed-off-by: zane-neo <[email protected]>

* add feature flag for mcp server and renaming mcp connector feature flag

Signed-off-by: zane-neo <[email protected]>

* Address critical comments in opensearch-project#3781

Signed-off-by: zane-neo <[email protected]>

---------

Signed-off-by: zane-neo <[email protected]>
Signed-off-by: Abdul Muneer Kolarkunnu <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants