Releases: 0rkz/byte-mcp-server
v0.10.6 — registerTool migration + Smithery quality bump
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
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
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.tscarried 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_URLandBYTE_INDEXER_URLboth defaulted tohttp://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 ishttps://feeds.payperbyte.io; both env-var names are honored. Local-dev override viaINDEXER_URL=http://localhost:8080still 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
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.1to^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 thoughnpm auditwas locally clean).@modelcontextprotocol/sdk@1.29.0is the current latest. server.jsondeclares HTTP transport — adds aremotesentry pointing athttps://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.jsonto 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
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/initializedand friends without a session id) → 202 ACK and drop, per JSON-RPC notification semantics. - Orphan JSON-RPC requests (
tools/listetc. 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
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
v0.10.0 — HTTP transport for Smithery hosted listing
v0.9.2
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
v0.9.0
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>