Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: apify/mcpc
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.5.1
Choose a base ref
...
head repository: apify/mcpc
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: HEAD
Choose a head ref
  • 7 commits
  • 97 files changed
  • 3 contributors

Commits on Jul 31, 2026

  1. Added MCP 2026-07-28 support (#316)

    Stacks the following PRs:
    
    #314
    #315
    #318
    #319
    #320
    #326
    #327
    #328
    #329
    #330
    #331
    #337
    #336
    #339
    #340
    #345
    #347
    #348
    #349
    #351
    
    ---------
    
    Co-authored-by: Claude <noreply@anthropic.com>
    Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
    3 people authored Jul 31, 2026
    Configuration menu
    Copy the full SHA
    52c996b View commit details
    Browse the repository at this point in the history
  2. Enforce the dependency-age policy at release time (#352)

    `minimumReleaseAge: 7200` (5 days) is a resolution-time setting only:
    pnpm 10 does not re-check an existing lockfile on a `--frozen-lockfile`
    install (that landed in pnpm 11, pnpm/pnpm#10438), and both CI and
    `release.yml` install that way — so no dependency-age check ran during a
    release at all. This adds a gate that reads every version pinned in
    `pnpm-lock.yaml`, asks the registry when it was published, and fails the
    release if anything is too young.
    
    - `scripts/check-dependency-age.mjs` — thresholds read from
    `pnpm-workspace.yaml`; fails closed, so a registry error is a failure
    and never a silent pass
    - Packages in `minimumReleaseAgeExclude` get a 48-hour floor instead of
    an outright exemption
    - Wired into `release.yml` ahead of the bump/tag/push/publish steps, and
    into `publish.sh` as a local pre-flight (not `ci.yml` — Renovate already
    holds bumps 7 days, and each run costs ~560 registry round-trips)
    - `report-install-size.mjs` now installs with `--ignore-scripts`: it
    resolves `^` ranges live via npm, which honours no age gate, in the job
    holding `NPM_TOKEN`. Verified measurement-neutral (3 bytes of 22.8 MB)
    - Drops the unresolved `allowBuilds:` / `esbuild: set this to true or
    false` placeholder from `pnpm-workspace.yaml` — confirmed inert on pnpm
    10.33.4, `@napi-rs/keyring` still builds with an identical warning set —
    and corrects `CONTRIBUTING.md`, which said 1440 / 24 hours
    
    On today's lockfile the gate passes: 618 locked versions, the five
    `@modelcontextprotocol` packages at ~3.9–4.1 days sitting above the
    48-hour floor. No existing issue to reference; happy to open one if
    you'd like the motivation anchored.
    
    🤖 Generated with [Claude Code](https://claude.com/claude-code)
    
    https://claude.ai/code/session_01T7DpKbdofBXpGHfhi4TMMf
    
    ---
    _Generated by [Claude
    Code](https://claude.ai/code/session_01T7DpKbdofBXpGHfhi4TMMf)_
    
    ---------
    
    Co-authored-by: Claude <noreply@anthropic.com>
    Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
    3 people authored Jul 31, 2026
    Configuration menu
    Copy the full SHA
    2a2643d View commit details
    Browse the repository at this point in the history
  3. Add server-discover command for MCP 2026-07-28 connections (#354)

    MCP 2026-07-28 removed `ping`, so `mcpc @session ping` silently probes
    with `server/discover` instead — invisible until it shows up in a
    server's access log, with no way to see what that request returns. This
    adds a command that says what it does.
    
    - `mcpc @session server-discover` sends `server/discover` and reports
    the answer: supported protocol versions (negotiated one marked),
    capabilities, instructions, `_meta`. `--json` prints the
    `DiscoverResult` verbatim.
    - On 2025-era connections it refuses (exit 2) and points at `mcpc
    @session`, whose `initialize` result carries the same data.
    - `ping` output now names the request it measured; `ping --json` is
    unchanged.
    - Capability rendering extracted so both screens share it;
    `SERVER_INFO_META_KEY` mirrored in the dependency-free `protocol.ts`
    with an SDK drift test.
    - New `basic/server-discover.test.sh` e2e suite (one branch per protocol
    era); README, CHANGELOG and the agent skill updated.
    
    Refs #316
    
    🤖 Generated with [Claude Code](https://claude.com/claude-code)
    
    https://claude.ai/code/session_01KHDUfie1HZtvSiqFNTYs17
    
    ---
    _Generated by [Claude
    Code](https://claude.ai/code/session_01KHDUfie1HZtvSiqFNTYs17)_
    
    Co-authored-by: Claude <noreply@anthropic.com>
    jancurn and claude authored Jul 31, 2026
    Configuration menu
    Copy the full SHA
    88e5f9b View commit details
    Browse the repository at this point in the history
  4. Speed up the E2E suite's process spawning (#353)

    The E2E suite is process-spawn bound — around 1000 `mcpc` invocations
    plus ~40 helper servers — which is why the Windows jobs take ~20 min.
    These changes cut spawn cost and make two timing-sensitive tests robust,
    without changing how many tests run at once.
    
    - Start helper servers via node and tsx's CLI entrypoint instead of `npx
    tsx`, which re-resolved the package on every one of ~40 server startups
    (~0.5s each on Linux, more on Windows).
    - `run_xmcpc` reuses the caller's own invocation as one of its four
    `--json`/`--verbose` invariant variants instead of re-running it,
    cutting ~84 spawns with no loss of coverage.
    - Report per-test durations and a "Slowest tests" list. Results are
    printed only after all tests finish, so nothing in the log showed which
    tests were expensive.
    - Poll for process exit instead of a fixed `sleep` before asserting a
    bridge is dead (measured at 1300ms against a 1s sleep), and don't treat
    an unreadable Windows `tasklist` result as "exited".
    
    Parallelising the Windows jobs would take them from ~21 min to ~5.5 min,
    but it surfaced latent timing races — see the comment below for the
    data. That is deliberately left out of this PR.
    
    Refs #265
    
    https://claude.ai/code/session_01HUzrgoGWLirnc3zyeVZLz5
    
    ---------
    
    Co-authored-by: Claude <noreply@anthropic.com>
    jancurn and claude authored Jul 31, 2026
    Configuration menu
    Copy the full SHA
    a1bf7cb View commit details
    Browse the repository at this point in the history
  5. Accept MCP JSON-RPC method names as silent command aliases (#356)

    mcpc now silently accepts MCP's JSON-RPC-style method names (e.g.
    `tools/list`, `logging/setLevel`) as aliases for the hyphenated CLI
    command form (`tools-list`, `logging-set-level`), for users who reach
    for the raw protocol method name out of habit.
    
    - Normalizes the command token before Commander parses or "Unknown
    command" errors are raised
    - Undocumented on purpose — not shown in `--help` or "Did you mean?"
    suggestions
    - Unmatched slash-style tokens still fail as unknown commands
    
    https://claude.ai/code/session_01JSUxP3WUuz3zEgPZmu2hAZ
    
    Co-authored-by: Claude <noreply@anthropic.com>
    jancurn and claude authored Jul 31, 2026
    Configuration menu
    Copy the full SHA
    330856c View commit details
    Browse the repository at this point in the history
  6. Trim protocol version block in "mcpc help connect" (#358)

    The `Protocol version:` section of `mcpc help connect` listed all six
    pinnable versions, which was redundant — the same paragraph already
    gives the range, and passing an unsupported `--protocol-version` errors
    out with the full list. Drops the enumeration, 6 help lines down to 4.
    
    - Reworded the block to state the negotiated range instead of
    enumerating versions
    - Removed the now-unused `SUPPORTED_PROTOCOL_VERSIONS` import from
    `src/cli/index.ts`
    
    https://claude.ai/code/session_01ECtXbY3oxHD6qTCcrnroDT
    
    Co-authored-by: Claude <noreply@anthropic.com>
    jancurn and claude authored Jul 31, 2026
    Configuration menu
    Copy the full SHA
    1b1d5c5 View commit details
    Browse the repository at this point in the history
  7. Install mcpc with Homebrew via apify/homebrew-tap (#357)

    Lets macOS and Linux users install mcpc with `brew install
    apify/tap/mcpc` instead of setting up Node.js or Bun first. The formula
    lives in [apify/homebrew-tap](https://github.com/apify/homebrew-tap)
    next to `apify-cli` (added in apify/homebrew-tap#55).
    
    Its bump is started **manually for now** — the release workflow only
    prints the `gh workflow run` command in its run summary rather than
    dispatching it. That workflow points `Formula/mcpc.rb` at the new npm
    tarball, installs and `brew test`s it on Linux and macOS, then merges
    the bump.
    
    - README documents Homebrew as the first install option
    - Changelog entry, plus the manual bump command in the release section
    of `CLAUDE.md`
    - The release step is last and `continue-on-error`, so nothing
    Homebrew-related can fail a release that is already tagged, published to
    npm and announced
    - Skipping a bump only leaves Homebrew users on the previous version;
    npm and Bun installs are unaffected
    
    Merge apify/homebrew-tap#55 before the first bump, otherwise there is no
    formula to update.
    
    Fixes #355
    
    🤖 Generated with [Claude Code](https://claude.com/claude-code)
    
    https://claude.ai/code/session_01BcRjUSnuwKjKhQRgKQ1zzv
    
    ---------
    
    Co-authored-by: Claude <noreply@anthropic.com>
    jancurn and claude authored Jul 31, 2026
    Configuration menu
    Copy the full SHA
    ddc305a View commit details
    Browse the repository at this point in the history
Loading