Operable is an MCP (Model Context Protocol) server that helps non-operations developers and time-constrained operations personnel quickly respond to incidents in Google Cloud Platform (GCP) and Kubernetes environments. It provides diagnostic capabilities and remediation guidance through any AI chat interface that supports MCP, such as Cursor.
- OAuth Authentication: Secure authentication with GCP using OAuth
- GCP Issues Tools: Query and analyze active issues from GCP Error Reporting
- Logging Tools: Query logs from GCP Cloud Logging and Kubernetes pods
- Kubernetes Tools: Inspect GKE clusters, node pools, and resources
- Monitoring Tools: Query metrics and alerts from GCP Cloud Monitoring
- Documentation Tools: Search GCP and Kubernetes documentation for help
- Remediation Actions: Execute approved remediation steps
- Verification: Confirm successful resolution
- Rollback: Safely revert changes if needed
- Go 1.24 or later
- Google Cloud Platform account with appropriate permissions
- OAuth client credentials for GCP
-
Clone the repository:
git clone https://github.com/ivanvanderbyl/operable.git cd operable
-
Install dependencies:
go mod download
-
Set up OAuth credentials:
- Create OAuth credentials in the Google Cloud Console
- Set the environment variables:
export GOOGLE_CLIENT_ID=your_client_id export GOOGLE_CLIENT_SECRET=your_client_secret
-
Build and run the server:
go run cmd/main.go
-
Connect to the server using an MCP-compatible client like Cursor.
-
Authenticate with your Google Cloud account when prompted.
-
Use the available tools to diagnose and respond to incidents.
-
Build and run the server in SSE mode:
go run cmd/main.go -mode=sse -addr=:8080 -base-url=http://localhost:8080
Available flags:
-mode
: Server mode, either "stdio" (default) or "sse"-addr
: Address to listen on in SSE mode (default: ":8080")-base-url
: Base URL for SSE mode (default: "http://localhost:8080")
-
Connect to the server using an MCP-compatible client that supports SSE mode.
-
Authenticate with your Google Cloud account when prompted.
-
Use the available tools to diagnose and respond to incidents.
list_active_issues
: Lists active issues from GCP Error Reportingget_issue_details
: Gets detailed information about a specific error group
query_logs
: Queries logs from GCP Cloud Loggingget_pod_logs
: Gets logs for a specific Kubernetes pod
list_clusters
: Lists GKE clusters in a projectget_cluster_info
: Gets detailed information about a GKE clusterlist_node_pools
: Lists node pools in a GKE cluster
query_metrics
: Queries metrics from GCP Cloud Monitoringlist_alerts
: Lists active alerts from GCP Cloud Monitoring
search_gcp_docs
: Searches Google Cloud documentationsearch_k8s_docs
: Searches Kubernetes documentationget_error_docs
: Gets documentation for a specific error code or message
The system is implemented as an MCP server using the mark3labs/mcp-go library, consisting of:
- Core MCP Server: Implements the MCP protocol for AI chat interface integration
- Authentication Layer: Handles OAuth authentication with GCP
- Resource Access Layer: Provides access to GCP and Kubernetes resources
- Tools Layer: Implements diagnostic and remediation capabilities
- Documentation Integration: Accesses relevant documentation and best practices
MIT
Contributions are welcome! Please feel free to submit a Pull Request.