Skip to main content
Glama

ARC Config MCP Server

by tsviz
release.ymlβ€’7.82 kB
name: πŸš€ Release ARC MCP Server on: push: tags: ['v*'] workflow_dispatch: inputs: tag: description: 'Custom tag for manual release' required: false default: '' env: REGISTRY: ghcr.io IMAGE_NAME: ${{ github.repository }} NODE_VERSION: '18' jobs: test: name: πŸ§ͺ Test & Build runs-on: ubuntu-latest steps: - name: πŸ“₯ Checkout uses: actions/checkout@v4 - name: πŸ”§ Setup Node.js uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} cache: 'npm' - name: πŸ“¦ Install dependencies run: npm ci - name: πŸ” Lint run: npm run lint || true - name: πŸ—οΈ Build run: npm run build - name: βœ… Validate Policy Engine run: | node --input-type=module -e " Promise.all([ import('@kubernetes/client-node'), import('./build/engines/policy-engine.js') ]).then(([k8s, policyModule]) => { const { KubeConfig } = k8s; const { ArcPolicyEngine } = policyModule; // Create a mock KubeConfig for testing const kc = new KubeConfig(); kc.loadFromString(JSON.stringify({ apiVersion: 'v1', kind: 'Config', clusters: [{ name: 'test-cluster', cluster: { server: 'https://test' } }], users: [{ name: 'test-user', user: {} }], contexts: [{ name: 'test-context', context: { cluster: 'test-cluster', user: 'test-user' } }], 'current-context': 'test-context' })); const engine = new ArcPolicyEngine(kc); const rules = engine.getRules(); console.log('βœ… Policy Engine: ' + rules.length + ' rules loaded'); }); " - name: βœ… Validate NL Parser run: | node --input-type=module -e " import('./build/utils/nl-intent.js').then(({ parseArcIntent }) => { const testCases = [ 'Install ARC controller', 'Scale runners to 5', 'Check ARC compliance', 'List runner scale sets' ]; testCases.forEach(cmd => { const result = parseArcIntent(cmd); if (result.intent === 'unknown') throw new Error('Failed to parse: ' + cmd); console.log('βœ… Parsed: ' + cmd + ' -> ' + result.intent); }); }); " - name: πŸ“‹ Upload artifacts uses: actions/upload-artifact@v4 with: name: build path: build/ retention-days: 1 docker-build: name: 🐳 Build & Push Docker Image runs-on: ubuntu-latest needs: test permissions: contents: read packages: write steps: - name: πŸ“₯ Checkout uses: actions/checkout@v4 - name: πŸ”§ Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: πŸ” Log in to GHCR uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: 🏷️ Extract metadata id: meta uses: docker/metadata-action@v5 with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} tags: | type=semver,pattern=v{{version}} type=semver,pattern=v{{major}}.{{minor}} type=semver,pattern=v{{major}} type=raw,value=latest,enable=${{ startsWith(github.ref, 'refs/tags/v') }} type=sha,prefix=main-,enable=${{ github.ref == 'refs/heads/main' }} labels: | org.opencontainers.image.title=ARC MCP Server org.opencontainers.image.description=GitHub Actions Runner Controller MCP Server with AI-powered automation org.opencontainers.image.vendor=${{ github.repository_owner }} - name: 🐳 Build and push uses: docker/build-push-action@v5 with: context: . file: ./Dockerfile push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} platforms: linux/amd64,linux/arm64 cache-from: type=gha cache-to: type=gha,mode=max release: name: πŸŽ‰ Create GitHub Release runs-on: ubuntu-latest needs: [test, docker-build] if: startsWith(github.ref, 'refs/tags/v') permissions: contents: write steps: - name: πŸ“₯ Checkout uses: actions/checkout@v4 with: fetch-depth: 0 - name: πŸ“ Generate changelog id: changelog run: | PREV_TAG=$(git tag --sort=-version:refname | sed -n '2p') if [ -z "$PREV_TAG" ]; then PREV_TAG=$(git rev-list --max-parents=0 HEAD) fi CHANGELOG_CONTENT="## Changes $(git log --pretty=format:"- %s (%h)" $PREV_TAG..HEAD) ## Features Included - βœ… Policy Engine with 11 ARC-specific governance rules - βœ… Natural Language Processing (16 ARC intent patterns) - βœ… AI-powered ARC installation and management - βœ… Comprehensive monitoring and troubleshooting - βœ… GitHub Actions integration with kubectl/helm - βœ… Multi-architecture Docker registry support " echo "changelog<<CHANGELOG_EOF" >> "$GITHUB_OUTPUT" echo "$CHANGELOG_CONTENT" >> "$GITHUB_OUTPUT" echo "CHANGELOG_EOF" >> "$GITHUB_OUTPUT" - name: πŸŽ‰ Create Release uses: softprops/action-gh-release@v1 with: name: ARC MCP Server ${{ github.ref_name }} body: | # πŸš€ ARC MCP Server ${{ github.ref_name }} Enterprise-grade Model Context Protocol server for GitHub Actions Runner Controller (ARC) management. ## 🐳 Docker Images ```bash # Pull the image docker pull ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.ref_name }} # Or use latest docker pull ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest ``` **Multi-architecture support:** - `linux/amd64` (x86_64) - `linux/arm64` (ARM64/Apple Silicon) ## βš™οΈ Usage **Claude Desktop Configuration:** ```json { "mcpServers": { "arc-mcp": { "command": "docker", "args": [ "run", "-i", "--rm", "-v", "${HOME}/.kube:/home/mcp/.kube:ro", "-e", "GITHUB_TOKEN", "${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.ref_name }}" ] } } } ``` ## ✨ Key Features - πŸ€– **AI-Powered Operations**: Natural language ARC management - πŸ›‘οΈ **Policy Engine**: 11 built-in ARC governance rules - πŸš€ **Automated Installation**: AI-guided ARC deployment - πŸ“Š **Monitoring**: Real-time cluster and runner status - πŸ”’ **Security**: Compliance checking and hardening - πŸ’° **Cost Optimization**: Resource management recommendations - ☸️ **CLI Integration**: kubectl v1.34.1 + helm v3.16.4 included ${{ steps.changelog.outputs.changelog }} draft: false prerelease: false

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/tsviz/arc-config-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server