Skip to content

MCP Release Watch

MCP Release Watch #69

name: MCP Release Watch
on:
workflow_dispatch:
schedule:
- cron: "15 16 * * *"
permissions:
contents: read
issues: write
concurrency:
group: mcp-release-watch-${{ github.ref }}
cancel-in-progress: false
jobs:
release-watch:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
fetch-depth: 0
persist-credentials: false
- name: Setup workspace
uses: ./.github/actions/setup-workspace
- name: Check MCP release status
env:
GITHUB_TOKEN: ${{ github.token }}
# check-mcp-release-due.ts imports mcp-release-core.ts directly, so it needs tsx (not plain node) to
# resolve that local .ts import.
run: npx tsx scripts/check-mcp-release-due.ts --json --output mcp-release-due.json --upsert-issue
- name: Summarize MCP release status
run: |
node <<'NODE'
const fs = require("node:fs");
const report = JSON.parse(fs.readFileSync("mcp-release-due.json", "utf8"));
const lines = [
"## MCP Release Watch",
"",
`- Due: \`${report.due}\``,
`- Proposed version: \`${report.proposedVersion}\``,
`- Latest tag: \`${report.latestTag ?? "none"}\``,
`- npm latest: \`${report.publishedVersion ?? "unknown"}\``,
`- MCP-related commits: \`${report.commits.length}\``,
];
fs.appendFileSync(process.env.GITHUB_STEP_SUMMARY, `${lines.join("\n")}\n`);
NODE