Environment Dependencies
Before starting deployment, please ensure your environment meets the following requirements:
š§ System Requirements
- Kubernetes: 1.20 or higher
- Helm: 3.0 or higher
- NGINX Ingress Controller: Required if ingress is enabled
- Persistent Storage: For data persistence
- Resources: At least 4GB RAM and 2 CPU cores
š One-Click Installation
For clean environments, we recommend using the provided one-click installation script:
# Install complete runtime environment ./scripts/install-run-environment.sh # Use China mirror sources ./scripts/install-run-environment.sh --cn
Quick Start
š Prerequisites: Environment Dependencies Installation Guide
š Helm Repository Installation (Recommended)
# Step 1: Add MCPCan Helm repository helm repo add mcpcan https://kymo-mcp.github.io/mcpcan-deploy/ # Step 2: Update Helm repository helm repo update mcpcan # Step 3: Install latest version helm install mcpcan mcpcan/mcpcan-deploy --namespace mcpcan --create-namespace --timeout 600s --wait # Deploy with public IP helm install mcpcan mcpcan/mcpcan-deploy \ --set global.publicIP=192.168.1.100 \ --set infrastructure.mysql.auth.rootPassword=secure-password \ --set infrastructure.redis.auth.password=secure-password \ --namespace mcpcan --create-namespace --timeout 600s --wait # Deploy with domain name helm install mcpcan mcpcan/mcpcan-deploy \ --set global.domain=mcp.example.com \ --set infrastructure.mysql.auth.rootPassword=secure-password \ --set infrastructure.redis.auth.password=secure-password \ --namespace mcpcan --create-namespace --timeout 600s --wait
Web Service:
http://<node-ip>
š§ Custom Domain Deployment
If you have your own domain, you can configure it following these steps:
Step 1: Clone the repository (if not using Helm repository)
# Clone the MCPCan deployment repository git clone https://github.com/kymo-mcp/mcpcan-deploy.git cd mcpcan-deploy
Step 2: Copy and modify configuration file
# Copy default configuration cp helm/values.yaml helm/values-custom.yaml
Step 3: Modify domain configuration
Edit helm/values-custom.yaml:
# Global configuration
global:
# Set your domain, e.g.: demo.mcpcan.com
domain: "demo.mcpcan.com"
# Ingress configuration
ingress:
tls:
enabled: true
# Configure certificate content for self-signed certificates
crt: |
-----BEGIN CERTIFICATE-----
# Your certificate content
-----END CERTIFICATE-----
key: |
-----BEGIN PRIVATE KEY-----
# Your private key content
-----END PRIVATE KEY-----
Step 4: Deploy with custom configuration
# Deploy with custom configuration helm install mcpcan ./helm -f helm/values-custom.yaml \ --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