Use rhobs/obs-mcp toolset for Prometheus/Alertmanager (replaces observability mcp)#124
Use rhobs/obs-mcp toolset for Prometheus/Alertmanager (replaces observability mcp)#124saswatamcode wants to merge 6 commits intoopenshift:mainfrom
Conversation
|
Skipping CI for Draft Pull Request. |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: saswatamcode The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
For anyone looking at this, here's the counterpart on obs-mcp rhobs/obs-mcp#20 |
bbdc604 to
e64d417
Compare
| defaultConfig := StaticConfig{ | ||
| ListOutput: "table", | ||
| Toolsets: []string{"core", "config", "helm", "observability"}, | ||
| Toolsets: []string{"core", "config", "helm", "obs-mcp"}, |
There was a problem hiding this comment.
I think for now we should just stick to the defaults. from upstream.
added a comment to the original PR 😅
(see https://github.com/openshift/openshift-mcp-server/pull/117/changes#r2848280038)
There was a problem hiding this comment.
Ok removed it from here, so it is no longer enabled by default
There was a problem hiding this comment.
Is there some idea/plan how OpenShift LightSpeed user can enable/configure toolsets?
| _ "github.com/containers/kubernetes-mcp-server/pkg/toolsets/kiali" | ||
| _ "github.com/containers/kubernetes-mcp-server/pkg/toolsets/kubevirt" | ||
| _ "github.com/containers/kubernetes-mcp-server/pkg/toolsets/observability" | ||
| _ "github.com/rhobs/obs-mcp/pkg/toolset" |
There was a problem hiding this comment.
rhobs/obs-mcp#34 we have a draft to add mcpchecker evals on obs-mcp, some guidance on this would be helpful :)
|
|
||
| // GetAlerts retrieves alerts from Alertmanager. | ||
| func (c *Client) GetAlerts(ctx context.Context, active, silenced, inhibited bool, filter string) ([]Alert, error) { | ||
| body, err := c.executeRequest(ctx, "/api/v2/alerts", buildAlertsParams(active, silenced, inhibited, filter)) |
There was a problem hiding this comment.
The "old" (or built-in) observability toolset was using the client from pkg/prometheus/client.go - but the obs-mcp module is not. See also my comment here: rhobs/obs-mcp#20 (review)
7e7befd to
66dbd96
Compare
|
Few questions please.
|
Yup we do, will update once we've finalized a set of prompts.
So no not quite. There is a client here but that is used for another toolset. We plan to keep prometheus client impl in rhobs/obs-mcp as that is where we can implement finer params, guardrails, summary implementations (and also roll our own http client instead of using the k8s one) |
|
Important Review skippedToo many files! This PR contains 239 files, which is 89 over the limit of 150. ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (3)
📒 Files selected for processing (239)
You can disable this status message by setting the Use the checkbox below for a quick retry:
📝 WalkthroughWalkthroughReplaces the internal observability toolset with the external Changes
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment Tip You can validate your CodeRabbit configuration file in your editor.If your editor has YAML language server, you can enable auto-completion and validation by adding |
There was a problem hiding this comment.
Actionable comments posted: 3
🧹 Nitpick comments (1)
pkg/config/config_test.go (1)
1051-1052: Avoid duplicating default assertions with a hard-coded list.Line 1051 already validates against
s.defaults.Toolsets; Line 1052 hard-codes the same expectation and makes this test brittle to future default-override changes.♻️ Suggested adjustment
s.Equal(s.defaults.Toolsets, config.Toolsets, "toolsets should be default") - s.Equal([]string{"core", "config", "helm", "obs-mcp"}, config.Toolsets, "toolsets should be default") + s.Contains(config.Toolsets, "obs-mcp", "obs-mcp should be included in defaults")🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@pkg/config/config_test.go` around lines 1051 - 1052, Remove the redundant hard-coded assertion that duplicates the default check: keep the existing comparison using s.Equal(s.defaults.Toolsets, config.Toolsets) and delete the second line that asserts s.Equal([]string{"core", "config", "helm", "obs-mcp"}, config.Toolsets); this ensures the test relies on the canonical s.defaults.Toolsets (referencing s.defaults.Toolsets and config.Toolsets in pkg/config/config_test.go) and won't break if defaults change.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@docs/configuration.md`:
- Around line 272-280: The docs table under Toolset must match the test
defaults: mark obs-mcp (and helm per test expectations) as default-enabled in
the Default column so the documentation aligns with pkg/config/config_test.go
which includes obs-mcp in the default set; update the two rows for "helm" and
"obs-mcp" in the table to show the Default check (✓) and ensure wording remains
unchanged for their Description and tool names.
In `@README.md`:
- Around line 263-271: The README tools table's "Default" column is incorrect
for two entries; update the table row for "helm" and the row for "obs-mcp" to
mark them as defaults (add the ✓ in the Default column) so the documented
defaults match the test expectations referencing defaults; locate the table
block in README.md and change the Default cell for the "helm" and "obs-mcp" rows
to "✓".
- Around line 456-587: The obs-mcp Markdown block has MD005 (inconsistent list
indentation) and MD049 (mixed emphasis markers); fix by normalizing all list
indentation to a consistent style (use 2-space indentation for nested list items
throughout the obs-mcp section) and make emphasis consistent (use a single
marker style, e.g., **bold** and *italic* with asterisks) for all headings and
tool names such as list_metrics, execute_instant_query, execute_range_query,
get_label_names, get_label_values, get_series, get_alerts, and get_silences;
ensure bullet alignment and indentation are uniform and replace any
underscore-based or mixed emphasis with the chosen asterisk style.
---
Nitpick comments:
In `@pkg/config/config_test.go`:
- Around line 1051-1052: Remove the redundant hard-coded assertion that
duplicates the default check: keep the existing comparison using
s.Equal(s.defaults.Toolsets, config.Toolsets) and delete the second line that
asserts s.Equal([]string{"core", "config", "helm", "obs-mcp"}, config.Toolsets);
this ensures the test relies on the canonical s.defaults.Toolsets (referencing
s.defaults.Toolsets and config.Toolsets in pkg/config/config_test.go) and won't
break if defaults change.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 512af034-fdc6-4c0b-8e95-339e0dcf20c8
⛔ Files ignored due to path filters (284)
go.sumis excluded by!**/*.sumvendor/dario.cat/mergo/FUNDING.jsonis excluded by!**/vendor/**,!vendor/**vendor/dario.cat/mergo/README.mdis excluded by!**/vendor/**,!vendor/**vendor/dario.cat/mergo/SECURITY.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/bahlo/generic-list-go/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/bahlo/generic-list-go/README.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/bahlo/generic-list-go/list.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/buger/jsonparser/.gitignoreis excluded by!**/vendor/**,!vendor/**vendor/github.com/buger/jsonparser/.travis.ymlis excluded by!**/vendor/**,!vendor/**vendor/github.com/buger/jsonparser/Dockerfileis excluded by!**/vendor/**,!vendor/**vendor/github.com/buger/jsonparser/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/buger/jsonparser/Makefileis excluded by!**/vendor/**,!vendor/**vendor/github.com/buger/jsonparser/README.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/buger/jsonparser/bytes.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/buger/jsonparser/bytes_safe.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/buger/jsonparser/bytes_unsafe.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/buger/jsonparser/escape.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/buger/jsonparser/fuzz.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/buger/jsonparser/oss-fuzz-build.shis excluded by!**/vendor/**,!vendor/**vendor/github.com/buger/jsonparser/parser.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/chai2010/gettext-go/README.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/chai2010/gettext-go/plural/formula.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/chai2010/gettext-go/po/util.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/dennwc/varint/.gitignoreis excluded by!**/vendor/**,!vendor/**vendor/github.com/dennwc/varint/.travis.ymlis excluded by!**/vendor/**,!vendor/**vendor/github.com/dennwc/varint/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/dennwc/varint/README.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/dennwc/varint/proto.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/dennwc/varint/varint.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/fatih/color/README.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/fatih/color/color.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/analysis/.codecov.ymlis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/analysis/.gitattributesis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/analysis/.gitignoreis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/analysis/.golangci.ymlis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/analysis/CODE_OF_CONDUCT.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/analysis/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/analysis/README.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/analysis/analyzer.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/analysis/debug.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/analysis/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/analysis/errors.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/analysis/fixer.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/analysis/flatten.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/analysis/flatten_name.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/analysis/flatten_options.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/analysis/internal/debug/debug.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/analysis/internal/flatten/normalize/normalize.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/analysis/internal/flatten/operations/operations.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/analysis/internal/flatten/replace/errors.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/analysis/internal/flatten/replace/replace.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/analysis/internal/flatten/schutils/flatten_schema.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/analysis/internal/flatten/sortref/keys.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/analysis/internal/flatten/sortref/sort_ref.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/analysis/mixin.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/analysis/schema.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/errors/.gitattributesis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/errors/.gitignoreis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/errors/.golangci.ymlis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/errors/CODE_OF_CONDUCT.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/errors/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/errors/README.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/errors/api.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/errors/auth.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/errors/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/errors/headers.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/errors/middleware.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/errors/parsing.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/errors/schema.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/jsonpointer/.golangci.ymlis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/jsonpointer/README.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/jsonpointer/pointer.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/jsonreference/.golangci.ymlis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/jsonreference/NOTICEis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/jsonreference/README.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/jsonreference/internal/normalize_url.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/jsonreference/reference.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/loads/.editorconfigis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/loads/.gitignoreis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/loads/.golangci.ymlis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/loads/.travis.ymlis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/loads/CODE_OF_CONDUCT.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/loads/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/loads/README.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/loads/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/loads/errors.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/loads/loaders.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/loads/options.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/loads/spec.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/.editorconfigis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/.gitattributesis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/.gitignoreis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/.golangci.ymlis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/CODE_OF_CONDUCT.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/README.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/bytestream.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/client/auth_info.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/client/keepalive.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/client/opentelemetry.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/client/request.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/client/response.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/client/runtime.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/client_auth_info.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/client_operation.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/client_request.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/client_response.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/constants.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/csv.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/csv_options.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/discard.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/file.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/go.workis excluded by!**/*.work,!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/go.work.sumis excluded by!**/*.sum,!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/headers.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/interfaces.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/json.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/logger/logger.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/logger/standard.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/middleware/context.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/middleware/denco/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/middleware/denco/README.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/middleware/denco/router.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/middleware/denco/server.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/middleware/denco/util.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/middleware/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/middleware/header/header.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/middleware/negotiate.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/middleware/not_implemented.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/middleware/operation.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/middleware/parameter.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/middleware/rapidoc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/middleware/redoc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/middleware/request.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/middleware/router.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/middleware/security.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/middleware/spec.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/middleware/swaggerui.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/middleware/swaggerui_oauth2.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/middleware/ui_options.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/middleware/untyped/api.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/middleware/validation.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/request.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/security/authenticator.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/security/authorizer.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/statuses.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/text.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/values.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/xml.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/runtime/yamlpc/yaml.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/spec/.editorconfigis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/spec/.gitignoreis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/spec/.golangci.ymlis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/spec/CODE_OF_CONDUCT.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/spec/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/spec/README.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/spec/cache.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/spec/contact_info.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/spec/debug.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/spec/embed.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/spec/errors.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/spec/expander.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/spec/external_docs.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/spec/header.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/spec/info.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/spec/items.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/spec/license.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/spec/normalizer.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/spec/normalizer_nonwindows.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/spec/normalizer_windows.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/spec/operation.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/spec/parameter.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/spec/path_item.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/spec/paths.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/spec/properties.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/spec/ref.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/spec/resolver.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/spec/response.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/spec/responses.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/spec/schema.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/spec/schema_loader.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/spec/schemas/jsonschema-draft-04.jsonis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/spec/schemas/v2/schema.jsonis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/spec/security_scheme.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/spec/spec.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/spec/swagger.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/spec/tag.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/spec/url_go19.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/spec/validations.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/spec/xml_object.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/strfmt/.editorconfigis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/strfmt/.gitattributesis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/strfmt/.gitignoreis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/strfmt/.golangci.ymlis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/strfmt/CODE_OF_CONDUCT.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/strfmt/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/strfmt/README.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/strfmt/bson.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/strfmt/date.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/strfmt/default.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/strfmt/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/strfmt/duration.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/strfmt/errors.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/strfmt/format.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/strfmt/ifaces.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/strfmt/mongo.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/strfmt/time.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/strfmt/ulid.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/.codecov.ymlis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/.golangci.ymlis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/.mockery.ymlis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/README.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/SECURITY.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/cmdutils/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/cmdutils/cmd_utils.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/cmdutils/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/cmdutils_iface.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/conv/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/conv/convert.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/conv/convert_types.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/conv/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/conv/format.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/conv/sizeof.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/conv/type_constraints.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/conv_iface.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/convert.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/convert_types.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/errors.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/fileutils/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/fileutils/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/fileutils/file.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/fileutils/path.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/fileutils_iface.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/go.workis excluded by!**/*.work,!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/go.work.sumis excluded by!**/*.sum,!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/initialism_index.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/json.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonname/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonname/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonname/name_provider.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonname_iface.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonutils/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonutils/README.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonutils/adapters/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/ifaces.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/registry_iface.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonutils/adapters/registry.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/adapter.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/lexer.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/ordered_map.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/pool.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/register.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/writer.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonutils/concat.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonutils/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonutils/json.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonutils/ordered_map.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/jsonutils_iface.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/loading/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/loading/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/loading/errors.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/loading/json.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/loading/loading.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/loading/options.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/loading/yaml.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/loading_iface.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/mangling/BENCHMARK.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/mangling/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/mangling/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/mangling/initialism_index.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/mangling/name_lexem.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/mangling/name_mangler.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/mangling/options.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/mangling/pools.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/mangling/split.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/mangling/string_bytes.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/mangling/util.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/mangling_iface.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/name_lexem.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/net.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-openapi/swag/netutils/LICENSEis excluded by!**/vendor/**,!vendor/**
📒 Files selected for processing (16)
README.mddocs/configuration.mdgo.modinternal/tools/update-readme/main.gopkg/config/config_test.gopkg/mcp/modules.gopkg/prometheus/alertmanager.gopkg/prometheus/client_test.gopkg/prometheus/time.gopkg/prometheus/types.gopkg/toolsets/observability/alertmanager.gopkg/toolsets/observability/config.gopkg/toolsets/observability/helpers.gopkg/toolsets/observability/helpers_test.gopkg/toolsets/observability/prometheus.gopkg/toolsets/observability/toolset_test.go
💤 Files with no reviewable changes (10)
- pkg/prometheus/types.go
- pkg/prometheus/client_test.go
- pkg/prometheus/time.go
- pkg/toolsets/observability/alertmanager.go
- pkg/toolsets/observability/helpers_test.go
- pkg/toolsets/observability/config.go
- pkg/toolsets/observability/prometheus.go
- pkg/toolsets/observability/toolset_test.go
- pkg/prometheus/alertmanager.go
- pkg/toolsets/observability/helpers.go
| | Toolset | Description | Default | | ||
| |----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------| | ||
| | config | View and manage the current local Kubernetes configuration (kubeconfig) | ✓ | | ||
| | core | Most common tools for Kubernetes management (Pods, Generic Resources, Events, etc.) | ✓ | | ||
| | helm | Tools for managing Helm charts and releases | | | ||
| | kcp | Manage kcp workspaces and multi-tenancy features | | | ||
| | kubevirt | KubeVirt virtual machine management tools, check the [KubeVirt documentation](https://github.com/containers/kubernetes-mcp-server/blob/main/docs/kubevirt.md) for more details. | | | ||
| | obs-mcp | Toolset for querying Prometheus and Alertmanager endpoints in efficient ways. | | | ||
| | ossm | Most common tools for managing OSSM, check the [OSSM documentation](https://github.com/openshift/openshift-mcp-server/blob/main/docs/OSSM.md) for more details. | | |
There was a problem hiding this comment.
Default column appears inconsistent with tested defaults.
In this table, obs-mcp (and helm) are shown as non-default. That conflicts with the test expectation in pkg/config/config_test.go (Line 1052), which includes obs-mcp in defaults.
📝 Suggested table fix
-| helm | Tools for managing Helm charts and releases | |
+| helm | Tools for managing Helm charts and releases | ✓ |
...
-| obs-mcp | Toolset for querying Prometheus and Alertmanager endpoints in efficient ways. | |
+| obs-mcp | Toolset for querying Prometheus and Alertmanager endpoints in efficient ways. | ✓ |📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| | Toolset | Description | Default | | |
| |----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------| | |
| | config | View and manage the current local Kubernetes configuration (kubeconfig) | ✓ | | |
| | core | Most common tools for Kubernetes management (Pods, Generic Resources, Events, etc.) | ✓ | | |
| | helm | Tools for managing Helm charts and releases | | | |
| | kcp | Manage kcp workspaces and multi-tenancy features | | | |
| | kubevirt | KubeVirt virtual machine management tools, check the [KubeVirt documentation](https://github.com/containers/kubernetes-mcp-server/blob/main/docs/kubevirt.md) for more details. | | | |
| | obs-mcp | Toolset for querying Prometheus and Alertmanager endpoints in efficient ways. | | | |
| | ossm | Most common tools for managing OSSM, check the [OSSM documentation](https://github.com/openshift/openshift-mcp-server/blob/main/docs/OSSM.md) for more details. | | | |
| | Toolset | Description | Default | | |
| |----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------| | |
| | config | View and manage the current local Kubernetes configuration (kubeconfig) | ✓ | | |
| | core | Most common tools for Kubernetes management (Pods, Generic Resources, Events, etc.) | ✓ | | |
| | helm | Tools for managing Helm charts and releases | ✓ | | |
| | kcp | Manage kcp workspaces and multi-tenancy features | | | |
| | kubevirt | KubeVirt virtual machine management tools, check the [KubeVirt documentation](https://github.com/containers/kubernetes-mcp-server/blob/main/docs/kubevirt.md) for more details. | | | |
| | obs-mcp | Toolset for querying Prometheus and Alertmanager endpoints in efficient ways. | ✓ | | |
| | ossm | Most common tools for managing OSSM, check the [OSSM documentation](https://github.com/openshift/openshift-mcp-server/blob/main/docs/OSSM.md) for more details. | | |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@docs/configuration.md` around lines 272 - 280, The docs table under Toolset
must match the test defaults: mark obs-mcp (and helm per test expectations) as
default-enabled in the Default column so the documentation aligns with
pkg/config/config_test.go which includes obs-mcp in the default set; update the
two rows for "helm" and "obs-mcp" in the table to show the Default check (✓) and
ensure wording remains unchanged for their Description and tool names.
| | Toolset | Description | Default | | ||
| |----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------| | ||
| | config | View and manage the current local Kubernetes configuration (kubeconfig) | ✓ | | ||
| | core | Most common tools for Kubernetes management (Pods, Generic Resources, Events, etc.) | ✓ | | ||
| | helm | Tools for managing Helm charts and releases | | | ||
| | kcp | Manage kcp workspaces and multi-tenancy features | | | ||
| | kubevirt | KubeVirt virtual machine management tools, check the [KubeVirt documentation](https://github.com/containers/kubernetes-mcp-server/blob/main/docs/kubevirt.md) for more details. | | | ||
| | obs-mcp | Toolset for querying Prometheus and Alertmanager endpoints in efficient ways. | | | ||
| | ossm | Most common tools for managing OSSM, check the [OSSM documentation](https://github.com/openshift/openshift-mcp-server/blob/main/docs/OSSM.md) for more details. | | |
There was a problem hiding this comment.
Update default indicators to match actual defaults.
This table currently leaves helm and obs-mcp unmarked as defaults, which conflicts with pkg/config/config_test.go expectations (Line 1052 includes obs-mcp in defaults).
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@README.md` around lines 263 - 271, The README tools table's "Default" column
is incorrect for two entries; update the table row for "helm" and the row for
"obs-mcp" to mark them as defaults (add the ✓ in the Default column) so the
documented defaults match the test expectations referencing defaults; locate the
table block in README.md and change the Default cell for the "helm" and
"obs-mcp" rows to "✓".
| // Defaults should still be applied for unset values | ||
| s.Equal(s.defaults.ListOutput, config.ListOutput, "list_output should be default") | ||
| s.Equal(s.defaults.Toolsets, config.Toolsets, "toolsets should be default") | ||
| s.Equal([]string{"core", "config", "helm", "obs-mcp"}, config.Toolsets, "toolsets should be default") |
There was a problem hiding this comment.
@saswatamcode I guess we can remove this line. This is the cause of the current test failure. It's also related to the https://github.com/openshift/openshift-mcp-server/pull/124/changes#r2930689867
Signed-off-by: Saswata Mukherjee <saswataminsta@yahoo.com>
Signed-off-by: Saswata Mukherjee <saswataminsta@yahoo.com>
Signed-off-by: Saswata Mukherjee <saswataminsta@yahoo.com>
Signed-off-by: Saswata Mukherjee <saswataminsta@yahoo.com>
Signed-off-by: Saswata Mukherjee <saswataminsta@yahoo.com>
Signed-off-by: Saswata Mukherjee <saswataminsta@yahoo.com>
|
@saswatamcode: all tests passed! Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
| github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de // indirect | ||
| github.com/mailru/easyjson v0.9.0 // indirect | ||
| github.com/mattn/go-colorable v0.1.14 // indirect | ||
| github.com/mark3labs/mcp-go v0.43.2 // indirect |
There was a problem hiding this comment.
this is a no-go
let's stay out of that
| github.com/miekg/dns v1.1.68 | ||
| github.com/modelcontextprotocol/go-sdk v1.4.1 | ||
| github.com/prometheus/client_golang v1.23.2 | ||
| github.com/rhobs/obs-mcp v0.0.0-20260319081430-c5a3491bc18f |
There was a problem hiding this comment.
Is it possible to get some real release?
|
|
||
| require ( | ||
| dario.cat/mergo v1.0.2 // indirect | ||
| dario.cat/mergo v1.0.1 // indirect |
| github.com/cenkalti/backoff/v5 v5.0.3 // indirect | ||
| github.com/cespare/xxhash/v2 v2.3.0 // indirect | ||
| github.com/chai2010/gettext-go v1.0.3 // indirect | ||
| github.com/chai2010/gettext-go v1.0.2 // indirect |
| github.com/evanphx/json-patch/v5 v5.9.11 // indirect | ||
| github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f // indirect | ||
| github.com/fatih/color v1.18.0 // indirect | ||
| github.com/fatih/color v1.16.0 // indirect |
| github.com/mattn/go-colorable v0.1.13 // indirect | ||
| github.com/mattn/go-isatty v0.0.20 // indirect | ||
| github.com/mattn/go-runewidth v0.0.16 // indirect | ||
| github.com/mattn/go-runewidth v0.0.9 // indirect |
| github.com/miekg/dns v1.1.68 | ||
| github.com/modelcontextprotocol/go-sdk v1.4.1 | ||
| github.com/prometheus/client_golang v1.23.2 | ||
| github.com/rhobs/obs-mcp v0.0.0-20260319081430-c5a3491bc18f |
There was a problem hiding this comment.
the rhobs/obs-mcp module pulls in a very large transitive dependency graph 😅
| // allowedPrometheusEndpoints is a whitelist of allowed Prometheus API endpoints | ||
| var allowedPrometheusEndpoints = map[string]bool{ | ||
| "/api/v1/query": true, | ||
| "/api/v1/query_range": true, | ||
| "/api/v1/series": true, | ||
| "/api/v1/labels": true, | ||
| } | ||
|
|
||
| // allowedPrometheusLabelPattern matches /api/v1/label/<label>/values endpoints | ||
| var allowedPrometheusLabelPattern = regexp.MustCompile(`^/api/v1/label/[^/]+/values$`) | ||
|
|
||
| // allowedAlertmanagerEndpoints is a whitelist of allowed Alertmanager API endpoints | ||
| var allowedAlertmanagerEndpoints = map[string]bool{ | ||
| "/api/v2/alerts": true, | ||
| "/api/v2/silences": true, | ||
| "/api/v1/alerts": true, | ||
| } |
There was a problem hiding this comment.
those prevented SSRF by only allowing known-safe API paths.
Does the module have that too?
There was a problem hiding this comment.
We don't have anything like that at the moment. I am wondering if it's worth adding when the toolset is opt-in and user needs to pass the config (as mentioned in #124 (comment)) with URLs anyway.
|
The Asking, because I had to (tested the list metrics tool) I geuss that is than documented - somewhere? |
|
The existing IMO it would be good to be updated for reflecting the I had a config like: [toolset_configs.obs-mcp]
prometheus_url = "https://thanos-querier-openshift-monitoring..."
alertmanager_url = "https://alertmanager-main-openshift-monitoring..."
insecure = trueexecuted like: |
yes, that's a limitation on the way auth against prometheus/thanos is done on openshift side AFAIK. |
|
PR needs rebase. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
./kubernetes-mcp-server --help
/kubernetes-mcp-server --toolsets obs-mcp --port 8080
