kaunghtut24/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.
The MCP Server Deployment is a production-ready setup for hosting Model Context Protocol servers using GitHub, Puppeteer, and Context7 tools, optimized for fly.io hosting.
GitHub MCP
Handles repository operations, issue management, and code analysis
Puppeteer MCP
Provides browser automation and web scraping capabilities
Context7 MCP
Offers extended MCP functionalities and tool integrations
MCP Server Deployment
A production-ready MCP (Model Context Protocol) server deployment with GitHub, Puppeteer, and Context7 tools, optimized for fly.io hosting.
š Features
- GitHub MCP Server: Repository operations, issue management, and code analysis
- Puppeteer MCP Server: Web scraping, screenshot capture, and browser automation
- Context7 MCP Service: Additional MCP functionality and tools
- Health Monitoring: Built-in health checks and monitoring
- Production Ready: Optimized for fly.io deployment with proper error handling
š ļø Tools Included
1. GitHub MCP Server
- Repository browsing and file operations
- Issue and PR management
- Code search and analysis
- Commit history and diff viewing
2. Puppeteer MCP Server
- Web page navigation and interaction
- Screenshot capture
- JavaScript evaluation on pages
- Form filling and automation
- Headless browser operations with Xvfb
3. Context7 MCP Service
- Extended MCP functionality
- Additional tool integrations
š Prerequisites
- fly.io CLI installed
- GitHub Personal Access Token
- TypingMind Auth Token (if using Context7)
š Quick Start
1. Clone and Setup
git clone https://github.com/kaunghtut24/mcp-server.git
cd mcp-server
2. Configure Secrets
# Set your GitHub token
fly secrets set GITHUB_PERSONAL_ACCESS_TOKEN=your_github_token_here
# Set your TypingMind token (optional, for Context7)
fly secrets set TYPINGMIND_AUTH_TOKEN=your_typingmind_token_here
3. Deploy
fly deploy
4. Verify Deployment
fly status
fly logs
š§ Configuration
Environment Variables
GITHUB_PERSONAL_ACCESS_TOKEN
: GitHub personal access token for API accessTYPINGMIND_AUTH_TOKEN
: TypingMind authentication tokenPORT
: Server port (default: 8080)HEALTH_PORT
: Health check port (default: 8081)NODE_ENV
: Environment (production/development)
MCP Tools Configuration
The server is configured via mcp-config.json
with three main tools:
- GitHub MCP: Handles repository operations
- Puppeteer MCP: Browser automation with headless Chromium
- Context7 MCP: External MCP service integration
š Monitoring
Health Checks
- Health endpoint:
http://localhost:8081/health
- Automatic health monitoring via fly.io
- Graceful startup with retry logic
Logging
# View recent logs
fly logs
# Follow logs in real-time
fly logs -f
# Check specific errors
fly logs | grep -i error
š Troubleshooting
Common Issues
-
Browser Launch Failures
- Xvfb virtual display is configured automatically
- Chromium runs in headless mode with proper flags
-
GitHub Authentication
- Ensure
GITHUB_PERSONAL_ACCESS_TOKEN
is set correctly - Token needs appropriate permissions for your use case
- Ensure
-
Health Check Failures
- Health server runs on separate port (8081)
- Check logs for startup issues
Debug Commands
# Check app status
fly status
# SSH into running instance
fly ssh console
# Check environment variables
fly ssh console -C "env | grep -E '(GITHUB|TYPING)'"
š Project Structure
mcp-server/
āāā Dockerfile # Container configuration
āāā fly.toml # Fly.io deployment config
āāā entrypoint.sh # Startup script
āāā health-server.js # Health check server
āāā mcp-config.json # MCP tools configuration
āāā package.json # Node.js dependencies
āāā README.md # This file
š Security
- Secrets managed via fly.io secrets
- No sensitive data in configuration files
- Proper environment variable handling
- Sandboxed browser execution
š License
MIT License - see LICENSE file for details
š¤ Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
š Support
- Create an issue for bugs or feature requests
- Check fly.io documentation for deployment issues
- Review MCP documentation for protocol details