Giant Swarm App Platform MCP Server
Un serveur pour gérer les déploiements de Giant Swarm App Platform à l'aide d'identifiants Kubernetes.
Documentation
MCP Server for Giant Swarm App Platform
An MCP (Model Context Protocol) server that provides tools and resources for managing Giant Swarm App Platform deployments.
Features
- App Management: Create, update, list, and delete Giant Swarm apps
- Catalog Support: Browse and search app catalogs and available app versions
- Configuration Management: Handle app configurations via ConfigMaps and Secrets
- Multi-namespace Support: Work with organization-based namespaces
- CAPI Integration: Support for workload cluster app deployments
- Prompts: Interactive guides for common operations
Prerequisites
- Go 1.21 or later
- Access to a Giant Swarm management cluster
- Kubernetes credentials configured (
kubectlaccess)
Installation
Prerequisites
- Go 1.21 or later
- Access to a Giant Swarm management cluster
- Valid kubeconfig for authentication
Building from Source
# Clone the repository
git clone https://github.com/giantswarm/mcp-giantswarm-apps.git
cd mcp-giantswarm-apps
# Install dependencies
make deps
# Build the server
make build
# Install to $GOPATH/bin
make install
Usage
Running the Server
The server runs using stdio transport by default:
# Run directly
./build/mcp-giantswarm-apps
# Or if installed
mcp-giantswarm-apps
Configuration
The server uses your current kubeconfig context by default. You can specify a different context:
export KUBECONFIG=/path/to/kubeconfig
mcp-giantswarm-apps
Integration with AI Assistants
To use with Claude Desktop or other MCP-compatible clients, add to your configuration:
{
"mcpServers": {
"giantswarm-apps": {
"command": "mcp-giantswarm-apps",
"args": []
}
}
}
Available Tools
App Management
app_list- List Giant Swarm apps with filtering optionsapp_get- Get detailed information about a specific appapp_create- Create a new Giant Swarm appapp_update- Update an existing appapp_delete- Delete an app
Catalog Management
catalog_list- List available app catalogscatalog_get- Get detailed catalog informationcatalog_refresh- Refresh catalog entriescatalog_search- Search for apps across catalogs
App Catalog Entries
appcatalogentry_list- List apps from catalogsappcatalogentry_get- Get detailed app informationappcatalogentry_versions- List available versionsappcatalogentry_search- Search catalog entries
Configuration Management
config_get- Get app configurationconfig_create- Create new configurationconfig_update- Update configurationconfig_values- Get configuration values
Organization Management
organization_list- List organizationsorganization_namespaces- List organization namespacesorganization_info- Get namespace detailsorganization_validate_access- Check access permissions
Cluster Management (CAPI)
cluster_list- List available workload clusterscluster_get- Get detailed cluster informationcluster_apps- List apps deployed to a specific cluster
System Tools
health- Check server and connection healthkubernetes_contexts- List available contexts
Available Resources
The server exposes various resources:
app://{namespace}/{name}- App details and statuscatalog://{name}- Catalog informationconfig://{namespace}/{app}/values- App configuration
Usage Examples
List workload clusters
# List all clusters
mcp cluster_list
# List clusters for an organization
mcp cluster_list --organization giantswarm
# List only ready clusters
mcp cluster_list --ready-only
Deploy app to workload cluster
# Deploy app to a specific workload cluster
mcp app_create \
--name nginx-ingress \
--namespace org-giantswarm \
--catalog giantswarm \
--app nginx-ingress-controller \
--version 2.1.0 \
--cluster prod-cluster
List apps in a workload cluster
# List all apps in a specific cluster
mcp cluster_apps --cluster prod-cluster --organization giantswarm
Development
Project Structure
.
├── cmd/mcp-server/ # Main server entry point
├── pkg/
│ ├── app/ # App management logic
│ ├── catalog/ # Catalog handling
│ └── config/ # Configuration management
├── internal/
│ └── k8s/ # Kubernetes client utilities
└── Makefile # Build automation
Running Tests
make test
Contributing
Please see CONTRIBUTING.md for guidelines.
License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Support
For issues and feature requests, please use the GitHub issue tracker.