-
Notifications
You must be signed in to change notification settings - Fork 2
Proposal for donating streamshub-mcp to Strimzi org #11
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
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,66 @@ | ||
| # Donation of streamshub-mcp to the Strimzi Organization | ||
|
|
||
| This proposal seeks formal agreement from StreamsHub to donate the [streamshub-mcp](https://github.com/streamshub/streamshub-mcp) repository to the [Strimzi](https://github.com/strimzi) organization. | ||
|
|
||
| ## Current situation | ||
|
|
||
| The streamshub-mcp project was created under the StreamsHub organization as described in [proposal 002](./002-streamshub-mcp-strimzi.md). | ||
| It provides a Model Context Protocol (MCP) server for managing and troubleshooting Strimzi-managed Apache Kafka clusters. | ||
| The repository contains the Strimzi MCP server application along with shared modules (`common`, `metrics-prometheus`, `loki-log-provider`). | ||
|
|
||
| ## Motivation | ||
|
|
||
| - The Strimzi community has expressed interest in adopting the MCP server as part of the Strimzi ecosystem. | ||
| - The MCP server is Strimzi-specific tooling — hosting it under the Strimzi organization provides better alignment with its primary domain. | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Its Strimzi specific right now, but that was only ever supposed to be the starting point. Like you say below, we were planning to add Kafka in the near future and potentially targeting other tools in future. How will this donation effect the ability to integrate with other tools and provide a joined up solution for users of out stack?
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. That's more question for upcoming Strimzi proposals. However, the common parts (common module, metrics-prometheus and logs-loki modules) will be released to maven central so Kafka MCP can use it and it doesn't matter where it will be hosted. I would like to have Kafka MCP next to Strimzi one as it will provide additional information that Strimzi will not collect through Kafka Admin API. I think this Kafka MCP server could be run also as a standalone application, not just on OpenShift (similar to Kafka Bridge). |
||
| - Moving the project under Strimzi opens it to a broader contributor base and tighter integration with Strimzi's development and release processes. | ||
|
|
||
| ## Proposal | ||
|
|
||
| The entire `streamshub-mcp` repository, including all modules (`common`, `metrics-prometheus`, `loki-log-provider`, `strimzi-mcp`, `systemtest`), will be transferred to the Strimzi GitHub organization. | ||
|
|
||
| The donation is subject to the following conditions: | ||
|
|
||
| ### Availability | ||
|
|
||
| All released components of MCP servers within Strimzi org has to be publicly available. | ||
| The destination may differ based on what Strimzi will be using for their artifacts (`quay.io` vs `ghcr.io` for example), but it has to be available for anyone. | ||
| Any upcoming features, improvements, or code changes has to be public as well. | ||
|
|
||
| ### Write access | ||
|
|
||
| David Kornel must be granted component owner to the donated repository. | ||
| Jakub Stejskal is already a Strimzi maintainer and requires no additional access. | ||
|
|
||
| ### Modules reusability | ||
|
|
||
| The following modules - `streamshub-mcp-common`, `metrics-prometheus`, `loki-log-provider` - must be published to Maven Central so that modules can be used by external consumers without needing to build from source or fork the Strimzi repository. | ||
|
|
||
| ### Pluggable interfaces | ||
|
|
||
| The following pluggable interfaces must remain as extensible SPI/CDI contracts, allowing alternative implementations to be provided without forking: | ||
|
|
||
| - **Metrics** — `MetricsProvider` interface with provider selection via `mcp.metrics.provider` configuration. | ||
| - **Logs** — `LogCollectorProvider` interface with provider selection via `mcp.log.provider` configuration. | ||
|
Comment on lines
+42
to
+43
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'm not familiar enough with specifically these do, but quickly looking at them I wonder if these metrics and log collector interfaces/providers would be good candidates as their own stand-alone components? I suppose that would complicate the process of moving the MCP server though.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. interfaces are part of common module, and both providers are planned to be released as standalone packages. I think it is written few lines forward.
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes, we just do not plan to have them in separated repository for now, but this might change in the future. |
||
| - **Auth** — currently not implemented, but users has to have option to replace auth & authz mechanism with their own implementation. | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. On the AuthZ front, I was hoping we could standardise on a common Authorizer API for our components (potentially the one provided by Kroxylicious - details in #5). The reason I bring that up is that, subject to my upcoming proposal on this, it would be good to have the StreamsHub MCP use this API (whatever it ends up being) so it can be integrated easily with all the other StreamsHub components. I worry that once it is donated to Strimzi, it might be hard to get a unified AuthZ approach (that aligns with StreamsHub's goals) included. To put it frankly, it would be easier if we made those changes before we donated, so they are baked in. Maybe this is not such an issue for the Strimzi MCP (as it uses K8s RBAC for AuthZ) but it would be for the Kafka and other potential MCPs. Indeed, that might be an argument for developing them in StreamsHub rather than Strimzi.
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This might be a valid concern, but as long as the Authorizer API will be in separated module with zero external dependencies as it stated in the issue, I do not see it as a big problem to use it even after moving MCP to Strimzi. We have couple of options:
Even for Strimzi MCP we will probably need it at some point, because from my POV we will need to implement Kubernetes impersonation and make it able to work together with external oauth servers like Keycloak. So the question is if we want to stop it for not sure how long or simply move the code, benefit from wider Strimzi community and possibly direct Strimzi integration.
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This can be also stated in the Strimzi proposal that we would like to adopt Authorizer API interface at some point. |
||
| - **Guardrails** — `GuardrailFilter` interface for request/response filtering (input validation, rate limiting, log redaction, response size limits). | ||
|
|
||
| ### Kafka MCP server | ||
|
|
||
| There is a plan to develop a Kafka MCP server providing direct access to Apache Kafka internals (topics, consumer groups, broker configuration). | ||
| Whether this server will live alongside the Strimzi MCP server in the donated repository or remain in StreamsHub will be subject to further discussion with the Strimzi community. | ||
|
|
||
| ## Affected/not affected projects | ||
|
|
||
| ### Affected | ||
|
|
||
| - [streamshub-mcp](https://github.com/streamshub/streamshub-mcp) — transferred to the Strimzi organization. | ||
| - [streamshub-site](https://github.com/streamshub/streamshub-site) - all upcoming releases will be done in Strimzi org and release page will be eventually hosted on Strimzi website. | ||
|
|
||
| ### Not affected | ||
|
|
||
| - All other StreamsHub projects remain unchanged. | ||
|
|
||
| ## Compatibility | ||
|
|
||
| Existing users of the MCP server are not affected. | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. At all? Won't the image addresses and package names change?
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Well yes, they will need to update at some point to newer images with different paths where packages will be named differently. I didn't consider this as a problem, but I am happy to mention it there. Do you have any specific parts that should be mentioned? |
||
| The MCP protocol contract and Kubernetes API interactions remain the same regardless of which GitHub organization hosts the source code. | ||
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.
Do you have any links to issues/comments/discussions for this interest?
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.
There was discussion directly on StrimziCon where we had a presentation about MCP.
Then there are few messages on Strimzi slack
https://cloud-native.slack.com/archives/CMH3Q3SNP/p1781587329036659?thread_ts=1781263622.033449&cid=CMH3Q3SNP
https://cloud-native.slack.com/archives/CMH3Q3SNP/p1785425543644589
Also there were discussions between Strimzi maintainers around MCP server.