Skip to content

Tags: 4mica-Network/mcpc

Tags

v0.6.0

Toggle v0.6.0's commit message
Release v0.6.0

v0.6.0-beta.6

Toggle v0.6.0-beta.6's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Install mcpc with Homebrew via apify/homebrew-tap (apify#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 apify#355

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_01BcRjUSnuwKjKhQRgKQ1zzv

---------

Co-authored-by: Claude <noreply@anthropic.com>

v0.6.0-beta.5

Toggle v0.6.0-beta.5's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Add `server-discover` command for MCP 2026-07-28 connections (apify#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 apify#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>

v0.6.0-beta.4

Toggle v0.6.0-beta.4's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Fix flaky sessions/logs E2E test racing the bridge on sessions.json (a…

…pify#351)

The Windows/Bun leg of the last release run failed on `sessions/logs`
test 10 with `Session not found: @fold-...`. Suites that inject
synthetic session entries did an unlocked `jq ... > tmp && mv` on
`sessions.json` while a live bridge rewrote the same file on every
keepalive ping — when the bridge loaded the file before the `mv` and
saved after it, the injected entry vanished. Test-only flake, no product
bug.

- Add an `edit_sessions_json` framework helper that takes the same
`proper-lockfile` lock mcpc uses (the `<file>.lock` directory, created
with `mkdir`)
- Break the lock once after 10s, matching proper-lockfile's staleness
rule, so a SIGKILLed bridge's leaked lock can't hang a suite
- Route the five unlocked fixture edits through it: three in
`sessions/logs`, one each in `unauthorized-auto-detect` and
`unauthorized-persist`

Verified against a keepalive-style concurrent writer: the old pattern
lost 2 of 60 injected entries, the helper lost 0 of 60. Full `sessions/`
suite (18 tests) passes.

Refs https://github.com/apify/mcpc/actions/runs/30614984280

https://claude.ai/code/session_01LV8fLqLtF7s3VMqiL73qfv

Co-authored-by: Claude <noreply@anthropic.com>

v0.6.0-beta.3

Toggle v0.6.0-beta.3's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Clarify the MCP version label and the --json help on session details (a…

…pify#340)

Two wording fixes on the session details screens. `MCP version:` looked
like it also titled the transport after the slash, and the `JSON output
(--json):` block under `mcpc @session --help` read as if it applied to
all the subcommands listed above it.

- `MCP version: 2025-11-25 / Streamable HTTP (stateful)` → `MCP: version
2025-11-25 / Streamable HTTP (stateful)`
- session details `--json` help is now one inline sentence with the
shape, dropping the extra `_mcpc` field breakdown
- `connect`, `restart` and `mcpc @session` now share one wording and one
shape example (`connect` wraps it in an array, which is what it returns)

Refs apify#336

https://claude.ai/code/session_01BdeG5Pz7tSKWbTd7uG6Dx4

---------

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>

v0.5.1

Toggle v0.5.1's commit message
Release v0.5.1

v0.6.0-beta.2

Toggle v0.6.0-beta.2's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Fix conformance tools_call scenario after the --task gate change (api…

…fy#331)

apify#329 made `tools-call --task` fail with a server error when the server
doesn't advertise `tasks.requests.tools.call`, instead of warning and
falling back to a synchronous call. The conformance adapter still ran
that command expecting exit 0, so the `conformance / tools_call` job
failed and gated the release
([run](https://github.com/apify/mcpc/actions/runs/30302773413/job/90099506437))
— the scenario's own server-side checks passed 2/2, only the adapter's
exit code failed it.

Test-harness only, no behaviour change.

- `runMcpc()` takes an `expectExitCode` option (default `0`)
- The `tools_call` scenario now asserts the `--task` call exits with
code 2, so the gate stays guarded instead of being swallowed
- Refreshed the stale comment that still described the old fallback

Refs apify#329

https://claude.ai/code/session_01AxYXW15gWXNWFPpSGqQTLV

Co-authored-by: Claude <noreply@anthropic.com>

v0.6.0-beta.1

Toggle v0.6.0-beta.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Persist server capabilities and instructions for session resumption (a…

…pify#328)

Resuming a stateful HTTP session reuses the server-side session and so
skips the `initialize` handshake, leaving the SDK client with no
capabilities and no instructions. After a crash-recovery restart the
session showed no capabilities, `grep` no longer found the server
instructions, and `resources-subscribe` wrongly refused with "server
does not support resource subscriptions".

- Persist capabilities and instructions in `sessions.json` at the
connect that performs the handshake, and restore them for the lifetime
of a resumed bridge
- Route every bridge-side read through one helper, so the subscribe
pre-check, the tools-cache warmup and the `--proxy` server all see the
restored values
- Skip instructions larger than 32 KB, and keep them out of the `mcpc
--json` session list (they can be kilobytes per session)
- Extend the resume e2e test with capabilities, instructions and a
`resources-subscribe` round trip (verified to fail without the fix)

Fixes apify#325. Refs apify#324.

https://claude.ai/code/session_01YRqAADGF3hWDQ83t4FvtHJ

---------

Co-authored-by: Claude <noreply@anthropic.com>

v0.6.0-beta.0

Toggle v0.6.0-beta.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Add --mcp-version flag to pin MCP protocol version (apify#320)

Adds `--mcp-version <version>` to `mcpc connect` (and an `mcpVersion`
field in mcp.json entries) to pin the MCP protocol version instead of
auto-negotiating. The pin is strict: the connection fails with an
actionable error unless the server agrees to exactly the requested
version.

- Modern pin (2026-07-28) maps to the SDK's `{ pin }` mode; legacy pins
run the plain `initialize` handshake offering only the pinned version
- Pin persists in sessions.json (survives `restart`) and shows as
`(pinned)` in `mcpc @session`
- Supported versions live in a dependency-free `src/core/protocol.ts`
(CLI startup never loads the SDK); a unit test guards drift against the
SDK's list
- New e2e suite runs in both eras of the protocol matrix;
docs/help/skill updated

Refs apify#314

https://claude.ai/code/session_01DCJziR1mQfJk9XynQCwsFx

Co-authored-by: Claude <noreply@anthropic.com>

v0.5.0

Toggle v0.5.0's commit message
Release v0.5.0