npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@walkcroach/sdk-mcp

v0.2.1

Published

MCP server (2026-07-28) exposing the WalkCroach agentic memory layer to any compliant host

Readme

@walkcroach/sdk-mcp

An MCP server exposing the WalkCroach agentic memory layer to any compliant host — Claude Code, Cursor, VS Code, or your own.

Implements the 2026-07-28 revision of the Model Context Protocol, and still speaks 2025-11-25.

Quick start

npm install -g @walkcroach/sdk-mcp
export WALKCROACH_API_KEY=wc_live_…
walkcroach-mcp serve

Then point a host at it:

claude mcp add --transport http walkcroach http://127.0.0.1:7801/mcp

Ask Claude Code "what did we decide about the ORM?" and it recalls a decision written by the web builder or the Chrome extension — cross-surface memory, in a host we did not build.

Tools

| Tool | Scope | What it does | |---|---|---| | recall_project_memory | memory:read | Semantic search across every surface's memory | | remember | memory:write | Record a decision, preference, or convention | | list_memory | memory:read | Recent entries, reverse chronological | | memory_timeline | memory:read | What changed between two instants (AS OF SYSTEM TIME) |

recall_project_memory and remember keep the names the internal agent harness uses, so a prompt written against the first-party surfaces ports here without rewording. Every tool declares an outputSchema, so hosts get structuredContent rather than parsing prose.

Scope of this package

Memory only. @walkcroach/sdk-mcp does not expose content.publish, runs, or erase/export/import. Those stay on @walkcroach/sdk (HTTP). If a host needs publish, call the SDK from your own tool — do not stretch MCP into the content pipeline.

Protocol conformance

The 2026-07-28 revision is the largest break since authorization was added. What this server implements:

  • server/discover — mandatory in this revision; advertises identity, versions, capabilities.
  • No initialize handshake. Protocol version and client capabilities travel in _meta on every request. An unknown version returns UnsupportedProtocolVersionError (-32022, renumbered this revision).
  • No sessions, no Mcp-Session-Id. Cross-call state is server-minted handles passed as ordinary tool arguments.
  • resultType on every result.
  • ttlMs + cacheScope on list results — always private, never public: these responses are tenant-shaped and a shared intermediary caching one tenant's for another would be a data leak.
  • Deterministic tools/list order, so host-side caching and provider prompt caching both hit.
  • OpenTelemetry traceparent propagated from _meta into results.
  • No Roots, Sampling, or Logging — all three are deprecated as of this revision.

Why 2025-11-25 support is load-bearing

As of 2026-08-04 the official @modelcontextprotocol/[email protected] — published 2026-07-27, one day before the spec froze — still declares LATEST_PROTOCOL_VERSION = '2025-11-25' and ships no server/discover. Hosts built on it speak the older revision. A server that answered only 2026-07-28 would be spec-correct and unable to connect to anything.

So initialize, ping, resources/list, and prompts/list are all answered, and a request with no _meta version is treated as 2025-11-25 rather than rejected.

Statelessness is a fit, not a compromise

The removal of protocol-level sessions matches how the WalkCroach backend already works: API Gateway plus streamifyResponse holds no cross-call state, and sandbox tools already resume through server-minted handles. Adopting this revision meant deleting workarounds, not adding them.

Transport

Streamable HTTP, POST only. 2026-07-28 removed the GET/SSE endpoint, SSE resumability, and message redelivery — a broken stream loses the in-flight request and the client re-issues it — so there is nothing to resume and the transport is a plain request/response cycle.

Binds to loopback by default. The process holds a wc_live_ key in memory; binding to 0.0.0.0 would expose an unauthenticated proxy to that key on the local network.

stdio is not supported, deliberately. That posture is documented separately in the repo's stdio MCP security review and is not reopened here.

Programmatic use

import { createDispatcher, createMcpHttpServer } from '@walkcroach/sdk-mcp';
import { WalkCroach } from '@walkcroach/sdk';

// Transport-agnostic: hand it a JSON-RPC request, get a response.
const dispatch = createDispatcher(new WalkCroach({ apiKey }));
const res = await dispatch({ jsonrpc: '2.0', id: 1, method: 'tools/list' });

// Or run the HTTP transport yourself.
const server = createMcpHttpServer({ apiKey, port: 7801 });

The dispatcher retains nothing between calls, so one instance serves concurrent clients safely.

Host configs

Claude Code (HTTP)

export WALKCROACH_API_KEY=wc_live_…
export WALKCROACH_BASE_URL=https://api.walkcroach.rinegansolutions.com
npx -y @walkcroach/sdk-mcp serve --port 7801

claude mcp add --transport http walkcroach http://127.0.0.1:7801/mcp

Cursor / VS Code

Run the same serve process, then in MCP settings:

{
  "mcpServers": {
    "walkcroach": {
      "url": "http://127.0.0.1:7801/mcp"
    }
  }
}

Do not configure a stdio command/args entry for this package — stdio is not implemented.

Scopes

A key minted with only memory:read cannot call remember; the refusal names the missing scope. Mint keys with the least scope the integration needs.

Licence

MIT.