Skip to content

Deployment Guide

Deploy MCP Notify to your infrastructure.

Quick Comparison

Platform Best For Difficulty Cost
Vercel Documentation site ⭐ Easy Free
Railway API + Full stack ⭐ Easy Free tier
Docker Compose Self-hosted, development ⭐⭐ Medium Your infra
Kubernetes Production, scale ⭐⭐⭐ Advanced Variable

Minimum Requirements

Component Minimum Recommended
CPU 1 core 2 cores
Memory 512 MB 1 GB
Storage 1 GB 10 GB
PostgreSQL 14+ 15+
Redis 6+ 7+

Architecture Overview

graph TB
    subgraph External
        U[Users] 
        R[MCP Registry]
    end

    subgraph Your Infrastructure
        LB[Load Balancer]
        subgraph App Servers
            A1[MCP Watch 1]
            A2[MCP Watch 2]
        end
        PG[(PostgreSQL)]
        RD[(Redis)]
    end

    U --> LB
    LB --> A1 & A2
    A1 & A2 --> PG
    A1 & A2 --> RD
    A1 & A2 --> R

Environment Variables

All deployment methods use these environment variables:

Required

Variable Description
DATABASE_URL PostgreSQL connection string
REDIS_URL Redis connection string

Optional

Variable Default Description
PORT 8080 HTTP server port
API_KEY - API authentication key
LOG_LEVEL info Logging level
POLL_INTERVAL 5m Registry poll interval
METRICS_ENABLED true Enable Prometheus metrics

Health Checks

All deployments should configure health checks:

  • Liveness: GET /health
  • Readiness: GET /ready
Bash
# Check health
curl http://localhost:8080/health
# {"status": "healthy"}

# Check readiness
curl http://localhost:8080/ready
# {"status": "ready", "database": "ok", "redis": "ok"}

Database Migrations

Migrations run automatically on startup. To run manually:

Bash
mcp-notify migrate up

Or with Docker:

Bash
docker run --rm \
  -e DATABASE_URL="..." \
  ghcr.io/nirholas/mcp-notify:latest \
  migrate up

Security Considerations

Production Checklist

  • Use strong API keys
  • Enable TLS/HTTPS
  • Restrict database access
  • Set up network policies
  • Configure rate limiting
  • Enable audit logging
  • Regular backups