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

@connordb/mcp-server

v1.8.5

Published

MCP (Model Context Protocol) server for ConnorDB — gives LLM agents (Claude Desktop, Cursor, Claude Code, any MCP client) one-click access to a ConnorDB engine: hybrid search, document retrieval, audit log, time-travel reads.

Downloads

742

Readme

@connordb/mcp-server

MCP server for ConnorDB — the system of record for agent memory.

Gives any MCP client (Claude Desktop, Cursor, Claude Code, any agent that speaks MCP) direct access to a running ConnorDB engine: hybrid search, document retrieval, time-travel reads, audit log tail. No glue code; no REST plumbing required.

Why it matters

A LangChain / LlamaIndex retriever lives inside the calling process. An MCP server lives outside the agent and is automatically discovered by the LLM client. The same connector that gives Claude Code a ConnorDB tool gives Cursor and Claude Desktop the same tool — one registration, every MCP-capable client.

If an agent team's shared memory lives in ConnorDB, install this once and every agent that points its MCP client at it gets the same hybrid-search + audit + time-travel primitives that the production engine exposes.

Quickstart — Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "connordb": {
      "command": "npx",
      "args": ["-y", "@connordb/mcp-server"],
      "env": {
        "CONNORDB_TARGET": "localhost:50051",
        "CONNORDB_API_KEY": "your-key-here"
      }
    }
  }
}

Restart Claude Desktop. The tool palette now shows search_hybrid, get_document, insert_document, wait_for_embed, list_collections, get_document_asof, audit_recent.

Quickstart — Cursor

Cursor settings → MCP → Add new MCP server with the same JSON.

Quickstart — Claude Code

Claude Code reads ~/.claude.json (or .claude/settings.json in a project). Add:

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

For an existing engine, keep args as ["-y", "@connordb/mcp-server"] and set CONNORDB_TARGET / CONNORDB_API_KEY in env.

Tools surface

| Tool | What it does | Use when | |------|--------------|----------| | search_hybrid | RRF over BM25 + dense + sparse in one call. The default retrieval primitive. | Default for any "find X in memory" question. | | get_document | O(1) hash lookup by id. Returns full row + payload. | Agent has an id and wants the row. | | insert_document | Atomic insert/upsert of row + payload + caller-supplied vector. Text and embedding projections can advance asynchronously; use the watermarks below when freshness matters. | Agent is adding new knowledge to the engine. | | wait_for_embed | Block until the embed worker catches up to an LSN. | After an insert_document without embedding, before a vector or hybrid search that should include the new doc. | | list_collections | Enumerate typed collections + schemas + counts. | Agent needs to know what shape of data is available. | | get_document_asof | Time-travel read at a given LSN. | "What did this doc look like before the change?" | | audit_recent | Tail of the SHA-256-chained audit log. | Compliance / debugging / "did the agent do X?" | | cluster_topology | ADR 0016 Phase 7 — whole-cluster snapshot: epoch, leader, per-member view (id, addr, in_sync, last_ack_lsn). Requires cluster_target = the cluster-internal host:port (--cluster-port). | Agent needs to know which node is the current leader, which followers are caught up, or whether a quorum exists at all. | | record_tool_call | ADR 0017 Phase A — tamper-evident record of an external tool invocation. The engine does not execute tools; this persists the agent's declaration so traceback can walk it later. Returns the LSN of the ToolCall causal frame. | Agent just called an external tool (web search, code interpreter, etc.) and wants the call durably linked to the memory it produced. | | record_decision | ADR 0017 Phase A — agent decision with verified citations. Unknown, future, or cross-tenant citations are rejected with the engine's uniform not-found semantics; the cited set is hash-bound into the per-tenant SHA-256 audit chain. | Agent has reached a conclusion and wants to record it with the evidence (cited LSNs) it relied on. | | traceback | ADR 0017 Phase A — walk the citation graph rooted at root_lsn breadth-first. Returns nodes (every reachable Read / ToolCall / Decision) plus directed edges (cites + result_of). | Operator or another agent asks "why did the swarm decide X at LSN L"; one RPC returns the full reasoning subgraph. | | endorse_row | ADR 0018 Phase A — durably endorse another agent's row. Idempotent on (target_lsn, caller_agent_id); self-endorse rejected; cross-tenant target rejected. | A second agent observes the same fact and wants to mark it team-validated instead of writing a near-duplicate row. | | dispute_row | ADR 0018 Phase A — durably dispute another agent's row with a free-form reason. Sticky: the row is NEVER overwritten, both claim and dispute coexist. Reason capped at 1024 bytes. | An agent disagrees with another agent's memory and wants the contention itself to be a first-class team signal. | | list_disputes | ADR 0018 Phase C — paginated open-dispute listing. Admin/operator keys see all tenant disputes; agent keys see participant disputes. | An agent needs the current contradiction queue before resolving or escalating. | | resolve_dispute | ADR 0018 Phase C — admin/operator-only resolution of an open dispute. Records target_lsn -> keep_lsn durably and leaves both rows intact. | An operator agent has selected the row LSN the tenant memory should keep as authoritative. | | set_storage_mode | OPERATOR-STYLE — ADR 0019 Phase B: switch the tenant between rowstore (default) and dual. dual mirrors every write into a continuous-field projection. | A tenant is opting into the continuous-field projection (one-time per tenant). | | field_insert | ADR 0019 §4 — atomic mirrored insert into rowstore + field. Returns {row_lsn, field_lsn}. payload_b64 carries the opaque blob whose digest drives the deformation. | Agent is writing into a dual-mode tenant and wants both projections to advance. | | field_sample | ADR 0020 §4 — sample k coords from a latent-space region (anchor / anchor_lsn / tile / union / intersection / difference). Returns samples + ADR 0021 §6 aggregate quality. | Agent needs to explore the latent space around a known coord, an LSN, or a named tile. | | field_seal | OPERATOR-STYLE — ADR 0019 §4: freeze the tenant's current field epoch into an immutable seal. | An operator is closing a chapter of the field projection (e.g. snapshot before a basis evolve). | | field_evolve_basis | OPERATOR-STYLE — ADR 0019 §4: explicit audited basis relearn. | An operator decides the active basis no longer fits the data and triggers a fresh relearn. |

Total: 58 tools.

Resources surface

Documents are addressable via the URI scheme connordb://documents/{id}. Clients can pin a document as context via the @-mention flow without an explicit get_document call.

Environment variables

| Var | Required | Default | What it does | |-----|----------|---------|--------------| | CONNORDB_TARGET | yes unless ephemeral | — | gRPC target of the ConnorDB engine (host:port, e.g. localhost:50051). | | CONNORDB_API_KEY | only when auth is on | unset | API key sent as X-API-Key. | | CONNORDB_EPHEMERAL | no | false | true starts a temporary loopback engine before serving MCP. Equivalent to --ephemeral. | | CONNORDB_EPHEMERAL_MODE | no | auto | auto, binary, or docker. Auto tries connordb-server, then Docker. | | CONNORDB_ENGINE_BIN | no | connordb-server | Binary path used by ephemeral binary mode. | | CONNORDB_EPHEMERAL_PORT | no | random | Loopback port for the temporary engine. | | CONNORDB_EPHEMERAL_DATA_DIR | no | temp dir | Data directory for ephemeral binary mode; omitted temp dirs are removed on exit. | | CONNORDB_EPHEMERAL_DOCKER_IMAGE | no | connordb/engine:1.5.0 | Docker image used by ephemeral Docker mode. |

Running standalone (debug)

npm install -g @connordb/mcp-server

CONNORDB_TARGET=localhost:50051 \
CONNORDB_API_KEY=... \
connordb-mcp

Temporary local engine:

connordb-mcp --ephemeral

The server speaks JSON-RPC over stdio. To inspect what tools are advertised, pipe a tools/list request:

echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' \
    | CONNORDB_TARGET=localhost:50051 connordb-mcp

License

See LICENSE.md at the repo root. Same proprietary license as the engine; the MCP server is shipped for adopters to connect their existing ConnorDB engine to LLM clients.

Related

  • @connordb/client — the underlying TypeScript SDK.
  • examples/agent-patterns — end-to-end agent memory patterns (insert, hybrid search, realtime, LLM cache, time-travel).