# Real-World MCP Configuration Examples Complete plugin configurations for common integration scenarios. ## GitHub Integration Plugin Full-featured GitHub integration with authentication: ```json { "mcpServers": { "github": { "type": "http", "url": "https://api.githubcopilot.com/mcp/", "headers": { "Authorization": "Bearer ${GITHUB_TOKEN}", "Accept": "application/vnd.github.v3+json" } } } } ``` **Required Environment Variables:** - `GITHUB_TOKEN` - Personal access token with repo permissions **Plugin Structure:** ``` github-plugin/ ├── .claude-plugin/plugin.json ├── .mcp.json └── README.md ``` ## Database Tools Plugin Multi-database support with PostgreSQL and Redis: ```json { "mcpServers": { "postgres": { "command": "npx", "args": ["-y", "@bytebase/dbhub", "--dsn", "${DATABASE_URL}"], "env": { "PGPASSWORD": "${DB_PASSWORD}" } }, "redis": { "command": "${CLAUDE_PLUGIN_ROOT}/servers/redis-server", "env": { "REDIS_URL": "${REDIS_URL:-redis://localhost:6379}", "REDIS_DB": "${REDIS_DB:-0}" } } } } ``` **Required Environment Variables:** - `DATABASE_URL` - PostgreSQL connection string (e.g., `postgresql://user:pass@host:5432/db`) - `DB_PASSWORD` - Database password - `REDIS_URL` - Redis connection string (optional, defaults to localhost) - `REDIS_DB` - Redis database number (optional, defaults to 0) ## Multi-Environment API Plugin Supports staging and production environments: ```json { "mcpServers": { "api": { "type": "http", "url": "${API_BASE_URL:-https://api.example.com}/mcp", "headers": { "Authorization": "Bearer ${API_TOKEN}", "X-Environment": "${ENVIRONMENT:-production}", "X-Version": "v2", "X-Client-ID": "${CLIENT_ID}" } } } } ``` **Environment Configuration:** Production: ```bash export API_BASE_URL="https://api.example.com" export API_TOKEN="prod_token_here" export ENVIRONMENT="production" export CLIENT_ID="client_prod_id" ``` Staging: ```bash export API_BASE_URL="https://staging.api.example.com" export API_TOKEN="staging_token_here" export ENVIRONMENT="staging" export CLIENT_ID="client_staging_id" ``` ## Monitoring and Observability Plugin Integrates with Sentry and custom logging: ```json { "mcpServers": { "sentry": { "type": "http", "url": "https://mcp.sentry.dev/mcp", "headers": { "Authorization": "Bearer ${SENTRY_TOKEN}" } }, "logs": { "command": "${CLAUDE_PLUGIN_ROOT}/servers/log-aggregator", "args": ["--endpoint", "${LOG_ENDPOINT}"], "env": { "LOG_LEVEL": "${LOG_LEVEL:-info}", "LOG_FORMAT": "json" } } } } ``` ## Cloud Services Plugin AWS, Azure, and GCP integrations: ```json { "mcpServers": { "aws": { "command": "aws-mcp-server", "env": { "AWS_REGION": "${AWS_REGION:-us-east-1}", "AWS_PROFILE": "${AWS_PROFILE:-default}" } }, "azure": { "type": "http", "url": "${AZURE_ENDPOINT}/mcp", "headers": { "Authorization": "Bearer ${AZURE_TOKEN}", "Subscription-ID": "${AZURE_SUBSCRIPTION_ID}" } }, "gcp": { "command": "gcloud", "args": ["mcp", "serve", "--project", "${GCP_PROJECT_ID}"] } } } ``` ## Local Development Tools Plugin File watchers, linters, and formatters: ```json { "mcpServers": { "file-watcher": { "command": "${CLAUDE_PLUGIN_ROOT}/servers/watcher", "args": ["--watch", "${WATCH_PATH:-.}", "--ignore", "node_modules"] }, "linter": { "command": "npx", "args": ["-y", "eslint", "--format", "json", "--stdin"], "env": { "ESLINT_USE_FLAT_CONFIG": "true" } }, "formatter": { "command": "npx", "args": ["-y", "prettier", "--stdin-filepath", "file.js"] } } } ``` **Windows Version:** ```json { "mcpServers": { "linter": { "command": "cmd", "args": ["/c", "npx", "-y", "eslint", "--format", "json", "--stdin"] } } } ``` ## Testing and CI/CD Plugin Integrates with test runners and deployment tools: ```json { "mcpServers": { "test-runner": { "command": "${CLAUDE_PLUGIN_ROOT}/servers/test-server", "args": ["--config", "${CLAUDE_PLUGIN_ROOT}/test-config.json"], "env": { "TEST_ENV": "${TEST_ENV:-development}", "COVERAGE_THRESHOLD": "${COVERAGE_THRESHOLD:-80}" } }, "deployment": { "type": "http", "url": "${DEPLOY_ENDPOINT}/mcp", "headers": { "Authorization": "Bearer ${DEPLOY_TOKEN}", "X-Pipeline-ID": "${PIPELINE_ID}" } } } } ``` ## Documentation Generator Plugin Generates and maintains documentation: ```json { "mcpServers": { "docs-generator": { "command": "node", "args": ["${CLAUDE_PLUGIN_ROOT}/servers/docs-gen.js"], "env": { "DOCS_OUTPUT": "${DOCS_OUTPUT:-./docs}", "DOCS_FORMAT": "${DOCS_FORMAT:-markdown}", "INCLUDE_EXAMPLES": "true" } } } } ``` ## Custom Protocol Handler Plugin For proprietary internal systems: ```json { "mcpServers": { "internal-system": { "command": "${CLAUDE_PLUGIN_ROOT}/bin/internal-mcp-server", "args": [ "--endpoint", "${INTERNAL_ENDPOINT}", "--cert", "${CLAUDE_PLUGIN_ROOT}/certs/client.pem", "--key", "${CLAUDE_PLUGIN_ROOT}/certs/client-key.pem" ], "env": { "INTERNAL_API_KEY": "${INTERNAL_API_KEY}", "TLS_VERIFY": "true", "REQUEST_TIMEOUT": "${REQUEST_TIMEOUT:-30000}" } } } } ``` ## Microservices Communication Plugin Service mesh integration: ```json { "mcpServers": { "service-mesh": { "type": "http", "url": "${MESH_GATEWAY_URL}/mcp", "headers": { "Authorization": "Bearer ${MESH_TOKEN}", "X-Service-Name": "${SERVICE_NAME}", "X-Namespace": "${NAMESPACE:-default}" } }, "service-discovery": { "command": "consul", "args": ["mcp", "serve", "-address", "${CONSUL_ADDRESS}"] } } } ``` ## Tips for Real-World Configurations 1. **Always document required environment variables** in your plugin's README 2. **Provide sensible defaults** using `${VAR:-default}` syntax 3. **Use `${CLAUDE_PLUGIN_ROOT}`** for bundled servers and assets 4. **Group related servers** in a single plugin 5. **Test with both local and remote transports** before distribution 6. **Include environment variable validation** in your MCP servers 7. **Provide example configurations** for common deployment scenarios ## Common Configuration Mistakes to Avoid ❌ **Hardcoded credentials** ```json { "env": {"API_KEY": "sk_live_abc123"} // Never do this! } ``` ✅ **Environment variables** ```json { "env": {"API_KEY": "${API_KEY}"} } ``` --- ❌ **Absolute paths** ```json { "command": "/Users/yourname/projects/plugin/server.js" // Won't work for others } ``` ✅ **Plugin-relative paths** ```json { "command": "${CLAUDE_PLUGIN_ROOT}/server.js" } ``` --- ❌ **Missing Windows compatibility** ```json { "command": "npx", // Fails on Windows "args": ["-y", "package"] } ``` ✅ **Windows-compatible** ```json { "command": "cmd", "args": ["/c", "npx", "-y", "package"] } ``` ## See Also - [Main MCP Configuration Guide](skill.md) - [Configuration Reference](reference.md) - [MCP Protocol Documentation](https://modelcontextprotocol.io/)