Skip to content

Releases: 0rkz/byte-mcp-server

v0.10.6 — registerTool migration + Smithery quality bump

27 May 20:16

Choose a tag to compare

Migrate all 14 tools from deprecated server.tool() to server.registerTool() with outputSchema (per-tool JSON return shape) and annotations (readOnlyHint, destructiveHint, idempotentHint, openWorldHint, title). Expected Smithery Quality 82→~98. No behavior change; pure metadata expansion.

v0.10.5 — listing refresh

27 May 18:28

Choose a tag to compare

Description-only patch. No source changes from v0.10.4. Aligns package.json + server.json with canonical BYTE Library framing. Triggers Glama re-eval + auto-refresh across discovery surfaces (Smithery, mcpservers.org).

v0.10.4 — Bugfix: stale DataStream + hosted-indexer default

25 May 04:27

Choose a tag to compare

0.10.4 — 2026-05-25

Bugfix: stale r2 DataStream address + hosted-indexer default. Two real bugs surfaced by a smoke test against the v0.10.3 npm install:

  • DataStream pointer was pre-r2. src/lib/config.ts carried the original v1 DataStream address (0x4b24...4c053) instead of the r2 redeploy (0x44729bB1...e06e95). Every write tool (byte_subscribe, byte_buy_data, byte_publish_data, byte_unsubscribe) in 0.10.3 was targeting the pre-r2 contract — so EIP-712 PayloadAttestation receipts were silently bypassed and writes hit the wrong settlement surface. 0.10.4 points at the r2 deploy. Anyone on 0.10.0–0.10.3 should upgrade before any write operation.
  • Indexer default was localhost. INDEXER_URL and BYTE_INDEXER_URL both defaulted to http://localhost:8080, so a fresh install with no env vars 404'd on every indexer-backed tool (byte_list_feeds, byte_search_publishers, byte_list_my_subscriptions, byte_subscription_health). New default is https://feeds.payperbyte.io; both env-var names are honored. Local-dev override via INDEXER_URL=http://localhost:8080 still works.

Also: tools/wallet.ts was hardcoding http://localhost:8080 as a function-parameter default instead of falling through to CONFIG.indexerUrl — fixed in the same pass. src/index.ts now imports the indexer URL from the central config rather than reading the env var twice.

v0.10.3 — Marketplace listing upgrades

25 May 00:10

Choose a tag to compare

0.10.3 — 2026-05-24

Marketplace listing upgrades. Targets the 7.3 → ~9 score jump on mcp-marketplace.io:

  • SDK pin tightened from ^1.12.1 to ^1.29.0 — clears the 3 high-severity CVEs flagged by the marketplace's scanner (which resolves the wide caret range to its worst version, even though npm audit was locally clean). @modelcontextprotocol/sdk@1.29.0 is the current latest.
  • server.json declares HTTP transport — adds a remotes entry pointing at https://mcp.payperbyte.io/mcp (the Smithery-backed hosted endpoint). Bumps the Marketplace's "Local Plugin" classification toward hybrid local + remote.
  • Description rewrites in server.json + manifest.json to BYTE Library framing (drops residual "slashable" / "publishers slashed" v0.6 carryover; matches the BYTE Library no-token, first-party-publisher pivot).

No code-path changes. Stdio and HTTP transports behave identically to 0.10.2.

v0.10.2 — Scanner-friendly session handling

24 May 23:37

Choose a tag to compare

0.10.2 — 2026-05-24

Scanner-friendly session handling. Smithery's hosted scanner (and other discovery clients) don't propagate the Mcp-Session-Id header on follow-up requests after initialize. 0.10.1's strict 400 fallback broke their tools discovery flow. 0.10.2 adds two graceful paths:

  • Orphan notifications (notifications/initialized and friends without a session id) → 202 ACK and drop, per JSON-RPC notification semantics.
  • Orphan JSON-RPC requests (tools/list etc. without a session id) → routed through a one-shot stateless transport so scanners get a real answer.

Verified end-to-end with Smithery's scan: 14 tools enumerated cleanly. Stateful clients (Claude Desktop, Cursor) that correctly propagate the session header are unaffected — they continue to share a long-lived per-session transport.

v0.10.1 — Fix Smithery hosted scan

24 May 23:02

Choose a tag to compare

0.10.1 — 2026-05-24

Fixes Smithery auto-scan. 0.10.0 shipped HTTP transport with a single shared McpServer instance — the SDK errored Already connected to a transport on every session after the first, breaking Smithery's discovery scan and any concurrent client. 0.10.1 wraps the server setup in a createMcpServer() factory and spawns a fresh instance per session (canonical multi-session pattern). Stdio mode unchanged.

v0.10.0 — HTTP transport

24 May 22:39

Choose a tag to compare

v0.10.0 — HTTP transport for Smithery hosted listing

v0.9.2

24 May 22:01

Choose a tag to compare

v0.9.2 — make CVE fix actually propagate; ship the new README to npm

Two regressions surfaced in the Marketplace re-scan post-0.9.1, both
shipped together:

1. The 0.9.1 audit fix didn't actually clear the CVEs for installers.
   `npm audit fix` pinned the patched transitive versions in
   `package-lock.json`, but the lockfile isn't in our published
   tarball (only `dist`, `README.md`, `LICENSE`, `smithery.yaml`
   ship), so anyone running `npx -y byte-mcp-server` got fresh
   resolution and the unfixed versions back. The Marketplace scanner
   correctly flagged the package as still vulnerable.

   Fix: moved the pins into package.json `overrides` field (npm 8.3+).
   Overrides DO ship to consumers — they're in package.json itself.
   Post-install `npm audit` now returns 0 vulnerabilities, not just
   for our local checkout.

   Pins: fast-uri ^3.1.2, hono ^4.12.22, ip-address ^10.2.0,
   qs ^6.15.2 (versions from the audit-fixed lockfile).

2. The 0.9.x npm tarballs were shipping the PRE-rewrite README. The
   2026-05-23 BYTE-Library rewrite (commit d9a1128) landed on GitHub
   main but never made it into a published tarball — so the
   Marketplace, which renders README from the npm tarball not from
   GitHub, kept showing "Byte Protocol MCP Server" + PQS + PPB +
   faucet stale framing.

   Fix: this republish ships the rewritten README + CHANGELOG.md.

Also adds an explicit testnet warning callout to the README lead —
addresses the Marketplace's "no explicit Arbitrum Sepolia testnet
warning" Info finding. No code change.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

v0.9.1

24 May 22:01

Choose a tag to compare

v0.9.1 — security: bump transitive deps to clear @modelcontextprotoco…

v0.9.0

24 May 22:01

Choose a tag to compare

v0.9.0 — EIP-712 PayloadAttestation prep for DataStreamLib r2

byte_publish_data now signs the payload as an EIP-712
PayloadAttestation, ready for the upcoming DataStreamLib r2 contract
revision (domain "BYTE Library" / version "1" / Arb Sepolia chainId
421614). Signs with the configured PRIVATE_KEY, packs the (deadline,
signature) Attestation struct, calls the new 5-arg streamData. Adds
a placeholder safety check that refuses to sign if the DataStream
contract address is unset or zero, modeled after the 2026-05-23
PAY_TO unit-vs-code mismatch (silent-failure defense).

Also fixes a pre-existing inline event-ABI drift in fact.ts (the
BroadcastStreamed shape was lagging since v0.5; aligned to the r2
shape so byte_query_fact decodes correctly post-deploy).

Cross-validation: test/r2-publish-smoke.mjs round-trips signer →
recover (signature is 65 bytes, recovers to the publisher), and
demonstrates tampered-payload and chainId-replay both produce a
different recovered address — domain binding works.

WINDOW WARNING: during the r2 migration, byte_publish_data will
revert against the current v1 DataStreamLib (the new 5-arg
signature isn't accepted until r2 is deployed). Read-only tools
plus byte_subscribe, byte_query_fact, and byte_buy_data are
unaffected.

Bumps server.json + manifest.json to match package.json so the MCP
Registry resubmit picks up the new release. (The 0.8.0 release was
published to npm but never resubmitted to the Registry — the
Marketplace listing still shows 0.7.3.)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>