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

@mnemehq/mcp-server

v0.1.1

Published

Model Context Protocol server for mneme — exposes the user-sovereign memory layer as MCP tools for Claude Code, Claude.ai, Cursor, and any MCP host.

Readme

@mnemehq/mcp-server

Model Context Protocol server for mneme — exposes the user-sovereign memory layer as MCP tools so any MCP host (Claude Code, Claude.ai, Cursor, future Anthropic agents) can remember, recall, forget, and supersede memory on the user's behalf.

Status: v0.1.0 — first npm release. Wraps @mnemehq/sdk v0.1.0. Runs as a stdio MCP server.

Install in Claude Code

The fastest path — one command, no clone, no install:

claude mcp add mneme -- npx -y @mnemehq/mcp-server

That registers the server, fetches the published tarball on first run, and starts speaking JSON-RPC over stdio. The -y keeps npx from prompting.

Or add the equivalent stanza to ~/.claude.json directly:

{
  "mcpServers": {
    "mneme": {
      "command": "npx",
      "args": ["-y", "@mnemehq/mcp-server"]
    }
  }
}

For encryption at rest, pass a passphrase via env:

{
  "mcpServers": {
    "mneme": {
      "command": "npx",
      "args": ["-y", "@mnemehq/mcp-server"],
      "env": {
        "MNEME_PASSPHRASE": "correct horse battery staple"
      }
    }
  }
}

Requires Bun >= 1.3 on the PATH (the server uses bun:sqlite). Bun is also what npx runs the shebanged entry under.

Local development / contributor mode

To run from a checkout instead of npm:

git clone https://github.com/ppserapiao/mneme
cd mneme
bun install

claude mcp add mneme bun -- run apps/mcp-server/src/index.ts

The first time the server runs with a passphrase against a fresh store, it prints the 24-word recovery phrase to stderr exactly once. Save it — losing both the passphrase and the recovery phrase loses the store permanently.

Environment variables

| Var | Default | Notes | | -------------------- | --------------------------------------------- | ----- | | MNEME_STORE_PATH | platform-appropriate (Mneme/memory.sqlite) | SQLite file path | | MNEME_OWNER_ID | local | Logical owner id used for every verb | | MNEME_PASSPHRASE | unset (plaintext) | When set, enables AES-256-GCM encryption at rest |

Tools exposed

| Tool | What it does | | -------------------- | ---------------------------------------------------------------------------------- | | mneme_remember | Persist a new memory (kind, body, optional sourceApp, tags, confidence) | | mneme_recall | Natural-language search; returns ranked records with scores | | mneme_get | Fetch a single record by ULID | | mneme_forget | Mark a record forgotten (soft by default; hard: true schedules hard delete) | | mneme_supersede | Atomically replace a record with a new one; old is linked via supersededBy | | mneme_export | Stream every record for the current owner (including superseded / expired) |

Every handler returns its result as a single JSON-stringified text content block. Errors come back with isError: true and a { error: { code, message } } body so the model and the user both see a clear failure.

Security notes

  • The server is stdio-only. There is no inbound network listener.
  • In encrypted mode the SQLite file contains zero plaintext bodies. The MCP transport (JSON-RPC over stdio) sees plaintext only for the duration of a request/response.
  • Stdout is reserved for JSON-RPC. Anything informational (recovery phrase, startup banner, errors) is written to stderr.
  • A single passphrase per server process; per-app or per-owner key separation is a future feature.

Roadmap

  • Embedder configuration via env (defer until Bun + onnxruntime cleanup crash is resolved, ADR 0004 §4)
  • HTTP transport in addition to stdio (for browser MCP hosts)
  • Per-tool annotations exposing read-only / destructive hints to the host

License

Apache-2.0.