MCPCan Deployment Guide

A comprehensive microservices platform providing MCP service lifecycle management capabilities with modern Kubernetes architecture

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
āœ… After deployment is complete, you can access through:
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
āš ļø Warning: The following command will permanently delete all data. Use with caution!
# 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

šŸ†˜ Getting Help

If you encounter issues, please:

  1. View logs: kubectl logs -n mcpcan <pod-name>
  2. Check events: kubectl get events -n mcpcan
  3. Submit Issue to project repository
  4. Contact technical support: opensource@kymo.cn