Model Context Protocol (MCP) Server logo

Model Context Protocol (MCP) Server

by MCP-Mirror

This repository contains the Kubernetes deployment configuration for the MCP server on Azure Kubernetes Service (AKS). It provides a platform for managing and serving model context.

View on GitHub

Last updated: N/A

Model Context Protocol (MCP) Server

This repository contains the Kubernetes deployment configuration for the MCP server on Azure Kubernetes Service (AKS).

Prerequisites

  • Azure CLI
  • kubectl
  • Docker
  • Node.js 18+

Project Structure

.
├── k8s/
│   ├── deployment.yaml    # Kubernetes deployment configuration
│   ├── service.yaml      # Kubernetes service configuration
│   └── configmap.yaml    # Kubernetes configmap for environment variables
├── src/                  # Source code directory
├── Dockerfile           # Container build configuration
├── package.json         # Node.js dependencies
└── tsconfig.json        # TypeScript configuration

Deployment Steps

  1. Build the Docker image:
docker build -t mcp-server:latest .
  1. Push the image to Azure Container Registry (ACR):
az acr login --name <your-acr-name>
docker tag mcp-server:latest <your-acr-name>.azurecr.io/mcp-server:latest
docker push <your-acr-name>.azurecr.io/mcp-server:latest
  1. Apply Kubernetes manifests:
kubectl apply -f k8s/
  1. Verify deployment:
kubectl get pods
kubectl get services

Configuration

The application can be configured through environment variables defined in the ConfigMap (k8s/configmap.yaml).

Health Checks

The application exposes a /health endpoint for Kubernetes health checks.

Monitoring

  • Resource usage can be monitored through Azure Monitor
  • Application logs are available through kubectl logs

Security

  • The application uses HTTPS
  • CORS is configured for secure cross-origin requests
  • Rate limiting is implemented to prevent abuse
  • Helmet.js is used for security headers

Scaling

The deployment is configured with 3 replicas by default. You can scale up or down using:

kubectl scale deployment mcp-server --replicas=<number>