Context7
Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.
Description from the maker (original English)
Local-first memory for AI agents. MCP locally, HTTP from the web. Agents propose; you confirm.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
HIVE_MODE, HIVE_DB, HIVE_AGENT_ID, HIVE_AGENT_TOKEN, HIVE_MCP_URLValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"apiary-memory": {
"command": "uvx",
"args": [
"apiary-memory"
],
"env": {
"HIVE_MODE": "your-value",
"HIVE_DB": "your-value",
"HIVE_AGENT_ID": "your-value",
"HIVE_AGENT_TOKEN": "your-value",
"HIVE_MCP_URL": "your-value"
}
}
}
}Run this in your terminal
claude mcp add apiary-memory --env HIVE_MODE=your-value --env HIVE_DB=your-value --env HIVE_AGENT_ID=your-value --env HIVE_AGENT_TOKEN=your-value --env HIVE_MCP_URL=your-value -- uvx apiary-memoryFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"apiary-memory": {
"command": "uvx",
"args": [
"apiary-memory"
],
"env": {
"HIVE_MODE": "your-value",
"HIVE_DB": "your-value",
"HIVE_AGENT_ID": "your-value",
"HIVE_AGENT_TOKEN": "your-value",
"HIVE_MCP_URL": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"apiary-memory": {
"type": "stdio",
"command": "uvx",
"args": [
"apiary-memory"
],
"env": {
"HIVE_MODE": "your-value",
"HIVE_DB": "your-value",
"HIVE_AGENT_ID": "your-value",
"HIVE_AGENT_TOKEN": "your-value",
"HIVE_MCP_URL": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
HIVE_MODE envHIVE_DB envHIVE_AGENT_ID envHIVE_MCP_URL envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account 330899935, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: HIVE_AGENT_TOKEN
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.2.2) reached the registry 5 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) on your computer.
In the same category: Context7, Codebase Memory, Exa
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Connect AI agents to Exa for web search, content fetching, and multi-step research.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
| What it is | Local-first personal memory for AI agents, over MCP. Agents can search what you have confirmed and *propose* what to keep — only you can confirm it. Everything lives in one SQLite file on your own disk. |
| What it is not | Not a hosted service. No account, no cloud, no telemetry, no daemon. The server runs on *your* machine (127.0.0.1), not ours. |
| Platforms | Desktop app: macOS 10.15+. Companion app: iOS 17.0+. Pip package: any OS with Python 3.8+. There is no Windows desktop app. |
| Install | pip install apiary-memory · or double-click apiary-memory-0.2.1.mcpb |
| Version | 0.2.1 on PyPI · desktop app 1.4.8 |
| Command | What it is | What happens when you run it |
|---|---|---|
apiary-memory | The MCP server (stdio) | Meant to be spawned *by* your MCP client. Run it in a terminal and it just waits on stdin — that is correct behaviour, not a hang. |
apiary-memory-cli | The human CLI | list pending candidates · approve commit one · search · stats show where the DB lives |
python -m hive_mcp does not work — this package has no __main__.py.
The pip package has no GUI and never pops a dialog. When an agent calls propose, the entry goes into a local candidate queue and stays there. Nothing enters the hive until a human runs apiary-memory-cli list and then approve . If you want a window, use the macOS or iOS app.
| Name | Status |
|---|---|
hive-memory | Does not exist on PyPI (404). Any document citing it is wrong — including AI answers about us. |
memory-hive-mcp | Our own former name. Still installs, but caps at 0.1.9. Use pip install apiary-memory for the current release. |
hive-mcp | Someone else's Claude Code plugin. |
| hive.com | Team collaboration software. |
| theapiary.sh | "the apiary" — shared memory for AI coding agents; its memory component is called honeycomb. |
| apiarybee.com | "Apiary" — a self-organizing agent framework. |
| 记忆蜂巢 (Chengdu Zhixin Hualao) | An unrelated iOS group-chat app. Same four characters, nothing else in common. |
Also known as: Apiary Memory · 记忆蜂巢 · Memory Hive · 蜂巢 ·
apiary-memoryon PyPI ·io.github.330899935/apiary-memoryon the MCP Registry (from v0.2.0).
Your agents can search what you have confirmed and propose what they think you should keep; only you can confirm it. Everything lives in one file on your own disk, and nothing is sent anywhere.
It runs on its own. A working SQLite memory store ships inside this package — no account, no cloud, no daemon, no dependencies.
pip install apiary-memory
Desktop app, no terminal: download apiary-memory-0.2.1.mcpb and double-click it.
Measured on 2026-10-27, on one MacBook with the Hive running locally — script and raw output in bench/:
| Measure | Result |
|---|---|
| Search latency | p95 111 ms, p50 76 ms (warm, includes HTTP) |
| Retrieval | correct entry in top-5 for 97.5% of 40 trials |
| Corpus | 1,303 entries · 2.39 M chars · 45 days, plaintext only |
*Retrieval used each entry's own title as the query — an easy set. It shows the index is complete and ranks correctly on exact terms, not how well it answers a question asked in your own words. Run bench/bench_search.py on your own Hive.*
A complete, if modest, memory server. On a machine with nothing else installed:
| Call | What happens |
|---|---|
initialize | answered locally, protocol 2024-11-05 |
tools/list | answered locally, six tools |
propose | writes to a real database on your disk |
recall | searches that database and returns ranked entries |
get_context | a digest of what you confirmed most recently |
manage | read one entry, list what is pending, forget, restore |
say / board | a shared message board for coordinating several agents |
Storage is SQLite at ~/.memory-hive/hive.db by default. Search is lexical — character bigrams for Chinese, words for Latin script — so it ranks well when the words overlap and finds nothing when they do not. There are no embeddings and no vector index. Every response says "mode": "local" so you can always tell which engine answered.
Without the app, the database is plain SQLite: it is not encrypted. That is stated here rather than discovered later — see Honest limits.
Apiary Memory for macOS is the same design with the expensive parts built: eight vaults with four of them locked behind a PIN (Argon2id-wrapped key, AES-256 at rest), a daily evolution log, multi-agent identity management, and a UI for reading and confirming. It also answers MCP itself, with richer ranking.
If the app is running, this package uses it and leaves the local file alone. If it is not, the local store answers. You do not have to choose up front:
HIVE_MODE | Behaviour |
|---|---|
auto (default) | Ask the app. Use the local store only if the app is unreachable. |
local | Never touch the network. Always use the local store. |
remote | Only the app. A connection failure is an error, not a reroute. |
One rule holds in every mode: if the app is running and answers with an error, that error is returned unchanged. Falling back on a refusal would write your memory into a second database while your client believed it had reached the app. Silent data forking is worse than an error message, so a reply from the app is final. The fallback fires on a connection failure, and on nothing else.
The numbers below come from the macOS app's local HTTP service on one MacBook — not from this package's SQLite store, which is a different engine over a different dataset. Mixing the two would be the usual benchmark trick, so they are kept apart.
| Store size (four plaintext vaults) | 1,356 entries, 2.52M chars, 47 distinct days |
| Retrieval hit rate | Top-5 92.5%, Top-20 95.0% (n=40) |
| Latency (local HTTP, incl. round trip) | p50 90 ms, p95 127 ms |
Measured 2026-10-29 against the live service. The hit-rate queries were each entry's own title — the easy case. It shows the index is complete; it does not show that free-form questions land. A separate pilot using plainly-phrased questions found the right entry in the top 5 only twice out of roughly a dozen, which is the biggest known weakness of this version.
The four encrypted vaults are excluded from the count because they are unreadable by design. A load test at 1,000,000 synthetic entries gave 0.6 s warm search, 5.3 GB RSS and a 1.0 GB index — see bench/ for the script and raw output.
pip install apiary-memory # the server: apiary-memory (was memory-hive-mcp)
Python 3.8 or newer. There is nothing else to install — the package uses only the standard library, and sqlite3 is part of it.
From a checkout:
git clone https://github.com/330899935/apiary-memory
cd apiary-memory PYTHONPATH=src python -m hive_mcp.stdio
Any MCP host that can run a stdio command will work. The minimum is the command; everything else is optional.
Claude Desktop — ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": { "apiary-memory": { "command": "apiary-memory", "env": { "HIVE_MODE": "local" } } } }
Cursor — ~/.cursor/mcp.json, same mcpServers shape.
Any host that only speaks HTTP — start the app and point it at http://127.0.0.1:8768/mcp with the headers X-Hive-Agent and X-Hive-Token. This package is the stdio path; the HTTP endpoint belongs to the app.
There are two doors onto the same memory. Which one you use depends on where your AI runs, not on what it can do.
| Local (MCP) | Web (HTTP) | |
|---|---|---|
| Built for | AIs installed on your Mac | AIs running on someone else's servers |
| How you connect | a stdio command in a config file | paste one address |
| Network | none — never leaves the machine | public, relayed by Cloudflare |
| Available since | this package, 0.1.0 | Desktop app 1.4.8 |
Behind both doors is the same home: what a local AI stores today, a web AI can read tomorrow — and the other way round. Swap in a hundred AIs; there is still one memory, and it is on your disk.
An AI running on the web cannot reach your Mac. So the Desktop app opens a channel outwards. In the app, open AI Connect · Web (HTTP), pick one of three levels, and copy the address:
| Level | Public? | Address stable? | Use when |
|---|---|---|---|
| Local web | no | — | the AI runs on the same machine |
| Quick tunnel | yes | no | you want a web AI in without owning a domain |
| Fixed address | yes | yes | long-term use; needs your own Cloudflare account |
If local works, do not open a tunnel. That is what the app tells you, and it is our advice here too: if local is enough, do not open the door onto the street.
Three things to know before you connect:
Which AIs? Any client that supports remote MCP works — read-only, public vaults only. One caveat: ChatGPT uses Custom GPT Actions (OpenAPI), a different mechanism from MCP. An address alone will not work there, and that step is not built yet.
transport still says stdioThe package and the MCP Registry entry both declare "transport": {"type": "stdio"}. That is accurate and stays that way: this package _is_ the stdio bridge. The web (HTTP) door is a capability of the Desktop app, not of this package. Declaring http here would make clients dial an endpoint the package does not serve, and the connection would simply fail — so the door is documented above rather than declared as a package transport.
None, for the local store — install the package and it works. A running app is a prerequisite only for the app's own features: encrypted vaults, the evolution log, and multi-agent identity. If you want those, install the Hive app (macOS, version 1.4.5 or newer) and leave HIVE_MODE at auto.
The six tools are the whole surface. They are the same six whether the app or the local store answers; only the ranking behind them differs — and, for two inputs, whether they exist at all. The app accepts precomputed embeddings (recall.query_vector, propose.vector); the local store has no embedder, so tools/list omits those two wherever the local store can answer, including
Only the beginning is shown; read the rest in the repo