Skip to content

Conversation

@EItanya
Copy link
Contributor

@EItanya EItanya commented Aug 4, 2025

No description provided.

Copilot AI review requested due to automatic review settings August 4, 2025 20:27
@github-actions github-actions bot added the enhancement-proposal Indicates that this PR is for an enhancement proposal label Aug 4, 2025
Copy link
Contributor

Copilot AI left a 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

Comment on lines +133 to +134
- type: McpServer
mcpServer:
Copy link
Collaborator

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...

Copy link
Contributor Author

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"
Copy link
Collaborator

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?

Copy link
Collaborator

@linsun linsun left a 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"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I love that idea!

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

indeed me 2

EItanya and others added 2 commits August 6, 2025 16:33
Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io>
Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io>
@EItanya EItanya force-pushed the eitanya/EP-685-kmcp branch from 486173f to e4cf5c6 Compare August 6, 2025 16:35
@EItanya EItanya merged commit b90ac74 into main Aug 6, 2025
2 checks passed
@EItanya EItanya deleted the eitanya/EP-685-kmcp branch August 6, 2025 16:37
peterj added a commit that referenced this pull request Aug 7, 2025
…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)
UriZafrir pushed a commit to UriZafrir/kagent that referenced this pull request Aug 7, 2025
* 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>
peterj added a commit that referenced this pull request Aug 8, 2025
* 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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement-proposal Indicates that this PR is for an enhancement proposal

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants