-
Notifications
You must be signed in to change notification settings - Fork 373
EP-685-kmcp #686
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
EP-685-kmcp #686
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR introduces an Enhancement Proposal (EP-685) for adding first-class support for kmcp (Kubernetes Model Context Protocol) in kagent. The proposal aims to improve the user experience by allowing direct use of MCPServer resources instead of requiring intermediate ToolServer resources.
- Proposes breaking API changes to upgrade Agent CRD from v1alpha1 to v1alpha2
- Introduces a new RemoteMCPServer CRD to replace ToolServer for remote connections
- Allows Agent CRD to reference MCPServer resources or Services directly
| - type: McpServer | ||
| mcpServer: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
these two lines feel redundant...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is how oneof APIs are typically done in the k8s Gateway API, and so we've followed that style, but I don't have super strong feelings. It's how other APIs we have work FWIW
| protocol: <"SSE" | "STREAMABLE_HTTP"> | ||
| timeout: 30s | ||
| url: "https://my-remote-mcp-server.example.com/mcp" | ||
| description: "My Remote MCP Server" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How to pass tokens? via headers?
linsun
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LG - thanks @EItanya!
Put a few small comments in.
|
|
||
| ``` | ||
| labels: | ||
| kagent.dev/mcp-server: "true" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I love that idea!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
indeed me 2
Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io>
Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io>
486173f to
e4cf5c6
Compare
…nya/kmcp * 'eitanya/kmcp' of github.com:kagent-dev/kagent: fix(ui): display description for agent tools when editing an agent (#692) fix(ui): correct link to switch agent from within chat (#667) EP-685-kmcp (#686) eitanya/fix-python-release (#698) feat: make streaming buffer size configurable (#696)
* EP-685-kmcp Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> * Update design/EP-685-kmcp.md Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> --------- Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> Co-authored-by: Lin Sun <lin.sun@solo.io> Signed-off-by: urizaf <urizaf@gmail.com>
* feat: implement backend for models ui Signed-off-by: urizaf-work <uri.zafrir@kaltura.com> Signed-off-by: urizaf <urizaf@gmail.com> * add missing providers so they all appear in ui Signed-off-by: urizaf-work <uri.zafrir@kaltura.com> Signed-off-by: urizaf <urizaf@gmail.com> * fix(ui): correctly display args for tool calls in chat (#688) Signed-off-by: Brian Fox <878612+onematchfox@users.noreply.github.com> Signed-off-by: urizaf <urizaf@gmail.com> * update READMEs based on new architecture (#684) * update READMEs based on new architecture Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> * PR comments Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> * Update ui/README.md --------- Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> Co-authored-by: Peter Jausovec <peterj@users.noreply.github.com> Signed-off-by: urizaf <urizaf@gmail.com> * [FIX ] - fixes adk performance tuning (#689) * - fixes adk performance tuning - dependency versions update Signed-off-by: Dmytro Rashko <dmitriy.rashko@amdocs.com> * fix VERSION in case forked repository without tags Signed-off-by: Dmytro Rashko <dmitriy.rashko@amdocs.com> * revert uv version Signed-off-by: Dmytro Rashko <dmitriy.rashko@amdocs.com> * updated golden e2e Signed-off-by: Dmytro Rashko <dmitriy.rashko@amdocs.com> * fix helm unit tests Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> --------- Signed-off-by: Dmytro Rashko <dmitriy.rashko@amdocs.com> Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> Co-authored-by: Eitan Yarmush <eitan.yarmush@solo.io> Signed-off-by: urizaf <urizaf@gmail.com> * feat: make streaming buffer size configurable (#696) * feat: make streaming buffer size configurable Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> * switch to resource quantities for buffer size Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> --------- Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> Signed-off-by: urizaf <urizaf@gmail.com> * eitanya/fix-python-release (#698) Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> Signed-off-by: urizaf <urizaf@gmail.com> * EP-685-kmcp (#686) * EP-685-kmcp Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> * Update design/EP-685-kmcp.md Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> --------- Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> Co-authored-by: Lin Sun <lin.sun@solo.io> Signed-off-by: urizaf <urizaf@gmail.com> * use the types defined in pkg/client/model.go Signed-off-by: urizaf <urizaf@gmail.com> * fix(ui): correct link to switch agent from within chat (#667) Signed-off-by: Brian Fox <878612+onematchfox@users.noreply.github.com> Co-authored-by: Peter Jausovec <peterj@users.noreply.github.com> Signed-off-by: urizaf <urizaf@gmail.com> * fix(ui): display description for agent tools when editing an agent (#692) Signed-off-by: Brian Fox <878612+onematchfox@users.noreply.github.com> Co-authored-by: Peter Jausovec <peterj@users.noreply.github.com> Signed-off-by: urizaf <urizaf@gmail.com> * fix(controller): watch secondary resources instead of updating unowned resources (#703) * fix(controller): watch secrets from agents controller Ref: https://book.kubebuilder.io/reference/watching-resources/secondary-resources-not-owned Signed-off-by: Brian Fox <878612+onematchfox@users.noreply.github.com> * fix(controller): watch memory from agents controller Signed-off-by: Brian Fox <878612+onematchfox@users.noreply.github.com> * fix(controller): watch toolservers from agents controller Signed-off-by: Brian Fox <878612+onematchfox@users.noreply.github.com> * fix(controller): watch modelconfig from agent controller Signed-off-by: Brian Fox <878612+onematchfox@users.noreply.github.com> * fix(controller): watch secrets from model config controller Agent watches ModelConfig -> ModelConfig watches Secret Signed-off-by: Brian Fox <878612+onematchfox@users.noreply.github.com> * refactor(controller): consistent error logging Signed-off-by: Brian Fox <878612+onematchfox@users.noreply.github.com> * refactor(controller): remove `reconcileAgents` This isn't needed any more - we only ever reconcile a single agent at a time now. Signed-off-by: Brian Fox <878612+onematchfox@users.noreply.github.com> * fix(controller): ensure api key secret exists for model config Signed-off-by: Brian Fox <878612+onematchfox@users.noreply.github.com> * refactor(controller): explicitly set error to nil for memory status Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Brian Fox <878612+onematchfox@users.noreply.github.com> --------- Signed-off-by: Brian Fox <878612+onematchfox@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: urizaf <urizaf@gmail.com> * change to correct Gemini icon Signed-off-by: urizaf <urizaf@gmail.com> --------- Signed-off-by: urizaf-work <uri.zafrir@kaltura.com> Signed-off-by: urizaf <urizaf@gmail.com> Signed-off-by: Brian Fox <878612+onematchfox@users.noreply.github.com> Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io> Signed-off-by: Dmytro Rashko <dmitriy.rashko@amdocs.com> Co-authored-by: urizaf-work <uri.zafrir@kaltura.com> Co-authored-by: Brian Fox <878612+onematchfox@users.noreply.github.com> Co-authored-by: Eitan Yarmush <eitan.yarmush@solo.io> Co-authored-by: Peter Jausovec <peterj@users.noreply.github.com> Co-authored-by: Dmytro Rashko <dmitriy.rashko@amdocs.com> Co-authored-by: Lin Sun <lin.sun@solo.io> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
No description provided.