JSPM

jira-rollback-mcp-server

1.1.6
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1
  • Score
    100M100P100Q62647F
  • License MIT

Production-ready MCP Rollback Server with HTTPS security, Cursor integration, and comprehensive CLI for managing rollback operations across multiple platforms

Package Exports

  • jira-rollback-mcp-server
  • jira-rollback-mcp-server/dist/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (jira-rollback-mcp-server) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

🛡️ Rollback MCP Server

A coordinated rollback system for MCP servers that provides team safety controls and cross-platform rollback capabilities.

🚀 Features

  • Cross-Platform Rollback - Coordinate rollbacks across Jira, GitHub, Slack, Confluence, Figma
  • Team Safety Controls - Approval workflows and permission-based access
  • Real-time Monitoring - Track all changes and rollback operations
  • State Snapshots - Before/after state capture for precise rollback
  • MCP Integration - Connect with other MCP servers seamlessly
  • Free Tier Deployment - Deploy on Supabase + Vercel for free

📋 Prerequisites

  • Node.js 18+
  • Supabase account (free tier)
  • Vercel account (free tier)
  • MCP server connections (Jira, GitHub, etc.)

🛠️ Setup

1. Clone and Install

git clone <your-repo>
cd rollback-server
npm install

2. Supabase Setup

  1. Create Supabase Project

    • Go to supabase.com
    • Create new project
    • Get your project URL and anon key
  2. Run Database Schema

    • Go to SQL Editor in Supabase
    • Copy and run supabase-schema.sql
  3. Environment Variables

    cp .env.example .env

    Add your Supabase credentials:

    SUPABASE_URL=your_supabase_url
    SUPABASE_ANON_KEY=your_supabase_anon_key

3. Local Development

# Start development server
npm run dev

# Build for production
npm run build
npm start

4. Deploy to Vercel

# Install Vercel CLI
npm i -g vercel

# Deploy
vercel --prod

🔧 Configuration

MCP Server Connections

Connect to your existing MCP servers:

{
  "mcpServers": {
    "rollback-server": {
      "command": "node",
      "args": ["dist/index.js"],
      "env": {
        "SUPABASE_URL": "your_supabase_url",
        "SUPABASE_ANON_KEY": "your_supabase_anon_key"
      }
    }
  }
}

Platform API Keys

Add your platform API keys to environment variables:

# Jira
JIRA_URL=https://your-domain.atlassian.net
JIRA_USERNAME=your_email
JIRA_API_TOKEN=your_api_token

# GitHub
GITHUB_TOKEN=your_github_token

# Slack
SLACK_BOT_TOKEN=your_slack_bot_token

# Confluence
CONFLUENCE_URL=https://your-domain.atlassian.net
CONFLUENCE_USERNAME=your_email
CONFLUENCE_API_TOKEN=your_api_token

# Figma
FIGMA_TOKEN=your_figma_token

🎯 Usage

Register a Rollback Task

// When a change is made, register it for potential rollback
await rollbackServer.register_rollback({
  taskId: "task_123",
  platform: "jira",
  operation: "update",
  agentId: "agent_456",
  beforeState: {
    id: "state_789",
    timestamp: "2024-01-01T00:00:00Z",
    data: {
      issueKey: "PROJ-123",
      fields: { summary: "Old Summary" }
    }
  }
});

Execute Rollback

// Execute rollback with approval
await rollbackServer.execute_rollback({
  rollbackId: "rollback_123",
  approverId: "user_456",
  force: false
});

Approve Rollback

// Approve or reject a rollback
await rollbackServer.approve_rollback({
  rollbackId: "rollback_123",
  approverId: "user_456",
  approved: true,
  comment: "Looks good to rollback"
});

🔗 Integration Examples

With Your Enhanced Orchestrator

// In your orchestrator, add rollback registration
import { RollbackMCPServer } from './rollback-server';

const rollbackServer = new RollbackMCPServer();

// After each task execution
await rollbackServer.register_rollback({
  taskId: task.id,
  platform: task.platform,
  operation: task.operation,
  agentId: task.agentId,
  beforeState: task.beforeState
});

With Jira MCP Server

{
  "mcpServers": {
    "jira": {
      "command": "mcp-jira-server",
      "args": ["--config", "jira-config.json"]
    },
    "rollback": {
      "command": "node",
      "args": ["dist/index.js"]
    }
  }
}

📊 Monitoring

Real-time Dashboard

Access your rollback dashboard at:

https://your-vercel-app.vercel.app

API Endpoints

  • GET /api/rollbacks - List rollback tasks
  • POST /api/rollbacks - Register new rollback
  • PUT /api/rollbacks/:id/approve - Approve rollback
  • POST /api/rollbacks/:id/execute - Execute rollback

🛡️ Safety Features

Approval Workflows

  1. Automatic Registration - All changes are registered
  2. Manual Approval - Requires team member approval
  3. Force Rollback - Emergency rollback option
  4. Audit Trail - Complete history of all actions

Team Roles

  • Admin - Full access to all features
  • Approver - Can approve/reject rollbacks
  • Viewer - Read-only access

🚨 Emergency Procedures

Immediate Rollback

// Force rollback without approval
await rollbackServer.execute_rollback({
  rollbackId: "rollback_123",
  approverId: "emergency_user",
  force: true
});

Bulk Rollback

// Rollback all recent changes by an agent
const tasks = await rollbackServer.list_rollbacks({
  agentId: "problematic_agent",
  status: "completed"
});

for (const task of tasks) {
  await rollbackServer.execute_rollback({
    rollbackId: task.id,
    approverId: "admin",
    force: true
  });
}

📈 Free Tier Limits

Supabase (Free)

  • ✅ 500MB database storage
  • ✅ 50,000 API calls/month
  • ✅ Unlimited real-time subscriptions
  • ✅ 50,000 users

Vercel (Free)

  • ✅ 100GB bandwidth/month
  • ✅ 100GB-hours serverless functions
  • ✅ Unlimited deployments

Perfect for small teams (2-5 people)!

🔧 Troubleshooting

Common Issues

  1. Connection Failed

    • Check your Supabase credentials
    • Verify environment variables
  2. Rollback Failed

    • Check platform API keys
    • Verify before state data
  3. Approval Required

    • Ensure user has approver role
    • Check team member permissions

Debug Mode

# Enable debug logging
DEBUG=rollback:* npm run dev

🤝 Contributing

  1. Fork the repository
  2. Create feature branch
  3. Make changes
  4. Test thoroughly
  5. Submit pull request

📄 License

MIT License - see LICENSE file for details

🆘 Support

  • Issues: GitHub Issues
  • Discussions: GitHub Discussions
  • Documentation: Wiki

Built with ❤️ for team safety and coordinated rollback operations