mcp-server

kaunghtut24/mcp-server

3.1

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.

Tools
3
Resources
0
Prompts
0

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 access
  • TYPINGMIND_AUTH_TOKEN: TypingMind authentication token
  • PORT: 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:

  1. GitHub MCP: Handles repository operations
  2. Puppeteer MCP: Browser automation with headless Chromium
  3. 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

  1. Browser Launch Failures

    • Xvfb virtual display is configured automatically
    • Chromium runs in headless mode with proper flags
  2. GitHub Authentication

    • Ensure GITHUB_PERSONAL_ACCESS_TOKEN is set correctly
    • Token needs appropriate permissions for your use case
  3. 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

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test thoroughly
  5. 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