MCP Servers
OpenChoreo provides Model Context Protocol (MCP) servers that enable AI assistants to interact with your OpenChoreo platform.
Overviewβ
OpenChoreo provides two MCP servers:
- Control Plane MCP Server - Provides tools for managing OpenChoreo resources (namespaces, projects, components, builds, deployments, infrastructure)
- Observability Plane MCP Server - Provides tools for accessing observability data (logs, metrics, traces)
Each MCP server is independently accessible and requires separate configuration.
Using Both MCP Servers Togetherβ
For the best experience, configure both the Control Plane and Observability Plane MCP servers together. Many observability tools use resource UUIDs (for projects, components, deployments, etc.) as parameters. These UUIDs can be obtained from the Control Plane MCP server, making it much easier to query observability data.
Example workflow:
- Use Control Plane MCP to list components and get their UUIDs
- Use those UUIDs with Observability Plane MCP to fetch logs, metrics, or traces for specific components
Available Toolsβ
Control Plane MCP Serverβ
The Control Plane MCP server provides 56 tools organized into the following categories:
Namespace Tools (4)
list_namespacesβ List all namespaces (top-level containers for organizing projects, components, and resources)get_namespaceβ Get detailed information about a specific namespacecreate_namespaceβ Create a new namespacelist_secret_referencesβ List all secret references (credentials and sensitive configuration) for a namespace
Project Tools (3)
list_projectsβ List all projects in a namespace (logical groupings of related components sharing deployment pipelines)get_projectβ Get detailed project information including deployment pipeline configuration and component summarycreate_projectβ Create a new project in a namespace
Component Tools (24)
list_componentsβ List all components in a project (deployable units with independent build and deployment lifecycles)get_componentβ Get detailed component info including configuration, deployment status, and buildscreate_componentβ Create a new component in a projectpatch_componentβ Partially update a component's configuration (autoDeploy, parameters, etc.)get_component_workloadsβ Get real-time workload info (running pods, status, resource usage) across all environmentslist_component_releasesβ List all releases (immutable snapshots at a specific build) for a componentcreate_component_releaseβ Create a new release from the latest build of a componentget_component_releaseβ Get detailed release info including build information, image tags, and deployment statusget_component_schemaβ Get the JSON schema definition for a component's configuration optionsget_component_release_schemaβ Get the JSON schema definition for a component releaselist_release_bindingsβ List release bindings associating releases with environments; optionally filter by environmentpatch_release_bindingβ Update a release binding's configuration (release, overrides, traits, workload settings)deploy_releaseβ Deploy a component release to the lowest environment in the deployment pipelinepromote_componentβ Promote a release from one environment to another following the deployment pipelinecreate_workloadβ Create or update a workload for a component (runtime spec: containers, resources, env vars)update_component_bindingβ Update a component binding's release state (Active, Suspend, or Undeploy)list_component_traitsβ List all trait instances attached to a component (e.g., autoscaling, ingress)update_component_traitsβ Replace all trait instances on a componentget_environment_releaseβ Get the Release spec and status for a component deployed in a specific environmentlist_component_workflowsβ List available ComponentWorkflow templates that can be triggered for a componentget_component_workflow_schemaβ Get the JSON schema for a ComponentWorkflow templatetrigger_component_workflowβ Trigger a workflow run for a component (e.g., build, test, deploy), optionally at a specific commitlist_component_workflow_runsβ List all workflow run executions for a component with status and resultsupdate_component_workflow_schemaβ Update or initialize workflow schema configuration for a component
Build Tools (5)
list_build_templatesβ List available build templates (Docker, Buildpacks, Kaniko, etc.) in a namespacetrigger_buildβ Trigger a new build for a component at a specific commitlist_buildsβ List all builds for a component with status, commit info, and image tagsget_build_observer_urlβ Get the observability dashboard URL for component builds (logs, pipeline stages)list_buildplanesβ List all build planes (dedicated build infrastructure) in a namespace
Deployment Tools (2)
get_deployment_pipelineβ Get the deployment pipeline configuration showing environment progression and promotion policiesget_component_observer_urlβ Get the observability dashboard URL for a deployed component in an environment
Infrastructure Tools (15)
list_environmentsβ List all environments (deployment targets like dev, staging, production) in a namespaceget_environmentβ Get detailed environment info including data plane, deployed components, and resource quotascreate_environmentβ Create a new environment in a namespacelist_dataplanesβ List all data planes (clusters where workloads execute) in a namespaceget_dataplaneβ Get detailed data plane info including cluster details, capacity, and healthcreate_dataplaneβ Create a new data plane using a cluster agentlist_component_typesβ List all available component types (WebApplication, Service, ScheduledTask, etc.)get_component_type_schemaβ Get the JSON schema for a component typelist_workflowsβ List all available component-workflows in a namespaceget_workflow_schemaβ Get the JSON schema for a workflow's configuration optionslist_traitsβ List all available traits (autoscaling, ingress, service mesh, etc.) in a namespaceget_trait_schemaβ Get the JSON schema for a trait's configuration optionslist_observability_planesβ List all ObservabilityPlanes providing monitoring, logging, and tracing capabilitieslist_component_workflows_org_levelβ List all ComponentWorkflow templates available at the namespace levelget_component_workflow_schema_org_levelβ Get the schema for a namespace-level ComponentWorkflow template
Schema Tools (1)
explain_schemaβ Get the schema definition of any OpenChoreo Kubernetes resource in structured JSON format; supports drilling into nested fields
Resource Tools (2)
apply_resourceβ Apply (create or update) a Kubernetes resource using server-side apply (openchoreo.dev API group only)delete_resourceβ Delete a Kubernetes resource (openchoreo.dev API group only)
Observability Plane MCP Serverβ
The Observability Plane MCP server provides 7 tools covering logs, traces, and metrics:
get_component_logsβ Retrieve logs from a specific component in an environment; supports filtering by time range, log levels, search phrases, versions, and log type (application or build)get_project_logsβ Retrieve aggregated logs across all components within a project; useful for cross-service investigationget_gateway_logsβ Retrieve API gateway (Envoy-based) logs for a namespace covering HTTP traffic, routing, rate limiting, and auth eventsget_namespace_logsβ Retrieve logs across an entire namespace with Kubernetes pod label filtering for cross-project and infrastructure-level debuggingget_tracesβ Retrieve distributed tracing spans by trace ID or component; returns OpenTelemetry span data with durations, timestamps, and service dependenciesget_component_resource_metricsβ Retrieve time-series CPU and memory metrics for a component (usage, requests, limits) sampled at 5-minute intervalsget_component_http_metricsβ Retrieve time-series HTTP metrics for a component including request counts, latency percentiles (p50/p95/p99), and throughput at 5-minute intervals
Finding MCP Server URLsβ
MCP server URLs follow a simple pattern based on the respective service's hostname:
- Control Plane MCP Server:
<control-plane-api-hostname>/mcp - Observability Plane MCP Server:
<observer-service-hostname>/mcp
Determining Your Hostnamesβ
The hostnames are constructed from the global.baseDomain value configured during Helm installation:
- Control Plane API:
api.<global.baseDomain> - Observability Observer:
observer.<global.baseDomain>
To find your configured base domain:
# Check the base domain from Helm release values
helm get values openchoreo-control-plane -n openchoreo-control-plane | grep baseDomain
# Or derive it from the API hostname (OpenChoreo uses Gateway API HTTPRoutes)
kubectl get httproute openchoreo-api -n openchoreo-control-plane -o jsonpath='{.spec.hostnames[0]}' | sed 's/^api\.//'
Once you have your baseDomain, construct your MCP server URLs:
- Control Plane:
http://api.<baseDomain>:<port>/mcporhttps://api.<baseDomain>/mcp - Observability:
http://observer.<baseDomain>:<port>/mcporhttps://observer.<baseDomain>/mcp
Example: Local k3d Setupβ
If you followed the local setup guide, your MCP server URLs will be:
Single Cluster Installation:
- Control Plane MCP Server:
http://api.openchoreo.localhost:8080/mcp - Observability Plane MCP Server:
http://observer.openchoreo.localhost:11080/mcp
Multi-Cluster Installation:
- Control Plane MCP Server:
http://api.openchoreo.localhost:8080/mcp - Observability Plane MCP Server:
http://observer.observability.openchoreo.localhost:11087/mcp
The k3d local setup examples show different ports and hostnames:
- Control plane services use port 8080
- Observability plane uses port 11080 (single cluster) or 11087 (multi-cluster)
- Multi-cluster deployments use distinct subdomain patterns for namespace isolation
Default OAuth Applicationsβ
OpenChoreo ships with pre-created OAuth applications in the default Thunder identity provider for quick-start configuration:
| Application | Client ID | Grant Type | Use Case |
|---|---|---|---|
| Browser-Based (Public) | user_mcp_client | Authorization Code + PKCE | Interactive use with AI agents that support browser-based OAuth (Claude Code, Cursor) |
| Service (Confidential) | service_mcp_client | Client Credentials | Programmatic access, any AI agent via bearer token |
These default applications eliminate the need to manually create OAuth apps for common setups.
Next Stepsβ
To configure your AI assistant to connect to OpenChoreo MCP servers, follow the AI Configuration Guide to set up authentication and connect your AI agent.