1.5.0 • Published 9 months ago

@mcp-deployment/server v1.5.0

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

MCP Deployment Server

Deploy static websites and AWS infrastructure instantly from your IDE using MCP (Model Context Protocol).

Features

  • 🌐 Static Website Deployment: Deploy HTML, CSS, JavaScript sites to the cloud instantly
  • 🏗️ Infrastructure Deployment: Deploy AWS CloudFormation templates directly from your IDE
  • 📊 Infrastructure Validation: Validate CloudFormation templates against security and compliance rules
  • 🔒 Security-First: Built-in validation for encryption, tagging, and security best practices
  • Framework Support: Automatic detection and building of Next.js, React, and other framework projects
  • 🔄 Stack Management: Create, update, delete, and monitor CloudFormation stacks
  • 📋 Real-time Status: Get deployment progress and stack outputs instantly

Quick Start

1. Install

npm install -g @mcp-deployment/server

2. Configure

Option A: Environment Variables

export MCP_DEPLOYMENT_API_ENDPOINT="https://api.example.com/dev"
export MCP_DEPLOYMENT_API_KEY="your-api-key"

Option B: Config File

{
  "apiEndpoint": "https://api.example.com/dev",
  "apiKey": "your-api-key"
}

3. Set up AWS Credentials (for infrastructure deployment)

# Method 1: Environment variables
export AWS_ACCESS_KEY_ID="your-access-key"
export AWS_SECRET_ACCESS_KEY="your-secret-key"

# Method 2: AWS CLI
aws configure

# Method 3: AWS credentials file
# ~/.aws/credentials
[default]
aws_access_key_id = your-access-key
aws_secret_access_key = your-secret-key

4. Use in Your IDE

The server provides these MCP tools:

Available Tools

Website Deployment

deploy

Deploy static websites or framework projects to the cloud.

Parameters:

  • directory (required): Full path to your project directory
  • outputDir (optional): Path to built files (e.g., "dist", "build", "out")
  • projectName (optional): Custom name for deployment

Example:

// Deploy a static site
deploy({
  directory: "/Users/username/my-website",
  projectName: "my-awesome-site"
})

// Deploy a built Next.js app
deploy({
  directory: "/Users/username/my-nextjs-app",
  outputDir: "out"
})

Infrastructure Management

validate-infrastructure

Validate CloudFormation templates against security and compliance rules.

Parameters:

  • template (required): CloudFormation template (YAML or JSON)
  • stackName (required): Name for the stack
  • appType (optional): Application type for additional validation

Example:

validate_infrastructure({
  template: `
AWSTemplateFormatVersion: '2010-09-09'
Resources:
  MyBucket:
    Type: AWS::S3::Bucket
    Properties:
      BucketEncryption:
        ServerSideEncryptionConfiguration:
          - ServerSideEncryptionByDefault:
              SSEAlgorithm: AES256
      Tags:
        - Key: Environment
          Value: production
        - Key: Project
          Value: my-app
  `,
  stackName: "my-infrastructure-stack"
})

deploy-infrastructure

Deploy CloudFormation templates to AWS. Creates or updates stacks automatically.

Parameters:

  • template (required): CloudFormation template content
  • stackName (required): Stack name
  • parameters (optional): Stack parameters as key-value pairs
  • tags (optional): Additional tags for the stack
  • region (optional): AWS region (default: us-east-1)
  • capabilities (optional): IAM capabilities required

Example:

deploy_infrastructure({
  template: cloudformation_template,
  stackName: "my-app-infrastructure",
  parameters: {
    "Environment": "production",
    "InstanceType": "t3.micro"
  },
  tags: {
    "Project": "my-app",
    "Owner": "team-backend"
  },
  region: "us-west-2"
})

delete-infrastructure

Delete a CloudFormation stack and all its resources.

Parameters:

  • stackName (required): Name of the stack to delete
  • region (optional): AWS region (default: us-east-1)

stack-status

Get the current status and outputs of a CloudFormation stack.

Parameters:

  • stackName (required): Name of the stack
  • region (optional): AWS region (default: us-east-1)

list-stacks

List all CloudFormation stacks in your AWS account.

Parameters:

  • region (optional): AWS region (default: us-east-1)

Deployment History

status

Get the status of your last deployment in this session.

list

List your recent deployments.

Validation Rules

The infrastructure validator checks for:

Security Requirements

  • ✅ S3 bucket encryption enabled
  • ✅ RDS encryption at rest
  • ✅ EBS volume encryption
  • ✅ Lambda environment variable encryption
  • ✅ DynamoDB encryption at rest
  • ✅ Proper VPC security group configurations

Tagging Requirements

  • ✅ All resources have required tags: Environment, Project, Owner
  • ✅ Consistent tagging across resources

Compliance Rules

  • ✅ Public access prevention
  • ✅ Secure default configurations
  • ✅ Resource naming conventions
  • ✅ IAM least privilege principles

Complete Workflow Example

Here's how to deploy a full-stack application:

1. Validate Infrastructure

// First, validate your CloudFormation template
validate_infrastructure({
  template: your_cloudformation_template,
  stackName: "my-app-backend"
})

2. Deploy Infrastructure

// Deploy your AWS resources
deploy_infrastructure({
  template: your_cloudformation_template,
  stackName: "my-app-backend",
  parameters: {
    "Environment": "production"
  },
  tags: {
    "Project": "my-app",
    "Owner": "backend-team"
  }
})

3. Build and Deploy Frontend

// Build your React/Next.js app first (if needed)
// Then deploy the frontend
deploy({
  directory: "/path/to/my-frontend-app",
  outputDir: "build",
  projectName: "my-app-frontend"
})

4. Monitor Status

// Check your infrastructure status
stack_status({
  stackName: "my-app-backend"
})

// Check deployment status
status()

Configuration

MCP Configuration

Add to your MCP settings:

{
  "mcpServers": {
    "mcp-deployment": {
      "command": "mcp-deployment",
      "env": {
        "MCP_DEPLOYMENT_API_ENDPOINT": "https://api.example.com/dev",
        "MCP_DEPLOYMENT_API_KEY": "your-api-key"
      }
    }
  }
}

AWS Regions

Supported AWS regions:

  • us-east-1 (default)
  • us-west-2
  • eu-west-1
  • ap-southeast-1
  • And all other AWS regions

Troubleshooting

AWS Credentials Issues

If you get credential errors:

  1. Check AWS credentials setup:

    aws sts get-caller-identity
  2. Verify IAM permissions - Your AWS user/role needs:

    • cloudformation:*
    • s3:*
    • iam:PassRole
    • Other service permissions based on your template
  3. Regional access - Ensure you have permissions in the target region

Template Validation Failures

  • Fix all validation errors before deployment
  • Ensure all resources have required tags
  • Enable encryption for data storage resources
  • Follow AWS security best practices

Stack Deployment Issues

  • Check CloudFormation events in AWS Console
  • Review stack parameters and template syntax
  • Ensure IAM capabilities are granted if needed
  • Verify resource limits and quotas

Development

Local Development

git clone https://github.com/rachcorp/mcp-deployment-server
cd mcp-deployment-server
npm install
npm run dev

Build

npm run build

Test

npm test

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests
  5. Submit a pull request

License

MIT License - see LICENSE file for details.

Support

1.5.0

9 months ago

1.4.0

9 months ago

1.3.0

9 months ago

1.2.1

9 months ago

1.2.0

9 months ago

1.1.0

10 months ago

1.0.15

10 months ago

1.0.14

10 months ago

1.0.13

10 months ago

1.0.12

10 months ago

1.0.11

10 months ago

1.0.10

10 months ago

1.0.9

10 months ago

1.0.8

10 months ago

1.0.7

10 months ago

1.0.6

10 months ago

1.0.5

10 months ago

1.0.4

10 months ago

1.0.3

10 months ago

1.0.2

10 months ago

1.0.1

10 months ago

1.0.0

10 months ago