### Complete GitHub Server Definition Example Source: https://mcpmux.com/docs/server-definitions A full example of a server definition for a local stdio server with API key authentication, including all relevant fields. ```json { "$schema": "../schemas/server-definition.schema.json", "id": "com.github-mcp", "name": "GitHub", "alias": "gh", "description": "Interact with GitHub repositories, issues, pull requests, and more", "icon": "🐙", "schema_version": "2.1", "categories": ["developer-tools", "version-control"], "tags": ["git", "code", "issues", "pr", "actions"], "transport": { "type": "stdio", "command": "docker", "args": [ "run", "-i", "--rm", "-e", "GITHUB_PERSONAL_ACCESS_TOKEN", "ghcr.io/github/github-mcp-server" ], "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "${input:GITHUB_TOKEN}" }, "metadata": { "inputs": [ { "id": "GITHUB_TOKEN", "label": "GitHub Personal Access Token", "type": "password", "required": true, "secret": true, "placeholder": "ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "obtain": { "url": "https://github.com/settings/tokens/new", "instructions": "1. Click 'Generate new token (classic)'\n2. Select scopes: repo, read:org\n3. Copy the token", "button_label": "Create Token" } } ] } }, "auth": { "type": "api_key", "instructions": "Create a personal access token at https://github.com/settings/tokens" }, "contributor": { "name": "Model Context Protocol", "github": "modelcontextprotocol", "url": "https://modelcontextprotocol.io" }, "links": { "repository": "https://github.com/modelcontextprotocol/servers", "documentation": "https://modelcontextprotocol.io/docs" }, "platforms": ["all"], "capabilities": { "tools": true, "resources": true, "prompts": false, "read_only_mode": false } } ``` -------------------------------- ### Install Docker MCP Server Source: https://mcpmux.com/docs/servers Use this command to install an MCP server packaged as a Docker container. ```bash docker run -i --rm ghcr.io/github/github-mcp-server ``` -------------------------------- ### Install Python MCP Server Source: https://mcpmux.com/docs/servers Use this command to install a Python MCP server from the command line. ```bash uvx mcp-server-sqlite ``` -------------------------------- ### Install Node.js MCP Server Source: https://mcpmux.com/docs/servers Use this command to install a Node.js MCP server from the command line. ```bash npx -y @modelcontextprotocol/server-filesystem ``` -------------------------------- ### Plaintext MCP Server Credentials Source: https://mcpmux.com/docs/security This is an example of how MCP server credentials are stored in plaintext JSON configuration files without McpMux. These files are vulnerable if the machine is compromised. ```json { "mcpServers": { "github": { "env": { "GITHUB_TOKEN": "ghp_abc123_YOUR_REAL_TOKEN_HERE" } } } } ``` -------------------------------- ### Define Authentication Type and Instructions Source: https://mcpmux.com/docs/server-definitions Specifies the authentication type and provides instructions for setting it up. ```json "auth": { "type": "api_key", "instructions": "Create a token at https://github.com/settings/tokens with repo scope" } ``` -------------------------------- ### Define Supported Platforms Source: https://mcpmux.com/docs/server-definitions Specifies the operating systems supported by the server, which can be 'all' or a specific list. ```json "platforms": ["all"] ``` -------------------------------- ### Define Credential Obtaining Instructions Source: https://mcpmux.com/docs/server-definitions Specifies how users can obtain the required credential, including a URL, instructions, and a button label for the UI. ```json "obtain": { "url": "https://github.com/settings/tokens/new", "instructions": "1. Click 'Generate new token (classic)'\n2. Select the 'repo' scope\n3. Click 'Generate token'\n4. Copy the token value", "button_label": "Create Token" } ``` -------------------------------- ### Validate All Server Definitions Source: https://mcpmux.com/docs/server-definitions Run this command to validate all server definition files in the registry. This is useful for ensuring consistency across all definitions. ```bash pnpm validate:all ``` -------------------------------- ### Configure Additional Arguments for stdio Servers Source: https://mcpmux.com/docs/servers Append extra command-line arguments to the server's command for stdio-based servers. Useful for passing workspace paths or enabling verbose logging. ```properties --workspace /path/to/project --verbose ``` -------------------------------- ### Define Server Links Source: https://mcpmux.com/docs/server-definitions Provides URLs for additional information about the server, such as its repository, homepage, and documentation. ```json "links": { "repository": "https://github.com/modelcontextprotocol/servers", "homepage": "https://modelcontextprotocol.io", "documentation": "https://modelcontextprotocol.io/docs" } ``` -------------------------------- ### Local Validation and Testing Source: https://mcpmux.com/docs/server-definitions After creating or modifying a definition file, use these commands to validate and test your changes locally before submitting a pull request. ```bash pnpm validate pnpm test ``` -------------------------------- ### McpMux Gateway Architecture Source: https://mcpmux.com/docs Illustrates the architectural flow of AI clients connecting to MCP servers through the McpMux Gateway. This diagram shows how McpMux sits between clients and servers, handling routing, authentication, and permissions. ```text AI Clients (Cursor, Claude, VS Code, …) ↓ McpMux Gateway (localhost:45818/mcp) ↓ MCP Servers (GitHub, Slack, PostgreSQL, …) ``` -------------------------------- ### Define Contributor Information Source: https://mcpmux.com/docs/server-definitions Details who created the server definition, including their name, GitHub handle, and a URL. ```json "contributor": { "name": "Model Context Protocol", "github": "modelcontextprotocol", "url": "https://modelcontextprotocol.io" } ``` -------------------------------- ### Define Server Tags Source: https://mcpmux.com/docs/server-definitions An array of searchable keywords for the server. ```json "tags": ["git", "code", "issues", "pull-requests", "actions"] ``` -------------------------------- ### Configure Windsurf MCP Settings Source: https://mcpmux.com/docs/getting-started Add this configuration to your Windsurf MCP configuration to connect to the McpMux gateway. ```json { "mcpServers": { "mcpmux": { "serverUrl": "http://localhost:45818/mcp" } } } ``` -------------------------------- ### Configure Cursor MCP Settings Source: https://mcpmux.com/docs/getting-started Add this configuration to your Cursor MCP settings file (`.cursor/mcp.json`) to connect to the McpMux gateway. ```json { "mcpServers": { "mcpmux": { "url": "http://localhost:45818/mcp" } } } ``` -------------------------------- ### Configure VS Code (Copilot) MCP Settings Source: https://mcpmux.com/docs/getting-started Add this configuration to your VS Code settings file (`.vscode/mcp.json`) to connect to the McpMux gateway. ```json { "servers": { "mcpmux": { "url": "http://localhost:45818/mcp" } } } ``` -------------------------------- ### stdio Transport Configuration Source: https://mcpmux.com/docs/server-definitions Configures McpMux to run a local command-line process, communicating via stdin/stdout. Supports environment variables and user input for credentials. ```json { "type": "stdio", "command": "npx", "args": ["-y", "@modelcontextprotocol/server-github"], "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "${input:GITHUB_TOKEN}" }, "metadata": { "inputs": [ { "id": "GITHUB_TOKEN", "label": "GitHub Personal Access Token", "type": "password", "required": true, "secret": true, "placeholder": "ghp_xxxxxxxxxxxxxxxxxxxx", "obtain": { "url": "https://github.com/settings/tokens/new", "instructions": "1. Click 'Generate new token (classic)'\n2. Select scopes: repo, read:org\n3. Copy the token", "button_label": "Create Token" } } ] } } ``` -------------------------------- ### Define Server Alias Source: https://mcpmux.com/docs/server-definitions Sets a short, CLI-friendly alias for the server in lowercase kebab-case. ```json "alias": "gh" ``` -------------------------------- ### Define Server Description Source: https://mcpmux.com/docs/server-definitions Provides a short, single-sentence description of the server's functionality. ```json "description": "Interact with GitHub repositories, issues, pull requests, and more" ``` -------------------------------- ### Define Server Categories Source: https://mcpmux.com/docs/server-definitions An array of category IDs from a predefined list to categorize the server. ```json "categories": ["developer-tools", "version-control"] ``` -------------------------------- ### Check for ID/Alias Conflicts Source: https://mcpmux.com/docs/server-definitions Execute this command to identify any conflicts in server IDs or aliases within the registry. This helps maintain uniqueness. ```bash pnpm check-conflicts ``` -------------------------------- ### Configure Environment Variables for stdio Servers Source: https://mcpmux.com/docs/servers Override or add environment variables for stdio servers. These settings are applied during server configuration. ```properties GITHUB_API_URL=https://github.example.com/api/v3 LOG_LEVEL=debug ``` -------------------------------- ### Validate a Specific Server Definition Source: https://mcpmux.com/docs/server-definitions Use this command to validate a single server definition file. Ensure the path to your JSON file is correct. ```bash pnpm validate servers/your-server.json ``` -------------------------------- ### Declare Server Capabilities Source: https://mcpmux.com/docs/server-definitions Declares which MCP features the server supports, such as tools, resources, prompts, and read-only mode. ```json "capabilities": { "tools": true, "resources": true, "prompts": false, "read_only_mode": false } ``` -------------------------------- ### Define Select Input Options Source: https://mcpmux.com/docs/server-definitions Defines the available options for a 'select' type input, including values and their corresponding labels. ```json { "id": "REGION", "label": "AWS Region", "type": "select", "required": true, "options": [ { "value": "us-east-1", "label": "US East (N. Virginia)" }, { "value": "us-west-2", "label": "US West (Oregon)" }, { "value": "eu-west-1", "label": "EU (Ireland)" } ] } ``` -------------------------------- ### Server Definition Name Source: https://mcpmux.com/docs/server-definitions Human-readable display name for the server, shown in the registry and McpMux UI. ```json { "name": "GitHub" } ``` -------------------------------- ### Define Server Icon Source: https://mcpmux.com/docs/server-definitions Specifies an emoji or image URL to be used as an icon for the server. ```json "icon": "🐙" ``` -------------------------------- ### Configure HTTP Headers for HTTP Servers Source: https://mcpmux.com/docs/servers Add custom headers to be sent with every request to HTTP servers. This is often used for authentication or custom metadata. ```properties Authorization: Bearer sk-xxxx X-Custom-Header: value ``` -------------------------------- ### Input Field Definition Source: https://mcpmux.com/docs/server-definitions Defines user input fields for credentials or configuration. Supports various types and instructions for obtaining values. ```json { "id": "GITHUB_TOKEN", "label": "GitHub Personal Access Token", "type": "password", "required": true, "secret": true, "description": "Token with repo and read:org scopes", "default": "", "placeholder": "ghp_xxxx", "obtain": { "url": "https://github.com/settings/tokens/new", "instructions": "1. Click 'Generate new token'\n2. Select scopes\n3. Copy token", "button_label": "Create Token" } } ``` -------------------------------- ### http Transport Configuration Source: https://mcpmux.com/docs/server-definitions Configures McpMux to connect to a remote HTTP endpoint implementing the Streamable HTTP MCP transport. Supports custom headers and user input for authentication. ```json { "type": "http", "url": "https://mcp.atlassian.com/v1/mcp", "headers": { "Authorization": "Bearer ${input:API_TOKEN}" }, "metadata": { "inputs": [ { "id": "API_TOKEN", "label": "API Token", "type": "password", "required": true, "secret": true } ] } } ``` -------------------------------- ### Server Definition IDs Source: https://mcpmux.com/docs/server-definitions Unique identifiers for MCP servers in reverse-domain notation. Must follow specific naming rules and match the filename. ```text com.github-mcp # Official GitHub server community.brave-search # Community-maintained Brave Search server com.cloudflare-docs # Official Cloudflare documentation server ``` -------------------------------- ### Git Commit with DCO Sign-off Source: https://mcpmux.com/docs/server-definitions When submitting a pull request, ensure your commit includes a Developer Certificate of Origin (DCO) sign-off for compliance. ```bash git commit -s ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.