How GitHub Integration Works
MCP Server Creation Process
When you create an MCP server in DeployStack and provide a GitHub repository URL, the system automatically:- Fetches Repository Metadata: Extracts the repository name, description, primary programming language, license information, and topics
- Analyzes Technical Details: Determines the appropriate runtime environment (Node.js for TypeScript/JavaScript, Python for Python projects, etc.)
- Reads Package Information: Scans package.json, pyproject.toml, or other package files to understand dependencies and installation requirements
- Generates Installation Methods: Creates appropriate installation commands based on the detected package manager and project type
- Auto-populates Form Fields: Pre-fills the MCP server creation form with all discovered information
Smart Runtime Detection
DeployStack intelligently maps programming languages to their corresponding runtime environments:- TypeScript/JavaScript → Node.js runtime
- Python → Python runtime
- Go → Go runtime
- Rust → Rust runtime
- Java → Java runtime
- C# → .NET runtime
Two Authentication Modes
DeployStack supports two GitHub integration modes to accommodate different use cases:Local/Development Mode (No GitHub App Required)
When to use: Perfect for local development, personal projects, and working with public repositories. How it works:- Uses GitHub’s public API without authentication
- Works immediately without any setup
- Accesses public repositories only
- Subject to GitHub’s unauthenticated rate limits (60 requests per hour per IP address)
- Zero configuration required
- Works out of the box
- Ideal for open-source MCP servers
- Perfect for local development and testing
- Public repositories only
- Lower rate limits
- Cannot access private repositories
- May hit rate limits with heavy usage
Production/Enterprise Mode (GitHub App Required)
When to use: Production environments, private repositories, high-volume usage, or enterprise deployments. How it works:- Uses GitHub App authentication with higher privileges
- Requires GitHub App creation and configuration
- Can access both public and private repositories
- Higher rate limits (5,000 requests per hour)
- Access to private repositories
- Higher rate limits for production use
- Better for team environments
- More reliable for continuous integration
- GitHub App must be created
- App credentials must be configured in DeployStack
- App must be installed on target repositories
Automatic Mode Selection
DeployStack automatically chooses the appropriate authentication mode based on your configuration:- GitHub App Disabled (default): Uses public API mode for immediate functionality
- GitHub App Enabled: Uses authenticated mode for enhanced capabilities
Setting Up GitHub App (Optional)
If you need access to private repositories or higher rate limits, you can optionally configure a GitHub App:Step 1: Create GitHub App
- Navigate to GitHub: Go to GitHub.com → Settings → Developer settings → GitHub Apps
- Create New App: Click “New GitHub App”
- Configure Basic Information:
- App Name:
DeployStack - [Your Organization] - Homepage URL: Your DeployStack instance URL
- Webhook URL: Not required for this integration
- Repository permissions:
- Contents: Read (to access repository files)
- Metadata: Read (to access repository information)
- Pull requests: Read (optional, for future features)
- App Name:
Step 2: Generate Credentials
- Note the App ID: Copy the numeric App ID from the app settings
- Generate Private Key: Click “Generate a private key” and download the .pem file
- Install the App: Install the app on your organization or specific repositories
Step 3: Configure DeployStack
- Access Global Settings: Navigate to Admin → Global Settings → GitHub App Configuration
- Enter Credentials:
- App ID: The numeric ID from step 2
- Private Key: Upload or paste the contents of the .pem file (will be automatically base64 encoded)
- Installation ID: Found in the app installation URL
- Enable Integration: Toggle “Enable GitHub App integration”
- Test Connection: Use the built-in connection test to verify setup
Step 4: Verify Setup
- Test with Private Repository: Try creating an MCP server from a private repository
- Check Rate Limits: Monitor usage in the GitHub App settings
- Verify Permissions: Ensure the app has access to required repositories
Repository Information Extracted
When processing a GitHub repository, DeployStack extracts:Basic Information
- Repository name and description
- Primary programming language
- License type (MIT, Apache, GPL, etc.)
- Homepage URL
- Repository topics/tags
Technical Details
- Runtime environment and version requirements
- Package dependencies and their versions
- Installation and build scripts
- Project structure and entry points
Metadata
- Repository statistics (stars, forks)
- Latest release information
- Default branch name
- Repository owner and organization
Installation Methods
- Package manager commands (npm, pip, cargo, etc.)
- Git clone instructions
- Build and setup procedures
- Environment variable requirements

