{
  "markdown": "# ActionsPulse 🚀\n\n<div align=\"center\">\n\n[![Available on MCP Registry](https://img.shields.io/badge/MCP-Available_on_Registry-00DC82?style=flat&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTEyIDJhMTAgMTAgMCAxIDAgMTAgMTBIMTJWMloiLz48cGF0aCBkPSJNMjEuMTggOC4wMmMtMS0yLjMtMi44NS00LjE1LTUuMTUtNS4xNSIvPjwvc3ZnPg==)](https://registry.modelcontextprotocol.io/?q=io.github.tsviz%2Factions-pulse)\n[![Docker Image](https://github.com/tsviz/github-mcp-server-devops/actions/workflows/build-and-publish.yml/badge.svg)](https://github.com/tsviz/github-mcp-server-devops/actions/workflows/build-and-publish.yml)\n[![Container Registry](https://img.shields.io/badge/ghcr.io-tsviz%2Factions--pulse-blue)](https://github.com/tsviz/github-mcp-server-devops/pkgs/container/actions-pulse)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n**Real-time GitHub Actions observability through VS Code with GitHub Copilot**\n\n*DORA Metrics • Cost Analysis • CI/CD Health • Security Compliance*\n\n<img src=\"docs/images/dashboard-overview.png\" alt=\"ActionsPulse Dashboard\" width=\"100%\" style=\"border-radius: 12px; box-shadow: 0 20px 60px rgba(0,0,0,0.3);\" />\n\n<sub>☝️ <em>This is an actual interactive HTML dashboard generated by ActionsPulse — <a href=\"#dashboard-tour\">see full tour below</a></em></sub>\n\n</div>\n\n---\n\n## ✨ What is ActionsPulse?\n\nActionsPulse is an **Agentic MCP Server** that brings DevOps observability directly into your IDE. Ask GitHub Copilot questions like:\n\n> 💬 *\"Show me our DORA metrics for the last 30 days\"*  \n> 💬 *\"Which workflows are costing us the most?\"*  \n> 💬 *\"Generate a compliance report for SOC2\"*  \n> 💬 *\"What's our deployment frequency this month?\"*\n\nAnd get **interactive visual dashboards** with actionable insights.\n\n## 🎯 Features\n\n| Feature | Organization | Enterprise |\n|---------|:------------:|:----------:|\n| 📊 **DORA Metrics** | ✅ | ✅ Enhanced |\n| ⚡ **Performance Analytics** | ✅ | ✅ |\n| 💰 **Cost Optimization** | ✅ | ✅ Cross-org |\n| 🏃 **Runner Utilization** | ✅ Self-hosted | ✅ All runners |\n| 👥 **Team Productivity** | ✅ | ✅ |\n| 🔒 **Compliance Reports** | ✅ (GHAS) | ✅ |\n| 💾 **Cache Analytics** | ✅ | ✅ |\n| 🎓 **Maturity Assessment** | ✅ | ✅ |\n\n---\n\n<a id=\"dashboard-tour\"></a>\n\n## 🖼️ Dashboard Tour\n\nActionsPulse generates **interactive HTML dashboards** that you can open in any browser. Simply ask Copilot:\n\n> 💬 *\"Generate DevOps reports for my organization\"*\n\nOr use the `generate_devops_reports` tool directly. Here's a complete tour of what you get:\n\n<details open>\n<summary><strong>📊 Dashboard Overview</strong> — Executive summary with all key metrics at a glance</summary>\n\n<img src=\"docs/images/dashboard-overview.png\" alt=\"Dashboard Overview\" width=\"100%\" style=\"border-radius: 8px; margin: 16px 0;\" />\n\nThe main dashboard provides:\n- 🎯 DevOps Maturity Score with visual gauge\n- 📈 DORA Metrics summary (Deployment Frequency, Lead Time, Change Failure Rate, MTTR)\n- ⚡ CI/CD Pipeline health overview\n- 💰 Cost analysis highlights\n- 🔒 Security & compliance status\n- Quick navigation to detailed reports\n\n</details>\n\n<details>\n<summary><strong>📈 DORA Metrics</strong> — Industry-standard DevOps performance indicators</summary>\n\n<img src=\"docs/images/dashboard-dora.png\" alt=\"DORA Metrics Dashboard\" width=\"100%\" style=\"border-radius: 8px; margin: 16px 0;\" />\n\nTrack the four key DORA metrics:\n- **Deployment Frequency** — How often you ship to production\n- **Lead Time for Changes** — Time from commit to production\n- **Change Failure Rate** — Percentage of deployments causing failures\n- **Mean Time to Restore** — How quickly you recover from incidents\n\nEach metric includes trend analysis and benchmarks against industry standards (Elite, High, Medium, Low performers).\n\n</details>\n\n<details>\n<summary><strong>⚡ CI/CD Pipeline Health</strong> — Workflow performance and reliability</summary>\n\n<img src=\"docs/images/dashboard-cicd.png\" alt=\"CI/CD Health Dashboard\" width=\"100%\" style=\"border-radius: 8px; margin: 16px 0;\" />\n\nDeep dive into your CI/CD pipelines:\n- 🔄 Workflow success rates and trends\n- ⏱️ Average run times with P95/P99 latencies\n- 🚨 Failure analysis and common error patterns\n- 📊 Per-repository and per-workflow breakdowns\n- 🏃 Queue times and runner utilization\n\n</details>\n\n<details>\n<summary><strong>💰 Cost Optimization</strong> — Runner costs and savings opportunities</summary>\n\n<img src=\"docs/images/dashboard-cost.png\" alt=\"Cost Optimization Dashboard\" width=\"100%\" style=\"border-radius: 8px; margin: 16px 0;\" />\n\nUnderstand and optimize your GitHub Actions spending:\n- 💵 Total costs by runner type (GitHub-hosted vs self-hosted)\n- 📊 Cost breakdown by repository, workflow, and OS\n- 🎯 Actionable recommendations for cost savings\n- 📈 Spending trends and projections\n- ⚡ Efficiency metrics (cost per workflow, cost per minute)\n\n</details>\n\n<details>\n<summary><strong>🔒 Security & Compliance</strong> — Audit-ready compliance reports</summary>\n\n<img src=\"docs/images/dashboard-security.png\" alt=\"Security Dashboard\" width=\"100%\" style=\"border-radius: 8px; margin: 16px 0;\" />\n\nStay compliant and secure:\n- ✅ Compliance framework coverage (SOC2, ISO27001, HIPAA, PCI-DSS)\n- 🔍 Secret scanning status and alerts\n- 🛡️ Code scanning findings\n- 📋 Branch protection rule compliance\n- 🔐 GHAS (GitHub Advanced Security) feature adoption\n\n</details>\n\n<details>\n<summary><strong>🎓 DevOps Maturity</strong> — Organizational capability assessment</summary>\n\n<img src=\"docs/images/dashboard-maturity.png\" alt=\"DevOps Maturity Dashboard\" width=\"100%\" style=\"border-radius: 8px; margin: 16px 0;\" />\n\nAssess your DevOps maturity level:\n- 📊 Overall maturity score with visual gauge\n- 🎯 Category scores (CI/CD, Testing, Security, Monitoring, etc.)\n- 📈 Improvement recommendations prioritized by impact\n- 🏆 Benchmark against industry standards\n- 📋 Actionable roadmap for advancement\n\n</details>\n\n> 💡 **How to generate these dashboards:**\n> ```\n> # Ask Copilot in natural language:\n> \"Generate DevOps reports for the last 30 days\"\n> \n> # Or invoke the tool directly:\n> #generate_devops_reports --timeframe 30d\n> ```\n> Reports are saved to timestamped folders as standalone HTML files — share them with your team or embed in internal wikis!\n\n---\n\n## 🚀 Quick Start\n\n### Install from MCP Registry\n\nActionsPulse is published to the official [MCP Registry](https://registry.modelcontextprotocol.io/?q=io.github.tsviz%2Factions-pulse) as `io.github.tsviz/actions-pulse`.\n\n**🌐 Web UI (Recommended)** — Use the [MCP Registry UI](https://vemonet.github.io/mcp-registry/?search=actions-pulse) for 1-click installation into VS Code or Cursor:\n\n1. Go to [vemonet.github.io/mcp-registry](https://vemonet.github.io/mcp-registry/?search=actions-pulse)\n2. Search for \"actions-pulse\"\n3. Click **Install** → Select your client (VS Code, Cursor)\n4. Configure environment variables when prompted\n\n**Manual Docker Setup** — Or follow the steps below to configure manually.\n\n### Prerequisites\n- ✅ Docker installed\n- ✅ GitHub Personal Access Token (fine-grained recommended)\n- ✅ VS Code with GitHub Copilot\n\n### 1. Create a [Fine-Grained](https://docs.github.com/en/enterprise-cloud@latest/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#fine-grained-personal-access-tokens) Personal Access Token\n\n1. Go to [GitHub Settings → Developer Settings → Personal Access Tokens → Fine-grained tokens](https://github.com/settings/tokens?type=beta)\n2. Click **Generate new token**\n3. Configure basic settings:\n   - **Token name**: `actions-pulse-mcp`\n   - **Expiration**: 90 days (or per your security policy)\n   - **Resource owner**: Select your organization\n   - **Repository access**: **All repositories**\n\n4. Set **Repository permissions**:\n\n   | Permission | Access | Required | Purpose |\n   |------------|--------|----------|---------|\n   | Actions | Read | ✅ Yes | Workflow runs, cache usage |\n   | Administration | Read | ✅ Yes | Billing data, repo settings |\n   | Contents | Read | ✅ Yes | Read config files from devops-config repo |\n   | Custom properties | Read | ✅ Yes | Read custom property values on repositories |\n   | Deployments | Read | ✅ Yes | Deployment frequency, environments (DORA) |\n   | Discussions | Read | 🔶 Optional | Community engagement metrics |\n   | Environments | Read | ✅ Yes | Environment protection rules |\n   | Issues | Read | ✅ Yes | Issue metrics, resolution times (DORA) |\n   | Merge queues | Read | 🔶 Optional | Merge queue adoption and wait times |\n   | Metadata | Read | ✅ Yes | Basic repo info (auto-granted) |\n   | Pull requests | Read | ✅ Yes | PR metrics, lead time, review times (DORA) |\n\n5. Set **Organization permissions**:\n\n   | Permission | Access | Required | Purpose |\n   |------------|--------|----------|----------|\n   | Custom properties | Read | ✅ Yes | Read property definitions/schemas at org level |\n   | Custom properties for organizations | Read | ✅ Yes | Read property values assigned to repositories |\n\n6. Set **Organization permissions** (continued):\n\n   | Permission | Access | Required | Purpose |\n   |------------|--------|----------|---------|\n   | Members | Read | 🔶 Optional | Team membership for productivity metrics |\n   | Self-hosted runners | Read | 🔶 Optional | Runner utilization metrics |\n   | Administration | Read | ✅ Yes | Org billing and settings |\n\n7. **Optional permissions** (for compliance features, requires GitHub Advanced Security):\n\n   | Permission | Access | Required | Purpose |\n   |------------|--------|----------|---------|\n   | Secret scanning alerts | Read | ❌ Optional | Compliance audit reports |\n   | Code scanning alerts | Read | ❌ Optional | Compliance audit reports |\n\n8. Click **Generate token** and save it securely\n\n### 2. Configure MCP Server\n\n#### Option A: Using env-file (Recommended)\n\nAdd to your `~/.mcp.env`:\n```bash\nGITHUB_TOKEN=ghp_your_fine_grained_token_here\n```\n\n<details>\n<summary>📄 mcp.json with env-file</summary>\n\nAdd to VS Code's MCP settings (`~/.vscode/mcp.json` or workspace `.vscode/mcp.json`):\n```jsonc\n{\n  \"servers\": {\n    \"actions-pulse\": {\n      \"command\": \"docker\",\n      \"args\": [\n        \"run\", \"-i\", \"--rm\",\n        \"--env-file\", \"/path/to/.mcp.env\",\n        \"-e\", \"GITHUB_ORG=your-org-name\",\n        \"ghcr.io/tsviz/actions-pulse:latest\"\n      ],\n      \"type\": \"stdio\"\n    }\n  }\n}\n```\n\n</details>\n\n#### Option B: Direct Environment Variables\n\n<details>\n<summary>📄 mcp.json with inline env vars</summary>\n\n```jsonc\n{\n  \"servers\": {\n    \"actions-pulse\": {\n      \"command\": \"docker\",\n      \"args\": [\n        \"run\", \"-i\", \"--rm\",\n        \"-e\", \"GITHUB_TOKEN=ghp_your_token\",\n        \"-e\", \"GITHUB_ORG=your-org-name\",\n        \"ghcr.io/tsviz/actions-pulse:latest\"\n      ],\n      \"type\": \"stdio\"\n    }\n  }\n}\n```\n\n</details>\n\n### 3. Environment Variables Reference\n\n| Variable | Required | Description |\n|----------|----------|-------------|\n| `GITHUB_TOKEN` | ✅ Yes | Personal Access Token (fine-grained recommended) |\n| `GITHUB_ORG` | ✅ Yes | Target GitHub organization to monitor (e.g., `my-company`). All API calls use this org. |\n| `DEFAULT_REPO_FILTER` | ❌ No | Comma-separated list of repos to monitor (e.g., `my-app,my-api`). See [precedence rules](#repo-filter-precedence) below. |\n| `GITHUB_API_URL` | ❌ No | Custom API URL (default: `https://api.github.com`) |\n| `GITHUB_ENTERPRISE_SLUG` | ❌ No | Enterprise slug for enhanced features |\n| `GITHUB_ENTERPRISE_URL` | ❌ No | GitHub Enterprise Server API URL |\n| `DEVOPS_CONFIG_REPO` | ❌ No | Config repo name (default: `devops-config`) |\n| `DEVOPS_CONFIG_PATH` | ❌ No | Local path to config files (for mounted configs) |\n\n#### Repo Filter Precedence\n\nWhen determining which repositories to query, ActionsPulse uses this precedence (highest to lowest):\n\n| Priority | Source | Applies To | Example |\n|----------|--------|------------|---------|\n| 1️⃣ | `repo_filter` parameter in tool call | Individual tools | `get_dora_metrics(repo_filter: \"app1,app2\")` |\n| 2️⃣ | `inventory.yaml` repositories | `generate_devops_reports` | Repos defined in config file |\n| 3️⃣ | `DEFAULT_REPO_FILTER` env var | All tools (fallback) | `DEFAULT_REPO_FILTER=my-app,my-api` |\n| 4️⃣ | All org repos via GitHub API | All tools | *(default if nothing set)* |\n\n**Tip:** For quick setup without a config repo, just set `DEFAULT_REPO_FILTER` in the MCP Registry installer. For richer metadata (team, tier, compliance tags), use `inventory.yaml`.\n\n### 4. Configuration Files (Optional)\n\n**By default, ActionsPulse queries ALL repositories in your organization via the GitHub API** — no configuration files are required. You can filter repos dynamically using tool parameters like `repo_filter`.\n\nThe optional configuration files let you define persistent metadata (teams, tiers, compliance tags) for filtering and reporting. There are two approaches:\n\n#### Option A: Remote Config Repository (Recommended for Teams)\n\nCreate a `devops-config` repository in your organization with the following structure:\n\n```\ndevops-config/\n├── devops-config.yaml          # Main configuration\n├── repositories/\n│   └── inventory.yaml          # List of repos to monitor\n├── policies/\n│   ├── workflow-policies.yaml  # CI/CD standards\n│   └── security-policies.yaml  # Security requirements\n└── dashboards/                 # Dashboard configs\n```\n\nThe MCP server will automatically discover and load from `{org}/devops-config` repo.\n\n#### Option B: Local Config Files (For Development/Testing)\n\nMount a local config directory into the Docker container:\n\n<details>\n<summary>📄 mcp.json with config volume</summary>\n\n```jsonc\n{\n  \"servers\": {\n    \"actions-pulse\": {\n      \"command\": \"docker\",\n      \"args\": [\n        \"run\", \"-i\", \"--rm\",\n        \"--env-file\", \"/path/to/.mcp.env\",\n        \"-e\", \"GITHUB_ORG=your-org-name\",\n        \"-e\", \"DEVOPS_CONFIG_PATH=/app/config\",\n        \"-v\", \"/path/to/your/config:/app/config:ro\",\n        \"ghcr.io/tsviz/actions-pulse:latest\"\n      ],\n      \"type\": \"stdio\"\n    }\n  }\n}\n```\n\n</details>\n\n#### Repository Inventory Example\n\n<details>\n<summary>📄 inventory.yaml</summary>\n\nCreate `repositories/inventory.yaml` to define which repos to monitor:\n\n```yaml\napiVersion: actions-pulse/v1\nkind: RepositoryInventory\nmetadata:\n  name: my-inventory\n  version: \"1.0.0\"\n  description: \"Repositories to monitor\"\n\nspec:\n  discovery:\n    enabled: false  # Only monitor explicit repos\n\n  repositories:\n    - name: my-app\n      team: platform\n      tier: tier-1\n      compliance: [SOC2]\n      tags: [java, production]\n\n    - name: my-api\n      team: backend\n      tier: tier-2\n      tags: [nodejs, staging]\n```\n\n</details>\n\n#### Repository Tiers Quick Reference\n\n| Tier | Priority | Uptime | Response Time | Use Case |\n|------|----------|--------|---------------|----------|\n| **tier-1** | 🔴 Critical | 99.9% | < 15 min | Production, customer-facing |\n| **tier-2** | 🟡 Standard | 99% | < 1 hour | Internal tools, staging |\n| **tier-3** | 🟢 Low | Best effort | < 24 hours | Demos, prototypes |\n\nSee [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) for complete tier definitions, compliance requirements, and alerting behavior.\n\n### 5. Restart VS Code\n\nAfter updating `mcp.json`, restart VS Code to pick up the new MCP server. You can verify the server is running by opening GitHub Copilot Chat and asking about your DevOps metrics.\n\n## 🛠️ Available Tools\n\n<details>\n<summary>📊 Usage & Performance Metrics</summary>\n\n### get_actions_usage_metrics\nAnalyze GitHub Actions usage and billing data (basic).\n```\nParameters:\n- org_name: Organization name (optional if GITHUB_ORG is set)\n- timeframe: '24h' | '7d' | '30d'\n- breakdown: 'repository' | 'workflow' | 'runner_type'\n```\n\n### get_detailed_usage_metrics ⭐\n**GitHub Insights-style** detailed usage metrics with per-workflow, per-job, per-repo, per-OS, and per-runner breakdowns.\n```\nParameters:\n- org_name: Organization name (optional if GITHUB_ORG is set)\n- timeframe: '7d' | '30d' | '90d'\n- repo_filter: Comma-separated list of repositories (optional)\n```\n\n### get_detailed_performance_metrics ⭐\n**GitHub Insights-style** performance metrics with avg run time, queue time, and failure rates per workflow/job/repo/OS/runner.\n```\nParameters:\n- org_name: Organization name (optional if GITHUB_ORG is set)\n- timeframe: '7d' | '30d' | '90d'\n- repo_filter: Comma-separated list of repositories (optional)\n```\n\n### get_actions_performance_metrics\nGet workflow performance analytics with P95/P99 latencies (basic).\n```\nParameters:\n- org_name: Organization name (optional if GITHUB_ORG is set)\n- repo_name: Specific repository (optional)\n- workflow_id: Specific workflow (optional)\n- timeframe: '1h' | '6h' | '24h' | '7d'\n```\n\n</details>\n\n<details>\n<summary>🏃 Runners & Cost Optimization</summary>\n\n> **Enhanced Cost Detection**: Reports now use a three-tier system for accurate runner cost calculation:\n> - 🎯 **API Detection** - Uses hosted runners API for exact machine specs\n> - 🏷️ **Label Detection** - Pattern matching against runner catalog\n> - 📊 **Default Pricing** - OS-based fallback\n>\n> See [Configuration Guide](docs/CONFIGURATION.md#enhanced-runner-cost-detection) for details.\n\n### analyze_runner_utilization\nAnalyze runner utilization and efficiency.\n```\nParameters:\n- org_name: Organization name (optional if GITHUB_ORG is set)\n- runner_type: 'self-hosted' | 'github-hosted' | 'all'\n- include_costs: Include cost analysis (default: true)\n```\n\n### get_actions_cache_analytics\nAnalyze Actions cache usage and efficiency.\n```\nParameters:\n- org_name: Organization name (optional if GITHUB_ORG is set)\n- repo_name: Specific repository (optional)\n- timeframe: '24h' | '7d' | '30d'\n```\n\n### generate_cost_optimization_report\nGenerate actionable cost optimization recommendations.\n```\nParameters:\n- org_name: Organization name (optional if GITHUB_ORG is set)\n- include_recommendations: Include actionable recommendations (default: true)\n- target_savings_percentage: Target savings (5-50, default: 20)\n```\n\n</details>\n\n<details>\n<summary>🔍 Workflow Insights & Team Productivity</summary>\n\n### get_workflow_insights\nGet workflow insights with bottleneck detection.\n```\nParameters:\n- org_name: Organization name (optional if GITHUB_ORG is set)\n- repo_name: Repository name (required)\n- workflow_name: Workflow name or filename (required)\n- analyze_dependencies: Analyze job dependencies (default: true)\n```\n\n### get_team_productivity_metrics\nAnalyze team productivity based on Actions and commit data.\n```\nParameters:\n- org_name: Organization name (optional if GITHUB_ORG is set)\n- team_slug: Team slug (optional)\n- include_individuals: Include individual metrics (default: false)\n- timeframe: '7d' | '30d' | '90d'\n```\n\n### get_compliance_audit_report\nGenerate compliance and security audit report.\n```\nParameters:\n- org_name: Organization name (optional if GITHUB_ORG is set)\n- compliance_framework: 'SOC2' | 'ISO27001' | 'HIPAA' | 'PCI-DSS' | 'CUSTOM'\n- include_secrets_scan: Include secret scanning (default: true, requires GHAS)\n```\n\n</details>\n\n---\n\n## 📊 DORA Metrics & Developer Experience\n\n<details>\n<summary>📈 DORA Metrics</summary>\n\n### get_dora_metrics\nGet DORA metrics (Deployment Frequency, Lead Time, Change Failure Rate, Time to Restore).\n```\nParameters:\n- org_name: Organization name (optional if GITHUB_ORG is set)\n- timeframe: '7d' | '30d' | '90d'\n- repo_filter: Comma-separated list of repositories (optional)\n```\n\n### get_enhanced_dora_metrics\nDORA metrics using actual GitHub Deployments API for maximum accuracy.\n```\nParameters:\n- org_name: Organization name (optional if GITHUB_ORG is set)\n- timeframe: '7d' | '30d' | '90d'\n- repo_filter: Comma-separated list of repositories (optional)\n```\n\n### get_pull_request_metrics\nPull request metrics including lead time, merge rates, and size distribution.\n```\nParameters:\n- org_name: Organization name (optional if GITHUB_ORG is set)\n- timeframe: '7d' | '30d' | '90d'\n- repo_name: Specific repository (optional)\n- include_stale: Include stale PR analysis (optional)\n```\n\n### get_issue_metrics\nIssue metrics including time to close, label distribution, and backlog health.\n```\nParameters:\n- org_name: Organization name (optional if GITHUB_ORG is set)\n- timeframe: '7d' | '30d' | '90d'\n- repo_name: Specific repository (optional)\n- label_filter: Filter by label (optional)\n```\n\n### get_deployment_metrics\nDeployment metrics from GitHub Deployments API.\n```\nParameters:\n- org_name: Organization name (optional if GITHUB_ORG is set)\n- timeframe: '7d' | '30d' | '90d'\n- environment: Filter by environment (optional)\n- repo_filter: Comma-separated list of repositories (optional)\n```\n\n### get_environment_metrics\nAnalyze GitHub environment configurations including protection rules.\n```\nParameters:\n- org_name: Organization name (optional if GITHUB_ORG is set)\n- repo_filter: Comma-separated list of repositories (optional)\n```\n\n### get_discussion_metrics\nGitHub Discussions metrics including answer rates and engagement.\n```\nParameters:\n- org_name: Organization name (optional if GITHUB_ORG is set)\n- repo_name: Specific repository (optional)\n- timeframe: '7d' | '30d' | '90d'\n```\n\n### get_merge_queue_metrics\nMerge queue usage and adoption across repositories.\n```\nParameters:\n- org_name: Organization name (optional if GITHUB_ORG is set)\n- repo_name: Specific repository (optional)\n```\n\n</details>\n\n---\n\n## 🏷️ Custom Properties\n\n<details>\n<summary>📋 Custom Properties Tools</summary>\n\n### get_org_custom_properties\nList all custom property definitions for an organization.\n```\nParameters:\n- org_name: Organization name (optional if GITHUB_ORG is set)\n```\n\n### get_custom_properties_analytics\nAnalyze custom property usage and coverage across repositories.\n```\nParameters:\n- org_name: Organization name (optional if GITHUB_ORG is set)\n```\n\n### get_repos_by_property\nFind repositories by custom property value.\n```\nParameters:\n- org_name: Organization name (optional if GITHUB_ORG is set)\n- property_name: Custom property name (e.g., team, tier, compliance)\n- property_value: Property value to filter by (optional)\n```\n\n</details>\n\n---\n\n## 🏢 Enterprise Features (Optional)\n\n<details>\n<summary>⚙️ Enterprise configuration</summary>\n\nIf you have GitHub Enterprise, you can enable enhanced features by adding:\n\n```bash\nGITHUB_ENTERPRISE_SLUG=your-enterprise-slug\n```\n\nThis enables:\n- Cross-organization billing aggregation\n- Enterprise-wide runner pools\n- Consolidated audit logs\n\n</details>\n\n## 🔧 Development\n\n<details>\n<summary>🛠️ Build and run commands</summary>\n\n### Build locally\n```bash\nnpm install\nnpm run build\ndocker build -t actions-pulse:local .\n```\n\n### Run locally (without Docker)\n```bash\nexport GITHUB_TOKEN=ghp_your_token\nexport GITHUB_ORG=your-org\nnpm start\n```\n\n</details>\n\n## 🤖 Automating DevOps Reports with GitHub Actions\n\nYou can automate DevOps report generation using [GitHub Copilot CLI](https://docs.github.com/en/enterprise-cloud@latest/copilot/how-tos/use-copilot-agents/use-copilot-cli) with ActionsPulse MCP server in a GitHub Actions workflow. This enables scheduled weekly reports, on-demand analysis, and automatic issue creation with insights.\n\n### How It Works\n\n1. **Install Copilot CLI** in the workflow runner\n2. **Configure ActionsPulse MCP** with your GitHub token\n3. **Run Copilot** with a prompt to generate reports using MCP tools\n4. **Create issues** with the generated report\n\n### Example Workflow\n\nSee [`.github/workflows/weekly-devops-report.yml`](.github/workflows/weekly-devops-report.yml) for a complete working example.\n\n<details>\n<summary>📄 Key workflow steps</summary>\n\n```yaml\n- name: Setup MCP config\n  env:\n    GITHUB_TOKEN: ${{ secrets.GH_PAT_DEVOPS }}\n  run: |\n    mkdir -p ~/.copilot\n    printf '%s\\n' '{\n      \"mcpServers\": {\n        \"actions-pulse\": {\n          \"command\": \"docker\",\n          \"args\": [\"run\", \"-i\", \"--rm\", \"-e\", \"GITHUB_TOKEN='\"$GITHUB_TOKEN\"'\", \"-e\", \"GITHUB_ORG=your-org\", \"ghcr.io/tsviz/actions-pulse:latest\"],\n          \"tools\": [\"*\"]\n        }\n      }\n    }' > ~/.copilot/mcp-config.json\n\n- name: Generate DevOps Report\n  env:\n    GITHUB_TOKEN: ${{ secrets.GH_PAT_DEVOPS }}\n    GH_TOKEN: ${{ secrets.GH_PAT_DEVOPS }}\n  run: |\n    copilot --yolo \\\n      --disable-builtin-mcps \\\n      --additional-mcp-config @$HOME/.copilot/mcp-config.json \\\n      --prompt \"Use the actions-pulse MCP tools to generate a DevOps report...\"\n```\n\n</details>\n\n### Key Copilot CLI Flags\n\n| Flag | Description |\n|------|-------------|\n| `--yolo` | Auto-approve all tool calls (no confirmation prompts) |\n| `--disable-builtin-mcps` | Disable built-in MCP servers (use only custom ones) |\n| `--additional-mcp-config @<file>` | Load MCP server config from file (use `$HOME` not `~`) |\n| `--prompt \"<text>\"` | The prompt for Copilot to execute |\n\n### Tips\n\n- **Use `$HOME` instead of `~`** in the config path — tilde is not expanded in `@file` arguments\n- **Embed the token in args** — the `env` block in MCP config doesn't pass variables to Docker\n- **Include `\"tools\": [\"*\"]`** in your MCP config — this field is required\n\n## 📚 Documentation\n\n| Document | Description |\n|----------|-------------|\n| [Quick Start](docs/QUICKSTART.md) | Get up and running in 5 minutes |\n| [Configuration Guide](docs/CONFIGURATION.md) | Complete configuration reference |\n| [Architecture](docs/ARCHITECTURE.md) | System design and tier definitions |\n\n### Example Configurations\n\nReady-to-use configuration examples are available in the [examples/](examples/) directory:\n\n| File | Description |\n|------|-------------|\n| [mcp-docker.json](examples/mcp-docker.json) | VS Code MCP config using Docker |\n| [mcp-local.json](examples/mcp-local.json) | VS Code MCP config for local development |\n| [mcp-envfile.json](examples/mcp-envfile.json) | VS Code MCP config using environment file |\n| [.env.example](examples/.env.example) | Environment variables template |\n| [inventory.yaml](examples/inventory.yaml) | Repository inventory example |\n| [devops-config.yaml](examples/devops-config.yaml) | DevOps observer configuration |\n| [docker-compose.yml](examples/docker-compose.yml) | Docker Compose deployment |\n\n## �📄 License\n\nMIT",
  "bytes": 26315,
  "sha": "7fbec54abaf4da64f8daf61120a97d2931dc0854204b9548ec493b144c6242ba",
  "repo_slug": "tsviz/github-mcp-server-devops",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_tsviz_actions_pulse_0b1424f0/readme"
}