Skip to content

GIE-504: Use rhobs/obs-mcp toolset for Prometheus/Alertmanager (replaces observability mcp)#226

Merged
openshift-merge-bot[bot] merged 4 commits intoopenshift:mainfrom
saswatamcode:obs-mcp-1
Apr 20, 2026
Merged

GIE-504: Use rhobs/obs-mcp toolset for Prometheus/Alertmanager (replaces observability mcp)#226
openshift-merge-bot[bot] merged 4 commits intoopenshift:mainfrom
saswatamcode:obs-mcp-1

Conversation

@saswatamcode
Copy link
Copy Markdown
Member

./kubernetes-mcp-server --help
Kubernetes Model Context Protocol (MCP) server

Usage:
  kubernetes-mcp-server [command] [options] [flags]

Examples:
  # show this help
  kubernetes-mcp-server -h
  
  # shows version information
  kubernetes-mcp-server --version
  
  # start STDIO server
  kubernetes-mcp-server
  
  # start a SSE server on port 8080
  kubernetes-mcp-server --port 8080
  
  # start a SSE server on port 8443 with a public HTTPS host of example.com
  kubernetes-mcp-server --port 8443 --sse-base-url https://example.com:8443
  
  # start a SSE server on port 8080 with multi-cluster tools disabled
  kubernetes-mcp-server --port 8080 --disable-multi-cluster
  
  # start with explicit cluster provider strategy
  kubernetes-mcp-server --cluster-provider kubeconfig
  
  # start with kcp cluster provider for multi-workspace support
  kubernetes-mcp-server --cluster-provider kcp

Flags:
      --cluster-provider string   Cluster provider strategy to use (one of: acm, acm-kubeconfig, disabled, in-cluster, kcp, kubeconfig). If not set, the server will auto-detect based on the environment.
      --config string             Path of the config file.
      --config-dir string         Path to drop-in configuration directory (files loaded in lexical order). Defaults to conf.d relative to the config file if --config is set.
      --disable-destructive       If true, tools annotated with destructiveHint=true are disabled
      --disable-multi-cluster     Disable multi cluster tools. Optional. If true, all tools will be run against the default cluster/context.
  -h, --help                      help for kubernetes-mcp-server
      --kubeconfig string         Path to the kubeconfig file to use for authentication
      --list-output string        Output format for resource list operations (one of: yaml, table). Defaults to table.
      --log-level int             Set the log level (from 0 to 9)
      --port string               Start a streamable HTTP and SSE HTTP server on the specified port (e.g. 8080)
      --read-only                 If true, only tools annotated with readOnlyHint=true are exposed
      --require-tls               Require TLS for server and all outbound connections
      --sse-base-url string       SSE public base URL to use when sending the endpoint message (e.g. https://example.com)
      --stateless                 If true, run the MCP server in stateless mode (disables tool/prompt change notifications). Useful for container deployments and load balancing. Default is false (stateful mode)
      --tls-cert string           Path to TLS certificate file for HTTPS. Must be used together with --tls-key.
      --tls-key string            Path to TLS private key file for HTTPS. Must be used together with --tls-cert.
      --toolsets strings          Comma-separated list of MCP toolsets to use (available toolsets: config, core, helm, kcp, kubevirt, netedge, obs-mcp, openshift, ossm, tekton). Defaults to core, config.
      --version                   Print version information and quit
Screenshot 2026-04-14 at 07 51 06

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 14, 2026

Important

Review skipped

Too many files!

This PR contains 295 files, which is 145 over the limit of 150.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 2a6fc6bb-d240-4bb5-9830-80e8ffc7d524

📥 Commits

Reviewing files that changed from the base of the PR and between 8c6ee76 and 52a4797.

⛔ Files ignored due to path filters (5)
  • go.sum is excluded by !**/*.sum
  • vendor/github.com/go-openapi/runtime/go.work is excluded by !**/*.work
  • vendor/github.com/go-openapi/runtime/go.work.sum is excluded by !**/*.sum
  • vendor/github.com/go-openapi/swag/go.work is excluded by !**/*.work
  • vendor/github.com/go-openapi/swag/go.work.sum is excluded by !**/*.sum
📒 Files selected for processing (295)
  • Makefile
  • README.md
  • docs/METRICS.md
  • docs/OBSERVABILITY.md
  • docs/configuration.md
  • go.mod
  • internal/tools/update-readme/main.go
  • pkg/mcp/modules.go
  • pkg/prometheus/alertmanager.go
  • pkg/prometheus/client_test.go
  • pkg/prometheus/time.go
  • pkg/prometheus/types.go
  • pkg/toolsets/observability/alertmanager.go
  • pkg/toolsets/observability/config.go
  • pkg/toolsets/observability/helpers.go
  • pkg/toolsets/observability/helpers_test.go
  • pkg/toolsets/observability/prometheus.go
  • pkg/toolsets/observability/toolset.go
  • pkg/toolsets/observability/toolset_test.go
  • vendor/github.com/dennwc/varint/.gitignore
  • vendor/github.com/dennwc/varint/.travis.yml
  • vendor/github.com/dennwc/varint/LICENSE
  • vendor/github.com/dennwc/varint/README.md
  • vendor/github.com/dennwc/varint/proto.go
  • vendor/github.com/dennwc/varint/varint.go
  • vendor/github.com/go-openapi/analysis/.codecov.yml
  • vendor/github.com/go-openapi/analysis/.gitattributes
  • vendor/github.com/go-openapi/analysis/.gitignore
  • vendor/github.com/go-openapi/analysis/.golangci.yml
  • vendor/github.com/go-openapi/analysis/CODE_OF_CONDUCT.md
  • vendor/github.com/go-openapi/analysis/LICENSE
  • vendor/github.com/go-openapi/analysis/README.md
  • vendor/github.com/go-openapi/analysis/analyzer.go
  • vendor/github.com/go-openapi/analysis/debug.go
  • vendor/github.com/go-openapi/analysis/doc.go
  • vendor/github.com/go-openapi/analysis/errors.go
  • vendor/github.com/go-openapi/analysis/fixer.go
  • vendor/github.com/go-openapi/analysis/flatten.go
  • vendor/github.com/go-openapi/analysis/flatten_name.go
  • vendor/github.com/go-openapi/analysis/flatten_options.go
  • vendor/github.com/go-openapi/analysis/internal/debug/debug.go
  • vendor/github.com/go-openapi/analysis/internal/flatten/normalize/normalize.go
  • vendor/github.com/go-openapi/analysis/internal/flatten/operations/operations.go
  • vendor/github.com/go-openapi/analysis/internal/flatten/replace/errors.go
  • vendor/github.com/go-openapi/analysis/internal/flatten/replace/replace.go
  • vendor/github.com/go-openapi/analysis/internal/flatten/schutils/flatten_schema.go
  • vendor/github.com/go-openapi/analysis/internal/flatten/sortref/keys.go
  • vendor/github.com/go-openapi/analysis/internal/flatten/sortref/sort_ref.go
  • vendor/github.com/go-openapi/analysis/mixin.go
  • vendor/github.com/go-openapi/analysis/schema.go
  • vendor/github.com/go-openapi/errors/.gitattributes
  • vendor/github.com/go-openapi/errors/.gitignore
  • vendor/github.com/go-openapi/errors/.golangci.yml
  • vendor/github.com/go-openapi/errors/CODE_OF_CONDUCT.md
  • vendor/github.com/go-openapi/errors/LICENSE
  • vendor/github.com/go-openapi/errors/README.md
  • vendor/github.com/go-openapi/errors/api.go
  • vendor/github.com/go-openapi/errors/auth.go
  • vendor/github.com/go-openapi/errors/doc.go
  • vendor/github.com/go-openapi/errors/headers.go
  • vendor/github.com/go-openapi/errors/middleware.go
  • vendor/github.com/go-openapi/errors/parsing.go
  • vendor/github.com/go-openapi/errors/schema.go
  • vendor/github.com/go-openapi/jsonpointer/.golangci.yml
  • vendor/github.com/go-openapi/jsonpointer/README.md
  • vendor/github.com/go-openapi/jsonpointer/pointer.go
  • vendor/github.com/go-openapi/jsonreference/.golangci.yml
  • vendor/github.com/go-openapi/jsonreference/NOTICE
  • vendor/github.com/go-openapi/jsonreference/README.md
  • vendor/github.com/go-openapi/jsonreference/internal/normalize_url.go
  • vendor/github.com/go-openapi/jsonreference/reference.go
  • vendor/github.com/go-openapi/loads/.editorconfig
  • vendor/github.com/go-openapi/loads/.gitignore
  • vendor/github.com/go-openapi/loads/.golangci.yml
  • vendor/github.com/go-openapi/loads/.travis.yml
  • vendor/github.com/go-openapi/loads/CODE_OF_CONDUCT.md
  • vendor/github.com/go-openapi/loads/LICENSE
  • vendor/github.com/go-openapi/loads/README.md
  • vendor/github.com/go-openapi/loads/doc.go
  • vendor/github.com/go-openapi/loads/errors.go
  • vendor/github.com/go-openapi/loads/loaders.go
  • vendor/github.com/go-openapi/loads/options.go
  • vendor/github.com/go-openapi/loads/spec.go
  • vendor/github.com/go-openapi/runtime/.editorconfig
  • vendor/github.com/go-openapi/runtime/.gitattributes
  • vendor/github.com/go-openapi/runtime/.gitignore
  • vendor/github.com/go-openapi/runtime/.golangci.yml
  • vendor/github.com/go-openapi/runtime/CODE_OF_CONDUCT.md
  • vendor/github.com/go-openapi/runtime/LICENSE
  • vendor/github.com/go-openapi/runtime/README.md
  • vendor/github.com/go-openapi/runtime/bytestream.go
  • vendor/github.com/go-openapi/runtime/client/auth_info.go
  • vendor/github.com/go-openapi/runtime/client/keepalive.go
  • vendor/github.com/go-openapi/runtime/client/opentelemetry.go
  • vendor/github.com/go-openapi/runtime/client/request.go
  • vendor/github.com/go-openapi/runtime/client/response.go
  • vendor/github.com/go-openapi/runtime/client/runtime.go
  • vendor/github.com/go-openapi/runtime/client_auth_info.go
  • vendor/github.com/go-openapi/runtime/client_operation.go
  • vendor/github.com/go-openapi/runtime/client_request.go
  • vendor/github.com/go-openapi/runtime/client_response.go
  • vendor/github.com/go-openapi/runtime/constants.go
  • vendor/github.com/go-openapi/runtime/csv.go
  • vendor/github.com/go-openapi/runtime/csv_options.go
  • vendor/github.com/go-openapi/runtime/discard.go
  • vendor/github.com/go-openapi/runtime/file.go
  • vendor/github.com/go-openapi/runtime/headers.go
  • vendor/github.com/go-openapi/runtime/interfaces.go
  • vendor/github.com/go-openapi/runtime/json.go
  • vendor/github.com/go-openapi/runtime/logger/logger.go
  • vendor/github.com/go-openapi/runtime/logger/standard.go
  • vendor/github.com/go-openapi/runtime/middleware/context.go
  • vendor/github.com/go-openapi/runtime/middleware/denco/LICENSE
  • vendor/github.com/go-openapi/runtime/middleware/denco/README.md
  • vendor/github.com/go-openapi/runtime/middleware/denco/router.go
  • vendor/github.com/go-openapi/runtime/middleware/denco/server.go
  • vendor/github.com/go-openapi/runtime/middleware/denco/util.go
  • vendor/github.com/go-openapi/runtime/middleware/doc.go
  • vendor/github.com/go-openapi/runtime/middleware/header/header.go
  • vendor/github.com/go-openapi/runtime/middleware/negotiate.go
  • vendor/github.com/go-openapi/runtime/middleware/not_implemented.go
  • vendor/github.com/go-openapi/runtime/middleware/operation.go
  • vendor/github.com/go-openapi/runtime/middleware/parameter.go
  • vendor/github.com/go-openapi/runtime/middleware/rapidoc.go
  • vendor/github.com/go-openapi/runtime/middleware/redoc.go
  • vendor/github.com/go-openapi/runtime/middleware/request.go
  • vendor/github.com/go-openapi/runtime/middleware/router.go
  • vendor/github.com/go-openapi/runtime/middleware/security.go
  • vendor/github.com/go-openapi/runtime/middleware/spec.go
  • vendor/github.com/go-openapi/runtime/middleware/swaggerui.go
  • vendor/github.com/go-openapi/runtime/middleware/swaggerui_oauth2.go
  • vendor/github.com/go-openapi/runtime/middleware/ui_options.go
  • vendor/github.com/go-openapi/runtime/middleware/untyped/api.go
  • vendor/github.com/go-openapi/runtime/middleware/validation.go
  • vendor/github.com/go-openapi/runtime/request.go
  • vendor/github.com/go-openapi/runtime/security/authenticator.go
  • vendor/github.com/go-openapi/runtime/security/authorizer.go
  • vendor/github.com/go-openapi/runtime/statuses.go
  • vendor/github.com/go-openapi/runtime/text.go
  • vendor/github.com/go-openapi/runtime/values.go
  • vendor/github.com/go-openapi/runtime/xml.go
  • vendor/github.com/go-openapi/runtime/yamlpc/yaml.go
  • vendor/github.com/go-openapi/spec/.editorconfig
  • vendor/github.com/go-openapi/spec/.gitignore
  • vendor/github.com/go-openapi/spec/.golangci.yml
  • vendor/github.com/go-openapi/spec/CODE_OF_CONDUCT.md
  • vendor/github.com/go-openapi/spec/LICENSE
  • vendor/github.com/go-openapi/spec/README.md
  • vendor/github.com/go-openapi/spec/cache.go
  • vendor/github.com/go-openapi/spec/contact_info.go
  • vendor/github.com/go-openapi/spec/debug.go
  • vendor/github.com/go-openapi/spec/embed.go
  • vendor/github.com/go-openapi/spec/errors.go
  • vendor/github.com/go-openapi/spec/expander.go
  • vendor/github.com/go-openapi/spec/external_docs.go
  • vendor/github.com/go-openapi/spec/header.go
  • vendor/github.com/go-openapi/spec/info.go
  • vendor/github.com/go-openapi/spec/items.go
  • vendor/github.com/go-openapi/spec/license.go
  • vendor/github.com/go-openapi/spec/normalizer.go
  • vendor/github.com/go-openapi/spec/normalizer_nonwindows.go
  • vendor/github.com/go-openapi/spec/normalizer_windows.go
  • vendor/github.com/go-openapi/spec/operation.go
  • vendor/github.com/go-openapi/spec/parameter.go
  • vendor/github.com/go-openapi/spec/path_item.go
  • vendor/github.com/go-openapi/spec/paths.go
  • vendor/github.com/go-openapi/spec/properties.go
  • vendor/github.com/go-openapi/spec/ref.go
  • vendor/github.com/go-openapi/spec/resolver.go
  • vendor/github.com/go-openapi/spec/response.go
  • vendor/github.com/go-openapi/spec/responses.go
  • vendor/github.com/go-openapi/spec/schema.go
  • vendor/github.com/go-openapi/spec/schema_loader.go
  • vendor/github.com/go-openapi/spec/schemas/jsonschema-draft-04.json
  • vendor/github.com/go-openapi/spec/schemas/v2/schema.json
  • vendor/github.com/go-openapi/spec/security_scheme.go
  • vendor/github.com/go-openapi/spec/spec.go
  • vendor/github.com/go-openapi/spec/swagger.go
  • vendor/github.com/go-openapi/spec/tag.go
  • vendor/github.com/go-openapi/spec/url_go19.go
  • vendor/github.com/go-openapi/spec/validations.go
  • vendor/github.com/go-openapi/spec/xml_object.go
  • vendor/github.com/go-openapi/strfmt/.editorconfig
  • vendor/github.com/go-openapi/strfmt/.gitattributes
  • vendor/github.com/go-openapi/strfmt/.gitignore
  • vendor/github.com/go-openapi/strfmt/.golangci.yml
  • vendor/github.com/go-openapi/strfmt/CODE_OF_CONDUCT.md
  • vendor/github.com/go-openapi/strfmt/LICENSE
  • vendor/github.com/go-openapi/strfmt/README.md
  • vendor/github.com/go-openapi/strfmt/bson.go
  • vendor/github.com/go-openapi/strfmt/date.go
  • vendor/github.com/go-openapi/strfmt/default.go
  • vendor/github.com/go-openapi/strfmt/doc.go
  • vendor/github.com/go-openapi/strfmt/duration.go
  • vendor/github.com/go-openapi/strfmt/errors.go
  • vendor/github.com/go-openapi/strfmt/format.go
  • vendor/github.com/go-openapi/strfmt/ifaces.go
  • vendor/github.com/go-openapi/strfmt/mongo.go
  • vendor/github.com/go-openapi/strfmt/time.go
  • vendor/github.com/go-openapi/strfmt/ulid.go
  • vendor/github.com/go-openapi/swag/.codecov.yml
  • vendor/github.com/go-openapi/swag/.golangci.yml
  • vendor/github.com/go-openapi/swag/.mockery.yml
  • vendor/github.com/go-openapi/swag/README.md
  • vendor/github.com/go-openapi/swag/SECURITY.md
  • vendor/github.com/go-openapi/swag/cmdutils/LICENSE
  • vendor/github.com/go-openapi/swag/cmdutils/cmd_utils.go
  • vendor/github.com/go-openapi/swag/cmdutils/doc.go
  • vendor/github.com/go-openapi/swag/cmdutils_iface.go
  • vendor/github.com/go-openapi/swag/conv/LICENSE
  • vendor/github.com/go-openapi/swag/conv/convert.go
  • vendor/github.com/go-openapi/swag/conv/convert_types.go
  • vendor/github.com/go-openapi/swag/conv/doc.go
  • vendor/github.com/go-openapi/swag/conv/format.go
  • vendor/github.com/go-openapi/swag/conv/sizeof.go
  • vendor/github.com/go-openapi/swag/conv/type_constraints.go
  • vendor/github.com/go-openapi/swag/conv_iface.go
  • vendor/github.com/go-openapi/swag/convert.go
  • vendor/github.com/go-openapi/swag/convert_types.go
  • vendor/github.com/go-openapi/swag/doc.go
  • vendor/github.com/go-openapi/swag/errors.go
  • vendor/github.com/go-openapi/swag/fileutils/LICENSE
  • vendor/github.com/go-openapi/swag/fileutils/doc.go
  • vendor/github.com/go-openapi/swag/fileutils/file.go
  • vendor/github.com/go-openapi/swag/fileutils/path.go
  • vendor/github.com/go-openapi/swag/fileutils_iface.go
  • vendor/github.com/go-openapi/swag/initialism_index.go
  • vendor/github.com/go-openapi/swag/json.go
  • vendor/github.com/go-openapi/swag/jsonname/LICENSE
  • vendor/github.com/go-openapi/swag/jsonname/doc.go
  • vendor/github.com/go-openapi/swag/jsonname/name_provider.go
  • vendor/github.com/go-openapi/swag/jsonname_iface.go
  • vendor/github.com/go-openapi/swag/jsonutils/LICENSE
  • vendor/github.com/go-openapi/swag/jsonutils/README.md
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/doc.go
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/doc.go
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/ifaces.go
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/registry_iface.go
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/registry.go
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/adapter.go
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/doc.go
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/lexer.go
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/ordered_map.go
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/pool.go
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/register.go
  • vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/writer.go
  • vendor/github.com/go-openapi/swag/jsonutils/concat.go
  • vendor/github.com/go-openapi/swag/jsonutils/doc.go
  • vendor/github.com/go-openapi/swag/jsonutils/json.go
  • vendor/github.com/go-openapi/swag/jsonutils/ordered_map.go
  • vendor/github.com/go-openapi/swag/jsonutils_iface.go
  • vendor/github.com/go-openapi/swag/loading/LICENSE
  • vendor/github.com/go-openapi/swag/loading/doc.go
  • vendor/github.com/go-openapi/swag/loading/errors.go
  • vendor/github.com/go-openapi/swag/loading/json.go
  • vendor/github.com/go-openapi/swag/loading/loading.go
  • vendor/github.com/go-openapi/swag/loading/options.go
  • vendor/github.com/go-openapi/swag/loading/yaml.go
  • vendor/github.com/go-openapi/swag/loading_iface.go
  • vendor/github.com/go-openapi/swag/mangling/BENCHMARK.md
  • vendor/github.com/go-openapi/swag/mangling/LICENSE
  • vendor/github.com/go-openapi/swag/mangling/doc.go
  • vendor/github.com/go-openapi/swag/mangling/initialism_index.go
  • vendor/github.com/go-openapi/swag/mangling/name_lexem.go
  • vendor/github.com/go-openapi/swag/mangling/name_mangler.go
  • vendor/github.com/go-openapi/swag/mangling/options.go
  • vendor/github.com/go-openapi/swag/mangling/pools.go
  • vendor/github.com/go-openapi/swag/mangling/split.go
  • vendor/github.com/go-openapi/swag/mangling/string_bytes.go
  • vendor/github.com/go-openapi/swag/mangling/util.go
  • vendor/github.com/go-openapi/swag/mangling_iface.go
  • vendor/github.com/go-openapi/swag/name_lexem.go
  • vendor/github.com/go-openapi/swag/net.go
  • vendor/github.com/go-openapi/swag/netutils/LICENSE
  • vendor/github.com/go-openapi/swag/netutils/doc.go
  • vendor/github.com/go-openapi/swag/netutils/net.go
  • vendor/github.com/go-openapi/swag/netutils_iface.go
  • vendor/github.com/go-openapi/swag/split.go
  • vendor/github.com/go-openapi/swag/stringutils/LICENSE
  • vendor/github.com/go-openapi/swag/stringutils/collection_formats.go
  • vendor/github.com/go-openapi/swag/stringutils/doc.go
  • vendor/github.com/go-openapi/swag/stringutils/strings.go
  • vendor/github.com/go-openapi/swag/stringutils_iface.go
  • vendor/github.com/go-openapi/swag/typeutils/LICENSE
  • vendor/github.com/go-openapi/swag/typeutils/doc.go
  • vendor/github.com/go-openapi/swag/typeutils/types.go
  • vendor/github.com/go-openapi/swag/typeutils_iface.go
  • vendor/github.com/go-openapi/swag/util.go
  • vendor/github.com/go-openapi/swag/yaml.go
  • vendor/github.com/go-openapi/swag/yamlutils/LICENSE
  • vendor/github.com/go-openapi/swag/yamlutils/doc.go
  • vendor/github.com/go-openapi/swag/yamlutils/errors.go
  • vendor/github.com/go-openapi/swag/yamlutils/ordered_map.go
  • vendor/github.com/go-openapi/swag/yamlutils/yaml.go
  • vendor/github.com/go-openapi/swag/yamlutils_iface.go

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Comment thread docs/METRICS.md
Comment thread pkg/toolsets/observability/helpers.go
@matzew
Copy link
Copy Markdown
Member

matzew commented Apr 14, 2026

We have no evals / mcpchecker here - but I saw this based on discussions on slack

rhobs/obs-mcp#34

CC @Cali0707

Comment thread docs/OBSERVABILITY.md Outdated
@matzew
Copy link
Copy Markdown
Member

matzew commented Apr 14, 2026

One of the things to have in mind when using the go modules, instead of directly prviding tools there is that it might be easier to miss tool renaming.

E.g. the old version used to have: prometheus_query, prometheus_query_range and alertmanager_alerts. While new version (the module) has these: list_metrics, execute_instant_query, execute_range_query, show_timeseries, get_label_names, get_label_values, get_series, get_alerts and get_silences.

…vability mcp)

Signed-off-by: Saswata Mukherjee <saswataminsta@yahoo.com>
Signed-off-by: Saswata Mukherjee <saswataminsta@yahoo.com>
Comment thread go.mod Outdated
github.com/miekg/dns v1.1.68
github.com/modelcontextprotocol/go-sdk v1.5.0
github.com/prometheus/client_golang v1.23.2
github.com/rhobs/obs-mcp v0.1.0-rc.1.0.20260414161157-6067303e23c9
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Any idea when the actual release will be out ? 😅

@matzew
Copy link
Copy Markdown
Member

matzew commented Apr 16, 2026

Besides the SSRF comment, but confirmed by @tremes to accept this, this

LGTM!

Leaving the final approval to @Cali0707 regarding evals. I saw the referenced PR got merged, though

Also CC @mvinkler for QE aspects here

Signed-off-by: Saswata Mukherjee <saswataminsta@yahoo.com>
@saswatamcode
Copy link
Copy Markdown
Member Author

Thanks! Also pinned the module to latest release rc

@mvinkler
Copy link
Copy Markdown

@saswatamcode no evals for testing the obs-mcp toolset?

@saswatamcode
Copy link
Copy Markdown
Member Author

@mvinkler evals are here rhobs/obs-mcp#34

@mvinkler
Copy link
Copy Markdown

@matzew is there any convention regarding toolset naming? This one is now called obs-mcp, while no other has -mcp suffix.

@matzew
Copy link
Copy Markdown
Member

matzew commented Apr 16, 2026 via email

saswatamcode added a commit to saswatamcode/obs-mcp that referenced this pull request Apr 16, 2026
As per conventions in openshift-mcp-server, we need to rename the
toolset to something more suitable as per
openshift/openshift-mcp-server#226 (comment)

Signed-off-by: Saswata Mukherjee <saswataminsta@yahoo.com>
Comment thread README.md Outdated
- `filter` (`string`) - Optional filter using Alertmanager filter syntax. Examples: 'alertname=Watchdog', 'severity=critical', 'namespace=openshift-monitoring'
- `inhibited` (`boolean`) - Include inhibited alerts in the results. Default: false
- `silenced` (`boolean`) - Include silenced alerts in the results. Default: false
<summary>obs-mcp</summary>
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

This should be also renamed back to observability?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

is generated

@mvinkler
Copy link
Copy Markdown

Due to unified testing approach, I need the evals to be also in this repo. At least in the release-0.3 branch.

@matzew
Copy link
Copy Markdown
Member

matzew commented Apr 16, 2026

Due to unified testing approach, I need the evals to be also in this repo. At least in the release-0.3 branch.

would be good if those evals were part of this repo.

CC @Cali0707

Comment thread docs/configuration.md Outdated
| 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. | |
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Should we mention Thanos also?

@mvinkler
Copy link
Copy Markdown

From https://github.com/rhobs/obs-mcp/tree/main: obs-mcp has many new flags, for example:

go run ./cmd/obs-mcp/ --listen 127.0.0.1:9100 --auth-mode kubeconfig --metrics-backend thanos --insecure --guardrails=none

These flags will be merged to the openshift-mcp-server? What is their description?

saswatamcode added a commit to saswatamcode/obs-mcp that referenced this pull request Apr 16, 2026
As per conventions in openshift-mcp-server, we need to rename the
toolset to something more suitable as per
openshift/openshift-mcp-server#226 (comment)

Signed-off-by: Saswata Mukherjee <saswataminsta@yahoo.com>
Signed-off-by: Saswata Mukherjee <saswataminsta@yahoo.com>
@tremes
Copy link
Copy Markdown

tremes commented Apr 20, 2026

@mvinkler I don't think we need to merge the flags into openshift-mcp-server. Would you agree @saswatamcode?

@saswatamcode
Copy link
Copy Markdown
Member Author

I don't think we are merging any flags here, the same is only exposed through toml config

Copy link
Copy Markdown

@Cali0707 Cali0707 left a comment

Choose a reason for hiding this comment

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

/lgtm
/approve

Lets make sure we get evals in soon so that we can test and release this toolset as TP instead of DP

@Cali0707
Copy link
Copy Markdown

@matzew can you backport this to the release branch?

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Apr 20, 2026
@openshift-ci
Copy link
Copy Markdown

openshift-ci Bot commented Apr 20, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: Cali0707, saswatamcode

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Apr 20, 2026
@saswatamcode saswatamcode changed the title Use rhobs/obs-mcp toolset for Prometheus/Alertmanager (replaces observability mcp) GIE-504: Use rhobs/obs-mcp toolset for Prometheus/Alertmanager (replaces observability mcp) Apr 20, 2026
@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Apr 20, 2026
@openshift-ci-robot
Copy link
Copy Markdown

openshift-ci-robot commented Apr 20, 2026

@saswatamcode: This pull request references GIE-504 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "5.0.0" version, but no target version was set.

Details

In response to this:

./kubernetes-mcp-server --help
Kubernetes Model Context Protocol (MCP) server

Usage:
 kubernetes-mcp-server [command] [options] [flags]

Examples:
 # show this help
 kubernetes-mcp-server -h
 
 # shows version information
 kubernetes-mcp-server --version
 
 # start STDIO server
 kubernetes-mcp-server
 
 # start a SSE server on port 8080
 kubernetes-mcp-server --port 8080
 
 # start a SSE server on port 8443 with a public HTTPS host of example.com
 kubernetes-mcp-server --port 8443 --sse-base-url https://example.com:8443
 
 # start a SSE server on port 8080 with multi-cluster tools disabled
 kubernetes-mcp-server --port 8080 --disable-multi-cluster
 
 # start with explicit cluster provider strategy
 kubernetes-mcp-server --cluster-provider kubeconfig
 
 # start with kcp cluster provider for multi-workspace support
 kubernetes-mcp-server --cluster-provider kcp

Flags:
     --cluster-provider string   Cluster provider strategy to use (one of: acm, acm-kubeconfig, disabled, in-cluster, kcp, kubeconfig). If not set, the server will auto-detect based on the environment.
     --config string             Path of the config file.
     --config-dir string         Path to drop-in configuration directory (files loaded in lexical order). Defaults to conf.d relative to the config file if --config is set.
     --disable-destructive       If true, tools annotated with destructiveHint=true are disabled
     --disable-multi-cluster     Disable multi cluster tools. Optional. If true, all tools will be run against the default cluster/context.
 -h, --help                      help for kubernetes-mcp-server
     --kubeconfig string         Path to the kubeconfig file to use for authentication
     --list-output string        Output format for resource list operations (one of: yaml, table). Defaults to table.
     --log-level int             Set the log level (from 0 to 9)
     --port string               Start a streamable HTTP and SSE HTTP server on the specified port (e.g. 8080)
     --read-only                 If true, only tools annotated with readOnlyHint=true are exposed
     --require-tls               Require TLS for server and all outbound connections
     --sse-base-url string       SSE public base URL to use when sending the endpoint message (e.g. https://example.com)
     --stateless                 If true, run the MCP server in stateless mode (disables tool/prompt change notifications). Useful for container deployments and load balancing. Default is false (stateful mode)
     --tls-cert string           Path to TLS certificate file for HTTPS. Must be used together with --tls-key.
     --tls-key string            Path to TLS private key file for HTTPS. Must be used together with --tls-cert.
     --toolsets strings          Comma-separated list of MCP toolsets to use (available toolsets: config, core, helm, kcp, kubevirt, netedge, obs-mcp, openshift, ossm, tekton). Defaults to core, config.
     --version                   Print version information and quit
Screenshot 2026-04-14 at 07 51 06

Instructions 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 openshift-eng/jira-lifecycle-plugin repository.

@matzew
Copy link
Copy Markdown
Member

matzew commented Apr 20, 2026

/override "Konflux kflux-prd-rh02 / openshift-mcp-server-on-pull-request"

@openshift-ci
Copy link
Copy Markdown

openshift-ci Bot commented Apr 20, 2026

@matzew: Overrode contexts on behalf of matzew: Konflux kflux-prd-rh02 / openshift-mcp-server-on-pull-request

Details

In response to this:

/override "Konflux kflux-prd-rh02 / openshift-mcp-server-on-pull-request"

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

@matzew
Copy link
Copy Markdown
Member

matzew commented Apr 20, 2026

@matzew can you backport this to the release branch?

@Cali0707 I'd prefer the actual team doing the backport for the release-0.3 branch ?

@openshift-ci
Copy link
Copy Markdown

openshift-ci Bot commented Apr 20, 2026

@nader-ziada: nader-ziada unauthorized: /override is restricted to Repo administrators, approvers in top level OWNERS file, and the following github teams:openshift: openshift-release-oversight openshift-staff-engineers openshift-sustaining-engineers.

Details

In response to this:

/override "Red Hat Konflux / openshift-mcp-server-release-03-on-pull-request"

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

@openshift-ci
Copy link
Copy Markdown

openshift-ci Bot commented Apr 20, 2026

@saswatamcode: all tests passed!

Full PR test history. Your PR dashboard.

Details

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

@openshift-merge-bot openshift-merge-bot Bot merged commit 88d919b into openshift:main Apr 20, 2026
10 of 11 checks passed
@tremes
Copy link
Copy Markdown

tremes commented Apr 21, 2026

/cherry-pick release-0.3

@openshift-cherrypick-robot
Copy link
Copy Markdown

@tremes: Failed to get PR patch from GitHub. This PR will need to be manually cherrypicked.

Error messagestatus code 406 not one of [200], body: {"message":"Sorry, the diff exceeded the maximum number of files (300). Consider using 'List pull requests files' API or locally cloning the repository instead.","errors":[{"resource":"PullRequest","field":"diff","code":"too_large"}],"documentation_url":"https://docs.github.com/rest/pulls/pulls#list-pull-requests-files","status":"406"}
Details

In response to this:

/cherry-pick release-0.3

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants