feat: Implement MCP (Model Context Protocol) resource and controller with RBAC roles#12
Merged
feat: Implement MCP (Model Context Protocol) resource and controller with RBAC roles#12
Conversation
…with RBAC roles Signed-off-by: Eden Reich <eden.reich@gmail.com>
Would be cool to just have a side-car container that ensures those STDIO MCP servers can also support SSE or any streamable HTTP. Some MCPs supports only STDIO. which makes it complex to connect to in a containerized environment. Meaning you would normally have to create a custom bridge (web server) that sends a command to the internal process - not ideal, but it-is what it-is. Signed-off-by: Eden Reich <eden.reich@gmail.com>
I'm not going to host those servers registry, I think it would be easier to just use the existing ones. Signed-off-by: Eden Reich <eden.reich@gmail.com>
Signed-off-by: Eden Reich <eden.reich@gmail.com>
… specifications Signed-off-by: Eden Reich <eden.reich@gmail.com>
- Introduced HPA configuration under the MCP server spec, allowing for dynamic scaling based on defined metrics. - Added properties for scaling behavior, including scaleUp and scaleDown policies, stabilization windows, and metrics specifications. - Updated image and replicas fields to provide defaults and descriptions for better clarity. - Removed deprecated ingress configuration and replaced it with HPA-specific settings to streamline deployment management. Signed-off-by: Eden Reich <eden.reich@gmail.com>
I think I should stick to standard MCP using node life time support server, and if the user wants they can configure their own container image, this allows more flexibility. Depending on what's configured option is used the package will take precedence over the image. Signed-off-by: Eden Reich <eden.reich@gmail.com>
… then will switch to custom MCPs Signed-off-by: Eden Reich <eden.reich@gmail.com>
I think ingress doesn't make a lot of sense in the context of MCP, normally those are server you would like to run internally. I don't think there is a use-case to expose it to the outside world. Signed-off-by: Eden Reich <eden.reich@gmail.com>
Signed-off-by: Eden Reich <eden.reich@gmail.com>
Signed-off-by: Eden Reich <eden.reich@gmail.com>
Signed-off-by: Eden Reich <eden.reich@gmail.com>
Building a generic bridge for all Stdio servers is too complex. I'll just create a registry for MCP servers written in golang so people can pull them. Will add the essential ones like filesystem context7. Just need to build those containers and push them to registry so it's possible to pull them and run them as a streamable http that supports also https. I think the default npx -y with the modelcontext protocol lake of production settings. Signed-off-by: Eden Reich <eden.reich@gmail.com>
- Refactored MCP controller tests to use DescribeTable for better organization and readability. - Added additional test cases for various reconciliation scenarios, including handling of HPA and service reconciliation. - Updated CRD definitions to include additional printer columns for MCP resources, displaying the URL of the MCP server and the resource age. - Modified the schema to support an array type for the command field in the MCP spec. - Added a new field in the status to store the URL of the MCP server. Signed-off-by: Eden Reich <eden.reich@gmail.com>
Signed-off-by: Eden Reich <eden.reich@gmail.com>
Contributor
|
🎉 This PR is included in version 0.9.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This pull request implements the Model Context Protocol (MCP) resource and controller in the Inference Gateway project. It's just an initial scaffolding, and possibly a draft implementation, would surely be changed after merge.