Environment Dependencies
Before starting deployment, please ensure your environment meets the following requirements:
š§ System Requirements
- Kubernetes: 1.20 or higher (K3s recommended)
- Helm: 3.0 or higher
- NGINX Ingress Controller: Required for external access
- Persistent Storage: Default storage class required
- Resources: Minimum 2 CPU Cores / 4GB RAM
Deployment Guide
š Option 1: Automated Installation (Recommended)
Use the install-fast.sh script to automatically handle environment setup, configuration, and deployment. This is the recommended method for most users.
# 1. Clone the repository git clone https://github.com/Kymo-MCP/mcpcan-deploy.git cd mcpcan-deploy # 2. Run the fast installation script # Standard Installation (International Network) ./scripts/install-fast.sh # Accelerated Installation (China Mirrors) ./scripts/install-fast.sh --cn
š ļø Automated Script Workflow
- 1. Environment Check: Automatically checks and installs K3s, Helm, and Ingress Controller if they are missing.
- 2. Configuration Generation: Creates
values-custom.yamlfrom the template and applies mirror settings if--cnis used. - 3. Smart Deployment: Detects existing installations and performs a safe upgrade or a fresh install.
- 4. Health Verification: Monitors pod status in real-time and waits for all services to be healthy.
- 5. Access Info: Automatically detects and outputs the service access URL.
Option 2: Manual Helm Installation
For advanced users who need to customize the deployment process or integrate with existing pipelines.
Method A: Local Chart Deployment (Customizable)
Best for developers who want to modify the chart or values extensively.
# 1. Prepare Configuration cp helm/values.yaml helm/values-custom.yaml # 2. Customize Configuration (Optional) # vim helm/values-custom.yaml # 3. Install or Upgrade helm upgrade --install mcpcan ./helm -f helm/values-custom.yaml \ --namespace mcpcan --create-namespace --timeout 600s --wait
Method B: Helm Repository Deployment (Standard)
Best for standard production deployments using versioned charts.
# 1. Add Repository helm repo add mcpcan https://kymo-mcp.github.io/mcpcan-deploy/ helm repo update # 2. Install Chart helm install mcpcan mcpcan/mcpcan-deploy \ --namespace mcpcan --create-namespace --timeout 600s --wait
Deployment Management
Upgrade Deployment
# Upgrade to new version helm upgrade mcpcan ./helm -f helm/values-custom.yaml \ --set global.version=v1.1.0 \ --namespace mcpcan --timeout 600s --wait # View upgrade history helm history mcpcan --namespace mcpcan
Uninstall Deployment
# Uninstall Helm Release helm uninstall mcpcan --namespace mcpcan # Clean up namespace kubectl delete namespace mcpcan
# Clean up persistent data (use with caution) sudo rm -rf /data/mcpcan
Common Management Commands
View Status
# View Helm Release status helm status mcpcan --namespace mcpcan # View Pod status kubectl get pods -n mcpcan # View service status kubectl get svc -n mcpcan # View Ingress status kubectl get ingress -n mcpcan
View Logs
# View specific service logs kubectl logs -n mcpcan -l app=mcp-gateway kubectl logs -n mcpcan -l app=mcp-authz kubectl logs -n mcpcan -l app=mcp-market kubectl logs -n mcpcan -l app=mcp-web # View logs in real-time kubectl logs -n mcpcan -l app=mcp-gateway -f
Troubleshooting
# View Pod detailed information kubectl describe pod <pod-name> -n mcpcan # View events kubectl get events -n mcpcan --sort-by='.lastTimestamp' # Enter Pod for debugging kubectl exec -it <pod-name> -n mcpcan -- /bin/sh # Port forwarding (local debugging) kubectl port-forward svc/mcp-gateway-svc 8080:8080 -n mcpcan kubectl port-forward svc/mcp-web-svc 3000:3000 -n mcpcan
Software Architecture Design
MCPCan is built on a modern Kubernetes microservice architecture, providing comprehensive MCP service lifecycle management capabilities.
Core Services
š MCPCan-Web
Vue.js-based frontend service providing modern web interface for MCP service management
šŖ MCPCan-Gateway
MCP gateway service responsible for request routing, protocol conversion, and authentication
š MCPCan-Authz
Authentication and authorization service handling user management and access control
šŖ MCPCan-Market
MCP service marketplace for discovering, publishing, and managing MCP services
āļø MCPCan-Init
Initialization service for system setup and configuration
šļø Data Storage
MySQL: Primary database service
Redis: Cache service for session management
Technology Stack
šØ Frontend
- Framework: Vue.js 3.5+ (Composition API)
- Language: TypeScript
- Styling: UnoCSS, SCSS
- UI Components: Element Plus
- State Management: Pinia
- Build Tool: Vite
āļø Backend
- Language: Go 1.24.2+
- Framework: Gin, gRPC
- Database: MySQL, Redis
- Containerization: Docker, Kubernetes
Documentation and Support
š Resources
š Getting Help
If you encounter issues, please:
- View logs:
kubectl logs -n mcpcan <pod-name> - Check events:
kubectl get events -n mcpcan - Submit Issue to project repository
- Contact technical support: opensource@kymo.cn