GitHub Repository Secrets & Variables Configuration
This document lists all required secrets and variables needed for CI/CD workflows.Overview
The MCP Server LangGraph project uses GitHub Actions for CI/CD automation. To enable full functionality, you need to configure repository secrets (sensitive data) and variables (non-sensitive configuration). Configuration Location:Settings → Secrets and variables → Actions
Required Repository Variables
Configure these underSettings → Secrets and variables → Actions → Variables tab.
GCP Project Configuration
| Variable | Required | Default | Description |
|---|---|---|---|
GCP_PROJECT_ID | ✅ Yes | vishnu-sandbox-20250310 | Google Cloud project ID |
GCP_REGION | ✅ Yes | us-central1 | Primary GCP region for resources |
PROJECT_NUMBER | ⚠️ Conditional | 1024691643349 | GCP project number (required for compliance scanning) |
GKE Cluster Configuration
| Variable | Required | Default | Description |
|---|---|---|---|
GKE_STAGING_CLUSTER | No | staging-mcp-server-langgraph-gke | Staging GKE cluster name |
GKE_PROD_CLUSTER | No | production-mcp-server-langgraph-gke | Production GKE cluster name |
Namespace Configuration
| Variable | Required | Default | Description |
|---|---|---|---|
STAGING_NAMESPACE | No | staging-mcp-server-langgraph | Kubernetes namespace for staging |
PRODUCTION_NAMESPACE | No | production-mcp-server-langgraph | Kubernetes namespace for production |
Required Repository Secrets
Configure these underSettings → Secrets and variables → Actions → Secrets tab.
GCP Authentication (Workload Identity Federation)
| Secret | Required | Format | Description |
|---|---|---|---|
GCP_WIF_PROVIDER | ✅ Yes | projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL/providers/PROVIDER | Workload Identity Federation provider path |
GCP_STAGING_SA_EMAIL | ✅ Yes | SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com | Staging service account email |
GCP_PRODUCTION_SA_EMAIL | ✅ Yes | SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com | Production service account email |
Publishing & Distribution
| Secret | Required | Description |
|---|---|---|
PYPI_TOKEN | ⚠️ Conditional | PyPI API token for package publishing (required for releases) |
MCP_REGISTRY_TOKEN | No | MCP registry token for publishing MCP server |
Notifications
| Secret | Required | Description |
|---|---|---|
SLACK_WEBHOOK | No | Slack webhook URL for general notifications |
SLACK_SECURITY_WEBHOOK | No | Slack webhook URL for security alerts |
Auto-Provided Secrets
These secrets are automatically provided by GitHub Actions (no configuration needed):| Secret | Description |
|---|---|
GITHUB_TOKEN | GitHub API access token (auto-provided) |
Setup Instructions
1. Configure GCP Workload Identity Federation
Before setting secrets, set up Workload Identity Federation in your GCP project:2. Configure GitHub Secrets
Navigate to your repository:Settings → Secrets and variables → Actions
Add Variables:
- Click Variables tab
- Click New repository variable
- Add each variable from the tables above
- Click Add variable
Add Secrets:
- Click Secrets tab
- Click New repository secret
- Add each secret from the tables above
- Click Add secret
3. Verify Configuration
Run this workflow manually to test authentication:Workflow-Specific Requirements
Deployment Workflows
Required for:deploy-staging-gke.yamldeploy-production-gke.yaml
GCP_PROJECT_ID(variable)GCP_REGION(variable)GCP_WIF_PROVIDER(secret)GCP_STAGING_SA_EMAILorGCP_PRODUCTION_SA_EMAIL(secret)
Compliance & Security Scanning
Required for:gcp-compliance-scan.yamlsecurity-scan.yaml
GCP_PROJECT_ID(variable)PROJECT_NUMBER(variable)GCP_WIF_PROVIDER(secret)SLACK_SECURITY_WEBHOOK(secret, optional for notifications)
Drift Detection
Required for:gcp-drift-detection.yaml
GCP_PROJECT_ID(variable)GCP_WIF_PROVIDER(secret)
Release & Publishing
Required for:release.yaml
PYPI_TOKEN(required for PyPI publishing)SLACK_WEBHOOK(optional for notifications)MCP_REGISTRY_TOKEN(optional for MCP registry)
Security Best Practices
✅ DO:
- Rotate secrets regularly (recommended: every 90 days)
- Use least-privilege IAM roles for service accounts
- Enable audit logging for service account usage
- Review secret access periodically
- Use environment-specific service accounts (separate staging/production)
❌ DON’T:
- Never commit secrets to git (use
.gitignore) - Never share secrets in plain text (Slack, email, etc.)
- Never use production credentials in non-production workflows
- Never grant overly broad permissions to service accounts
Troubleshooting
Authentication Failures
Error:Failed to authenticate to Google Cloud
Solution:
- Verify
GCP_WIF_PROVIDERsecret is correctly set - Verify service account email is correctly set
- Check workload identity binding:
- Verify repository attribute in workload identity condition matches your repo
Missing Secrets/Variables
Error:The secret 'GCP_WIF_PROVIDER' was not found
Solution:
- Go to
Settings→Secrets and variables→Actions - Verify secret exists in Secrets tab
- Check spelling matches exactly (case-sensitive)
- Re-create secret if needed
Permission Denied Errors
Error:Permission denied when accessing GCP resources
Solution:
- Verify service account has required IAM roles:
- Grant necessary roles:
Migration Guide
Migrating from Hardcoded Values
If you’re migrating from workflows with hardcoded project IDs:-
Extract current values from workflows:
- Create variables with those values as defaults (already done in updated workflows)
- Add secrets for sensitive data (WIF provider, service account emails)
- Test workflows in a non-production environment first
- Update production after successful testing
Fallback Behavior
All updated workflows include fallback defaults:- If variables/secrets are not set, workflows use the default hardcoded values
- This ensures backward compatibility during migration
- Remove fallbacks after confirming configuration works
Support
For issues or questions:- GitHub Issues: https://github.com/vishnu2kmohan/mcp-server-langgraph/issues
- Internal Docs: See
.github/workflows/for workflow-specific documentation - GCP Documentation: https://cloud.google.com/iam/docs/workload-identity-federation
Last Updated: 2025-11-03 Version: 1.0 Maintained By: DevOps Team