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

@kividbio/mcp-server

v0.2.0

Published

Model Context Protocol server for KiviDB Cloud: run, query and share context across databases from any MCP client.

Readme

KiviDB Cloud MCP server

Lets Claude, ChatGPT, Gemini and any other MCP client run KiviDB Cloud databases, query them, and share context with each other through one.

Everything it does, it does as an API key. The key belongs to one organization and carries a role, so the key is the limit: what it can see, and what it may change, is decided by the server rather than by this package. When a call is refused, the refusal is passed through word for word, because the server's message says what to do next and a paraphrase would lose that.

Install

Nothing to install. The clients below start it on demand.

Claude Desktop, Claude Code, Cursor, VS Code

{
  "mcpServers": {
    "kividb": {
      "command": "npx",
      "args": ["-y", "@kividbio/mcp-server"],
      "env": { "KIVIDB_API_KEY": "kvdb_live_..." }
    }
  }
}

Gemini CLI

Same shape, in ~/.gemini/settings.json:

{
  "mcpServers": {
    "kividb": {
      "command": "npx",
      "args": ["-y", "@kividbio/mcp-server"],
      "env": { "KIVIDB_API_KEY": "kvdb_live_..." }
    }
  }
}

ChatGPT, and anything else that wants a URL

ChatGPT connectors take a URL rather than a subprocess, so run the server in HTTP mode:

KIVIDB_API_KEY=kvdb_live_... npx -y @kividbio/mcp-server --http --port 8787

Add it as a connector pointing at https://your-host/. Each request may carry its own key as Authorization: Bearer <key>, so one deployment can serve several people without any of them sharing a key; the key in the environment is the fallback when a request sends none.

Put it behind TLS. The key is a bearer credential and travels in a header.

What it can do

Databases — list_databases, get_database, create_database, resize_database, scale_replicas, upgrade_to_pro, delete_database.

create_database takes free_tier for a database that costs nothing. Anything paid bills the organization that owns the key, so the tool descriptions tell the model to confirm with you first. delete_database requires the database's exact current name and checks it against the server before deleting, because a model that has confused two ids would otherwise delete the wrong one and report success.

Shared context — remember, recall, forget.

This is the part that makes three assistants one conversation. A note written by ChatGPT is readable by Claude and by Gemini, as long as they point at the same database and namespace:

ChatGPT: remember that we moved the allowlist into Terraform Claude, later: recall allowlist → [mul8o6rx] by chatgpt (staging, deploy) The staging allowlist reverts on every deploy...

Notes carry an author and optional tags, and recall filters on both. The default namespace is shared; use different namespaces to keep projects apart.

Vectors — vector_search, list_vector_sets.

KiviDB does not build embeddings. The vectors have to be in the database already, added with VADD; these tools search what is there.

Note: vector and full-text commands are currently denied to the application user by the managed ACL, so vector_search returns NOPERM on instances provisioned with it. remember and recall deliberately avoid those command families and work everywhere.

Anything else — run_command runs a single KiviDB command: SET, GET, FT.SEARCH, VADD, VSIM and the rest. Administrative commands are refused by the server, not by this package.

Backups — create_backup, list_backups.

Environment

| Variable | Meaning | | --- | --- | | KIVIDB_API_KEY | Required for stdio. The default for HTTP when a request sends no bearer token. | | KIVIDB_API_ENDPOINT | Defaults to https://api.kividb.io. | | PORT | HTTP mode only. Defaults to 8787. |

A note on trust

An MCP server runs with your key and acts on your databases. This one never widens what the key may do, and it never hides a refusal. The two places it adds a check of its own are both about a model making a mistake rather than the server making one: deleting requires the name to match, and namespaces and note ids are restricted to characters that cannot reshape a key.