the-real-therealorry/mcp-server
If you are the rightful owner of mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
A production-grade Model Context Protocol (MCP) server with a React dashboard, designed for security, scalability, and maintainability.
load_zip
Securely extract and process ZIP archives.
mark_approved
Context approval workflow management.
snapshot
Create comprehensive system state snapshots.
MCP Server - Production Monorepo
A production-grade Model Context Protocol (MCP) server with a beautiful React dashboard, built with security, scalability, and maintainability in mind.
๐ Features
Backend (Node.js + Express + TypeScript)
- Full MCP Protocol Compliance - Complete implementation of the Model Context Protocol
- Secure ZIP Processing - Advanced security validation, zip bomb protection, path traversal prevention
- Context Management - Approval workflow for uploaded content
- System Snapshots - Comprehensive state snapshots with configurable options
- Production Security - Rate limiting, CORS, helmet, input validation
- Structured Logging - Winston-based logging with rotation and levels
- Health Monitoring - Comprehensive health checks and system statistics
Frontend (React + TypeScript + Tailwind)
- Modern Dashboard - Beautiful, responsive interface with dark/light mode
- Real-time Monitoring - Live system stats, logs, and activity feeds
- Secure File Upload - Drag-and-drop ZIP upload with progress tracking
- Context Browser - Search, filter, and manage uploaded contexts
- Log Viewer - Real-time log streaming with filtering and export
- Tool Management - MCP tool monitoring and configuration
MCP Tools
- load_zip - Securely extract and process ZIP archives
- mark_approved - Context approval workflow management
- snapshot - Create comprehensive system state snapshots
๐๏ธ Architecture
mcp-server/
โโโ backend/ # Node.js + Express API server
โ โโโ src/
โ โ โโโ mcp/ # MCP protocol implementation
โ โ โโโ api/ # REST API routes and middleware
โ โ โโโ utils/ # Utilities and security
โ โ โโโ types.ts # TypeScript definitions
โโโ dashboard/ # React frontend
โ โโโ src/
โ โ โโโ components/ # Reusable UI components
โ โ โโโ pages/ # Application pages
โ โ โโโ api.ts # API client
โโโ data/ # Runtime data storage
โ โโโ zips/ # Uploaded ZIP files
โ โโโ extracted/ # Extracted file contents
โ โโโ vds/ # Vector database storage
โ โโโ snapshots/ # System snapshots
โโโ logs/ # Application logs
๐ฆ Quick Start
Prerequisites
- Node.js 18+
- npm 8+
Local Development
- Clone and install dependencies:
git clone <repository>
cd mcp-server
npm install
- Start development servers:
npm run dev
This starts both the backend (port 3001) and frontend (port 5173) in development mode.
- Access the application:
- Dashboard: http://localhost:5173
- API: http://localhost:3001
- Health Check: http://localhost:3001/api/health
Production Build
npm run build
npm start
๐ง Configuration
Environment Variables
Create a .env
file in the backend directory:
NODE_ENV=production
PORT=3001
CORS_ORIGIN=*
MAX_FILE_SIZE=52428800
LOG_LEVEL=info
RATE_LIMIT_ENABLED=true
Security Configuration
The server includes comprehensive security measures:
- File Upload Limits: 50MB max file size, ZIP files only
- Rate Limiting: 5 uploads per 15 minutes, 100 API calls per 15 minutes
- ZIP Security: Zip bomb protection, path traversal prevention, file type validation
- Input Validation: Joi-based validation for all endpoints
- CORS: Configurable cross-origin resource sharing
- Helmet: Security headers and CSP
๐ก API Endpoints
MCP Tools
POST /api/mcp/tools/load-zip
- Upload and extract ZIP filesPOST /api/mcp/tools/mark-approved
- Approve/reject contextsPOST /api/mcp/tools/snapshot
- Create system snapshots
Data Management
GET /api/context
- List contexts with filtering and paginationGET /api/logs
- Retrieve system logsGET /api/stats
- System statistics and metricsGET /api/mcp/tools
- List available MCP tools
System
GET /api/health
- Health check endpoint
๐ Security Features
ZIP File Processing
- File Type Validation: Only ZIP files accepted
- Size Limits: 50MB upload limit, 100MB extraction limit
- Zip Bomb Protection: Compression ratio analysis
- Path Traversal Prevention: Sanitized file paths
- Content Filtering: Allowed file extensions only
API Security
- Rate Limiting: Configurable request limits
- Input Validation: Comprehensive request validation
- Error Handling: Secure error responses
- CORS Configuration: Controlled cross-origin access
- Security Headers: Helmet.js integration
๐ Deployment
Render (Recommended)
The project includes a render.yaml
configuration for easy deployment:
- Connect your repository to Render
- The build and deployment will happen automatically
- Environment variables are configured in the YAML file
Manual Deployment
- Build the project:
npm run build
- Set environment variables:
export NODE_ENV=production
export PORT=3001
- Start the server:
npm start
๐ Monitoring
Dashboard Features
- System Overview: Uptime, file counts, memory/disk usage
- Real-time Logs: Live log streaming with filtering
- Context Management: Upload approval workflow
- Tool Monitoring: MCP tool usage statistics
Logging
- Structured Logging: JSON format with metadata
- Log Rotation: Automatic log file rotation
- Multiple Levels: Error, warn, info, debug
- Export Capability: Download logs for analysis
๐งช Testing
# Run backend tests
npm run test --workspace=backend
# Run frontend tests
npm run test --workspace=dashboard
# Run all tests
npm test
๐ค Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Submit a pull request
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Support
For support and questions:
- Check the Issues page
- Review the API documentation
- Check the logs for error details
๐ Version History
- v1.0.0 - Initial release with full MCP protocol support
- Production-ready security features
- Complete React dashboard
- Render deployment configuration