ActionsPulse

io.github.tsviz由 GitHub 账号 tsviz 发布v2.3.0更新于 Nov 3, 2026

Real-time GitHub Actions observability: DORA Metrics, Cost Analysis, CI/CD Health dashboards.

发布方自己的服务:actions.world

概览

AI 生成的概览

只读的 GitHub Actions 可观测性服务器,让助手获取组织的 DORA 指标、CI/CD 健康度、运行器成本与合规数据。

可以做什么
  • 查询 Actions 用量、账单,以及按工作流、作业、操作系统和运行器的细分指标
  • 分析工作流性能、排队时间、失败率与缓存效率
  • 评估运行器利用率并生成成本优化建议
  • 计算 DORA 指标,以及部署、拉取请求、议题、讨论和合并队列指标
  • 报告团队生产力、环境防护规则与自定义属性覆盖情况
  • 生成合规审计报告和可交互的 HTML DevOps 仪表板
适用场景
适合需要让助手回答某个 GitHub 组织 CI/CD 状况的场景,例如部署频率、交付周期、失败率、Actions 花费、运行器效率或 SOC2/ISO27001 类合规状态,并在 IDE 内产出可分享的仪表板。
运行要求
以本地 Docker 容器(镜像发布于 ghcr.io)通过 stdio 运行,也可用 Node.js 从源码启动。需要 GITHUB_ORG 指定组织名,以及 GITHUB_TOKEN 中的 GitHub 个人访问令牌,具备对 Actions、Administration、Contents、Deployments、Environments、Issues 和 Pull Requests 的读取权限;密钥与代码扫描权限为可选。另有可选变量用于过滤仓库和连接 GitHub Enterprise。
安装前请注意
该令牌是对整个组织的广泛读取凭据,且常以 Docker 参数或 env 文件形式明文传入,需谨慎保管并尽量缩小权限范围。可选的密钥扫描与代码扫描权限会暴露安全发现。生成的 HTML 报告写入带时间戳的目录,可能包含全组织数据。README 的自动化示例使用自动批准工具调用,会取消确认提示。

安装

在 SourceWeft 中

  1. 打开 控制台中的 ActionsPulse,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

ActionsPulse 🚀

[Available on MCP Registry] [Docker Image] [Container Registry] [License: MIT]

Real-time GitHub Actions observability through VS Code with GitHub Copilot

DORA Metrics • Cost Analysis • CI/CD Health • Security Compliance

[ActionsPulse Dashboard]

☝️ This is an actual interactive HTML dashboard generated by ActionsPulse — see full tour below


✨ What is ActionsPulse?

ActionsPulse is an Agentic MCP Server that brings DevOps observability directly into your IDE. Ask GitHub Copilot questions like:

💬 "Show me our DORA metrics for the last 30 days"
💬 "Which workflows are costing us the most?"
💬 "Generate a compliance report for SOC2"
💬 "What's our deployment frequency this month?"

And get interactive visual dashboards with actionable insights.

🎯 Features

FeatureOrganizationEnterprise
📊 DORA Metrics✅✅ Enhanced
⚡ Performance Analytics✅✅
💰 Cost Optimization✅✅ Cross-org
🏃 Runner Utilization✅ Self-hosted✅ All runners
👥 Team Productivity✅✅
🔒 Compliance Reports✅ (GHAS)✅
💾 Cache Analytics✅✅
🎓 Maturity Assessment✅✅

🖼️ Dashboard Tour

ActionsPulse generates interactive HTML dashboards that you can open in any browser. Simply ask Copilot:

💬 "Generate DevOps reports for my organization"

Or use the generate_devops_reports tool directly. Here's a complete tour of what you get:

📊 Dashboard Overview — Executive summary with all key metrics at a glance [Dashboard Overview]

The main dashboard provides:

  • 🎯 DevOps Maturity Score with visual gauge
  • 📈 DORA Metrics summary (Deployment Frequency, Lead Time, Change Failure Rate, MTTR)
  • ⚡ CI/CD Pipeline health overview
  • 💰 Cost analysis highlights
  • 🔒 Security & compliance status
  • Quick navigation to detailed reports
📈 DORA Metrics — Industry-standard DevOps performance indicators [DORA Metrics Dashboard]

Track the four key DORA metrics:

  • Deployment Frequency — How often you ship to production
  • Lead Time for Changes — Time from commit to production
  • Change Failure Rate — Percentage of deployments causing failures
  • Mean Time to Restore — How quickly you recover from incidents

Each metric includes trend analysis and benchmarks against industry standards (Elite, High, Medium, Low performers).

⚡ CI/CD Pipeline Health — Workflow performance and reliability [CI/CD Health Dashboard]

Deep dive into your CI/CD pipelines:

  • 🔄 Workflow success rates and trends
  • ⏱️ Average run times with P95/P99 latencies
  • 🚨 Failure analysis and common error patterns
  • 📊 Per-repository and per-workflow breakdowns
  • 🏃 Queue times and runner utilization
💰 Cost Optimization — Runner costs and savings opportunities [Cost Optimization Dashboard]

Understand and optimize your GitHub Actions spending:

  • 💵 Total costs by runner type (GitHub-hosted vs self-hosted)
  • 📊 Cost breakdown by repository, workflow, and OS
  • 🎯 Actionable recommendations for cost savings
  • 📈 Spending trends and projections
  • ⚡ Efficiency metrics (cost per workflow, cost per minute)
🔒 Security & Compliance — Audit-ready compliance reports [Security Dashboard]

Stay compliant and secure:

  • ✅ Compliance framework coverage (SOC2, ISO27001, HIPAA, PCI-DSS)
  • 🔍 Secret scanning status and alerts
  • 🛡️ Code scanning findings
  • 📋 Branch protection rule compliance
  • 🔐 GHAS (GitHub Advanced Security) feature adoption
🎓 DevOps Maturity — Organizational capability assessment [DevOps Maturity Dashboard]

Assess your DevOps maturity level:

  • 📊 Overall maturity score with visual gauge
  • 🎯 Category scores (CI/CD, Testing, Security, Monitoring, etc.)
  • 📈 Improvement recommendations prioritized by impact
  • 🏆 Benchmark against industry standards
  • 📋 Actionable roadmap for advancement

💡 How to generate these dashboards:

# Ask Copilot in natural language:"Generate DevOps reports for the last 30 days"
# Or invoke the tool directly:#generate_devops_reports --timeframe 30d

Reports are saved to timestamped folders as standalone HTML files — share them with your team or embed in internal wikis!


🚀 Quick Start

Install from MCP Registry

ActionsPulse is published to the official MCP Registry as io.github.tsviz/actions-pulse.

🌐 Web UI (Recommended) — Use the MCP Registry UI for 1-click installation into VS Code or Cursor:

  1. Go to vemonet.github.io/mcp-registry
  2. Search for "actions-pulse"
  3. Click Install → Select your client (VS Code, Cursor)
  4. Configure environment variables when prompted

Manual Docker Setup — Or follow the steps below to configure manually.

Prerequisites

  • ✅ Docker installed
  • ✅ GitHub Personal Access Token (fine-grained recommended)
  • ✅ VS Code with GitHub Copilot

1. Create a Fine-Grained Personal Access Token

  1. Go to GitHub Settings → Developer Settings → Personal Access Tokens → Fine-grained tokens

  2. Click Generate new token

  3. Configure basic settings:

    • Token name: actions-pulse-mcp
    • Expiration: 90 days (or per your security policy)
    • Resource owner: Select your organization
    • Repository access: All repositories
  4. Set Repository permissions:

    PermissionAccessRequiredPurpose
    ActionsRead✅ YesWorkflow runs, cache usage
    AdministrationRead✅ YesBilling data, repo settings
    ContentsRead✅ YesRead config files from devops-config repo
    Custom propertiesRead✅ YesRead custom property values on repositories
    DeploymentsRead✅ YesDeployment frequency, environments (DORA)
    DiscussionsRead🔶 OptionalCommunity engagement metrics
    EnvironmentsRead✅ YesEnvironment protection rules
    IssuesRead✅ YesIssue metrics, resolution times (DORA)
    Merge queuesRead🔶 OptionalMerge queue adoption and wait times
    MetadataRead✅ YesBasic repo info (auto-granted)
    Pull requestsRead✅ YesPR metrics, lead time, review times (DORA)
  5. Set Organization permissions:

    PermissionAccessRequiredPurpose
    Custom propertiesRead✅ YesRead property definitions/schemas at org level
    Custom properties for organizationsRead✅ YesRead property values assigned to repositories
  6. Set Organization permissions (continued):

    PermissionAccessRequiredPurpose
    MembersRead🔶 OptionalTeam membership for productivity metrics
    Self-hosted runnersRead🔶 OptionalRunner utilization metrics
    AdministrationRead✅ YesOrg billing and settings
  7. Optional permissions (for compliance features, requires GitHub Advanced Security):

    PermissionAccessRequiredPurpose
    Secret scanning alertsRead❌ OptionalCompliance audit reports
    Code scanning alertsRead❌ OptionalCompliance audit reports
  8. Click Generate token and save it securely

2. Configure MCP Server

Option A: Using env-file (Recommended)

Add to your ~/.mcp.env:

bash
GITHUB_TOKEN=ghp_your_fine_grained_token_here
📄 mcp.json with env-file

Add to VS Code's MCP settings (~/.vscode/mcp.json or workspace .vscode/mcp.json):

jsonc
{  "servers": {    "actions-pulse": {      "command": "docker",      "args": [        "run", "-i", "--rm",        "--env-file", "/path/to/.mcp.env",        "-e", "GITHUB_ORG=your-org-name",        "ghcr.io/tsviz/actions-pulse:latest"      ],      "type": "stdio"    }  }}
Option B: Direct Environment Variables
📄 mcp.json with inline env vars
jsonc
{  "servers": {    "actions-pulse": {      "command": "docker",      "args": [        "run", "-i", "--rm",        "-e", "GITHUB_TOKEN=ghp_your_token",        "-e", "GITHUB_ORG=your-org-name",        "ghcr.io/tsviz/actions-pulse:latest"      ],      "type": "stdio"    }  }}

3. Environment Variables Reference

VariableRequiredDescription
GITHUB_TOKEN✅ YesPersonal Access Token (fine-grained recommended)
GITHUB_ORG✅ YesTarget GitHub organization to monitor (e.g., my-company). All API calls use this org.
DEFAULT_REPO_FILTER❌ NoComma-separated list of repos to monitor (e.g., my-app,my-api). See precedence rules below.
GITHUB_API_URL❌ NoCustom API URL (default: https://api.github.com)
GITHUB_ENTERPRISE_SLUG❌ NoEnterprise slug for enhanced features
GITHUB_ENTERPRISE_URL❌ NoGitHub Enterprise Server API URL
DEVOPS_CONFIG_REPO❌ NoConfig repo name (default: devops-config)
DEVOPS_CONFIG_PATH❌ NoLocal path to config files (for mounted configs)
Repo Filter Precedence

When determining which repositories to query, ActionsPulse uses this precedence (highest to lowest):

PrioritySourceApplies ToExample
1️⃣repo_filter parameter in tool callIndividual toolsget_dora_metrics(repo_filter: "app1,app2")
2️⃣inventory.yaml repositoriesgenerate_devops_reportsRepos defined in config file
3️⃣DEFAULT_REPO_FILTER env varAll tools (fallback)DEFAULT_REPO_FILTER=my-app,my-api
4️⃣All org repos via GitHub APIAll tools(default if nothing set)

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.

4. Configuration Files (Optional)

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.

The optional configuration files let you define persistent metadata (teams, tiers, compliance tags) for filtering and reporting. There are two approaches:

Option A: Remote Config Repository (Recommended for Teams)

Create a devops-config repository in your organization with the following structure:

devops-config/├── devops-config.yaml          # Main configuration├── repositories/│   └── inventory.yaml          # List of repos to monitor├── policies/│   ├── workflow-policies.yaml  # CI/CD standards│   └── security-policies.yaml  # Security requirements└── dashboards/                 # Dashboard configs

The MCP server will automatically discover and load from {org}/devops-config repo.

Option B: Local Config Files (For Development/Testing)

Mount a local config directory into the Docker container:

📄 mcp.json with config volume
jsonc
{  "servers": {    "actions-pulse": {      "command": "docker",      "args": [        "run", "-i", "--rm",        "--env-file", "/path/to/.mcp.env",        "-e", "GITHUB_ORG=your-org-name",        "-e", "DEVOPS_CONFIG_PATH=/app/config",        "-v", "/path/to/your/config:/app/config:ro",        "ghcr.io/tsviz/actions-pulse:latest"      ],      "type": "stdio"    }  }}
Repository Inventory Example
📄 inventory.yaml

Create repositories/inventory.yaml to define which repos to monitor:

yaml
apiVersion: actions-pulse/v1kind: RepositoryInventorymetadata:  name: my-inventory  version: "1.0.0"  description: "Repositories to monitor"
spec:  discovery:    enabled: false  # Only monitor explicit repos
  repositories:    - name: my-app      team: platform      tier: tier-1      compliance: [SOC2]      tags: [java, production]
    - name: my-api      team: backend      tier: tier-2      tags: [nodejs, staging]
Repository Tiers Quick Reference
TierPriorityUptimeResponse TimeUse Case
tier-1🔴 Critical99.9%< 15 minProduction, customer-facing
tier-2🟡 Standard99%< 1 hourInternal tools, staging
tier-3🟢 LowBest effort< 24 hoursDemos, prototypes

See docs/ARCHITECTURE.md for complete tier definitions, compliance requirements, and alerting behavior.

5. Restart VS Code

After 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.

🛠️ Available Tools

📊 Usage & Performance Metrics

get_actions_usage_metrics

Analyze GitHub Actions usage and billing data (basic).

Parameters:- org_name: Organization name (optional if GITHUB_ORG is set)- timeframe: '24h' | '7d' | '30d'- breakdown: 'repository' | 'workflow' | 'runner_type'

get_detailed_usage_metrics ⭐

GitHub Insights-style detailed usage metrics with per-workflow, per-job, per-repo, per-OS, and per-runner breakdowns.

Parameters:- org_name: Organization name (optional if GITHUB_ORG is set)- timeframe: '7d' | '30d' | '90d'- repo_filter: Comma-separated list of repositories (optional)

get_detailed_performance_metrics ⭐

GitHub Insights-style performance metrics with avg run time, queue time, and failure rates per workflow/job/repo/OS/runner.

Parameters:- org_name: Organization name (optional if GITHUB_ORG is set)- timeframe: '7d' | '30d' | '90d'- repo_filter: Comma-separated list of repositories (optional)

get_actions_performance_metrics

Get workflow performance analytics with P95/P99 latencies (basic).

Parameters:- org_name: Organization name (optional if GITHUB_ORG is set)- repo_name: Specific repository (optional)- workflow_id: Specific workflow (optional)- timeframe: '1h' | '6h' | '24h' | '7d'
🏃 Runners & Cost Optimization

Enhanced Cost Detection: Reports now use a three-tier system for accurate runner cost calculation:

  • 🎯 API Detection - Uses hosted runners API for exact machine specs
  • 🏷️ Label Detection - Pattern matching against runner catalog
  • 📊 Default Pricing - OS-based fallback

See Configuration Guide for details.

analyze_runner_utilization

Analyze runner utilization and efficiency.

Parameters:- org_name: Organization name (optional if GITHUB_ORG is set)- runner_type: 'self-hosted' | 'github-hosted' | 'all'- include_costs: Include cost analysis (default: true)

get_actions_cache_analytics

Analyze Actions cache usage and efficiency.

Parameters:- org_name: Organization name (optional if GITHUB_ORG is set)- repo_name: Specific repository (optional)- timeframe: '24h' | '7d' | '30d'

generate_cost_optimization_report

Generate actionable cost optimization recommendations.

Parameters:- org_name: Organization name (optional if GITHUB_ORG is set)- include_recommendations: Include actionable recommendations (default: true)- target_savings_percentage: Target savings (5-50, default: 20)
🔍 Workflow Insights & Team Productivity

get_workflow_insights

Get workflow insights with bottleneck detection.

Parameters:- org_name: Organization name (optional if GITHUB_ORG is set)- repo_name: Repository name (required)- workflow_name: Workflow name or filename (required)- analyze_dependencies: Analyze job dependencies (default: true)

get_team_productivity_metrics

Analyze team productivity based on Actions and commit data.

Parameters:- org_name: Organization name (optional if GITHUB_ORG is set)- team_slug: Team slug (optional)- include_individuals: Include individual metrics (default: false)- timeframe: '7d' | '30d' | '90d'

get_compliance_audit_report

Generate compliance and security audit report.

Parameters:- org_name: Organization name (optional if GITHUB_ORG is set)- compliance_framework: 'SOC2' | 'ISO27001' | 'HIPAA' | 'PCI-DSS' | 'CUSTOM'- include_secrets_scan: Include secret scanning (default: true, requires GHAS)

📊 DORA Metrics & Developer Experience

📈 DORA Metrics

get_dora_metrics

Get DORA metrics (Deployment Frequency, Lead Time, Change Failure Rate, Time to Restore).

Parameters:- org_name: Organization name (optional if GITHUB_ORG is set)- timeframe: '7d' | '30d' | '90d'- repo_filter: Comma-separated list of repositories (optional)

get_enhanced_dora_metrics

DORA metrics using actual GitHub Deployments API for maximum accuracy.

Parameters:- org_name: Organization name (optional if GITHUB_ORG is set)- timeframe: '7d' | '30d' | '90d'- repo_filter: Comma-separated list of repositories (optional)

get_pull_request_metrics

Pull request metrics including lead time, merge rates, and size distribution.

Parameters:- org_name: Organization name (optional if GITHUB_ORG is set)- timeframe: '7d' | '30d' | '90d'- repo_name: Specific repository (optional)- include_stale: Include stale PR analysis (optional)

get_issue_metrics

Issue metrics including time to close, label distribution, and backlog health.

Parameters:- org_name: Organization name (optional if GITHUB_ORG is set)- timeframe: '7d' | '30d' | '90d'- repo_name: Specific repository (optional)- label_filter: Filter by label (optional)

get_deployment_metrics

Deployment metrics from GitHub Deployments API.

Parameters:- org_name: Organization name (optional if GITHUB_ORG is set)- timeframe: '7d' | '30d' | '90d'- environment: Filter by environment (optional)- repo_filter: Comma-separated list of repositories (optional)

get_environment_metrics

Analyze GitHub environment configurations including protection rules.

Parameters:- org_name: Organization name (optional if GITHUB_ORG is set)- repo_filter: Comma-separated list of repositories (optional)

get_discussion_metrics

GitHub Discussions metrics including answer rates and engagement.

Parameters:- org_name: Organization name (optional if GITHUB_ORG is set)- repo_name: Specific repository (optional)- timeframe: '7d' | '30d' | '90d'

get_merge_queue_metrics

Merge queue usage and adoption across repositories.

Parameters:- org_name: Organization name (optional if GITHUB_ORG is set)- repo_name: Specific repository (optional)

🏷️ Custom Properties

📋 Custom Properties Tools

get_org_custom_properties

List all custom property definitions for an organization.

Parameters:- org_name: Organization name (optional if GITHUB_ORG is set)

get_custom_properties_analytics

Analyze custom property usage and coverage across repositories.

Parameters:- org_name: Organization name (optional if GITHUB_ORG is set)

get_repos_by_property

Find repositories by custom property value.

Parameters:- org_name: Organization name (optional if GITHUB_ORG is set)- property_name: Custom property name (e.g., team, tier, compliance)- property_value: Property value to filter by (optional)

🏢 Enterprise Features (Optional)

⚙️ Enterprise configuration

If you have GitHub Enterprise, you can enable enhanced features by adding:

bash
GITHUB_ENTERPRISE_SLUG=your-enterprise-slug

This enables:

  • Cross-organization billing aggregation
  • Enterprise-wide runner pools
  • Consolidated audit logs

🔧 Development

🛠️ Build and run commands

Build locally

bash
npm installnpm run builddocker build -t actions-pulse:local .

Run locally (without Docker)

bash
export GITHUB_TOKEN=ghp_your_tokenexport GITHUB_ORG=your-orgnpm start

🤖 Automating DevOps Reports with GitHub Actions

You can automate DevOps report generation using GitHub 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.

How It Works

  1. Install Copilot CLI in the workflow runner
  2. Configure ActionsPulse MCP with your GitHub token
  3. Run Copilot with a prompt to generate reports using MCP tools
  4. Create issues with the generated report

Example Workflow

See .github/workflows/weekly-devops-report.yml for a complete working example.

📄 Key workflow steps
yaml
- name: Setup MCP config  env:    GITHUB_TOKEN: ${{ secrets.GH_PAT_DEVOPS }}  run: |    mkdir -p ~/.copilot    printf '%s\n' '{      "mcpServers": {        "actions-pulse": {          "command": "docker",          "args": ["run", "-i", "--rm", "-e", "GITHUB_TOKEN='"$GITHUB_TOKEN"'", "-e", "GITHUB_ORG=your-org", "ghcr.io/tsviz/actions-pulse:latest"],          "tools": ["*"]        }      }    }' > ~/.copilot/mcp-config.json
- name: Generate DevOps Report  env:    GITHUB_TOKEN: ${{ secrets.GH_PAT_DEVOPS }}    GH_TOKEN: ${{ secrets.GH_PAT_DEVOPS }}  run: |    copilot --yolo \      --disable-builtin-mcps \      --additional-mcp-config @$HOME/.copilot/mcp-config.json \      --prompt "Use the actions-pulse MCP tools to generate a DevOps report..."

Key Copilot CLI Flags

FlagDescription
--yoloAuto-approve all tool calls (no confirmation prompts)
--disable-builtin-mcpsDisable built-in MCP servers (use only custom ones)
--additional-mcp-config @<file>Load MCP server config from file (use $HOME not ~)
--prompt "<text>"The prompt for Copilot to execute

Tips

  • Use $HOME instead of ~ in the config path — tilde is not expanded in @file arguments
  • Embed the token in args — the env block in MCP config doesn't pass variables to Docker
  • Include "tools": ["*"] in your MCP config — this field is required

📚 Documentation

DocumentDescription
Quick StartGet up and running in 5 minutes
Configuration GuideComplete configuration reference
ArchitectureSystem design and tier definitions

Example Configurations

Ready-to-use configuration examples are available in the examples/ directory:

FileDescription
mcp-docker.jsonVS Code MCP config using Docker
mcp-local.jsonVS Code MCP config for local development
mcp-envfile.jsonVS Code MCP config using environment file
.env.exampleEnvironment variables template
inventory.yamlRepository inventory example
devops-config.yamlDevOps observer configuration
docker-compose.ymlDocker Compose deployment

�📄 License

MIT

来源:README.md,提交 216028e

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v2.3.0最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

其他 Actions 集成