Context7
Up-to-date docs for AI agents
作者による説明(英語の原文)
Shared, serverless, conflict-free knowledge-graph memory for AI agents
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
NOONIEN_DIR, NOONIEN_NODE_ID必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"server-noonien": {
"command": "npx",
"args": [
"-y",
"server-noonien"
],
"env": {
"NOONIEN_DIR": "your-value",
"NOONIEN_NODE_ID": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add server-noonien --env NOONIEN_DIR=your-value --env NOONIEN_NODE_ID=your-value -- npx -y server-noonien動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"server-noonien": {
"command": "npx",
"args": [
"-y",
"server-noonien"
],
"env": {
"NOONIEN_DIR": "your-value",
"NOONIEN_NODE_ID": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"server-noonien": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"server-noonien"
],
"env": {
"NOONIEN_DIR": "your-value",
"NOONIEN_NODE_ID": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
NOONIEN_DIR envNOONIEN_NODE_ID envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント sequico で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(1.1.2)がレジストリに届いたのは11 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには:Context7, Codebase Memory, Exa
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Up-to-date docs for AI agents
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.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
Shared, serverless, conflict-free memory for AI agents — with peer-to-peer sync.
server-noonien is a drop-in replacement for the official @modelcontextprotocol/server-memory knowledge graph — the same entities, observations and relations — that converges across machines with no central server, no database and no merge conflicts.
Its headline feature is peer-to-peer sync: the nooniend daemon replicates each node's shard directly to the others, so several machines share one memory with no shared folder — only IP reachability over a VPN or a LAN.
nooniend (recommended)file and s3noonien?Agent memory today is local, and the official memory server is a single JSONL file that every mutation reads and rewrites in full. That breaks the moment you have more than one machine:
server-noonien removes the shared file and the central server at the root, and keeps the drop-in tool surface:
.jsonl); a shard has a single writer by design, so no two nodes ever write the same file and noonien itself never forks one — a shared area's syncer still can, and a conflict copy is just another shard to fold.(HLC, node, sequence) — whose merge is idempotent, commutative, associative and convergent. Any two machines that have seen the same operations hold the identical graph, in any order, so there is no "last write wins" data loss.nooniend daemon — only IP reachability, over a VPN or a LAN — so several machines share one memory with no shared folder and no service to host. Prefer a folder or a bucket you already have? file and s3 work too: the transport is a choice, not a lock-in.memory server name with no agent changes — plus the update_*, merge_entities and read_conflicts extensions, the operations the official nine have no equivalent for.server-noonien vs the official memory server vs hosted memory services:
server-noonien | Official server-memory | Hosted memory services | |
|---|---|---|---|
| Multi-machine | Yes — per-node shards, one graph | No — one local file | Yes, via the service |
| Sharing a synced folder | Safe — append-only, conflict-free | Unsafe — whole-file read-modify-write | N/A |
| Needs a server / database | No | No | Yes |
| Needs a cloud account | No | No | Yes |
| Works offline | Yes (file backend) | Yes | No |
| Storage | Folder or S3-compatible bucket, your choice | One JSONL file | Their cloud |
| Drop-in for the official tools | Yes — same nine, plus extension tools | — | No |
| Migration | noonien import memory.jsonl | — | Export/import dance |
| Model | Explicit knowledge graph | Explicit knowledge graph | Often vector/semantic |
| License | MPL-2.0 | MIT | Proprietary |
Hosted is a category, not a product: it covers services that host your memory for you. server-noonien is the local-first opposite — you own the storage and there is no account.
A shared area is required for the file/s3 backends — a folder or an object store every node can reach. nooniend removes that requirement: it replicates the shards directly between nodes.
One npm package, `server-noonien`, ships three commands (Node.js ≥ 22). Install it once and all three land on your PATH:
npm install -g server-noonien
The s3 backend's @aws-sdk/client-s3 is an optional dependency, loaded only when NOONIEN_BACKEND=s3 selects it. npm install -g server-noonien --omit=optional skips it when you never use s3.
| Command | Role | How it runs |
|---|---|---|
| `server-noonien` | the MCP memory server | short-lived, spawned by the MCP client over stdio |
| `noonien` | the maintenance CLI | one-shot, run by hand |
| `nooniend` | the peer-to-peer replication daemon | long-lived, one per machine |
Only server-noonien matches the package name, so it is the only command npx can run by package name. Run the other two with --package, or from the global install above:
npx -y server-noonien # the MCP server (no argument serves over stdio)
npx -y -p server-noonien noonien help # the maintenance CLI npx -y -p server-noonien nooniend # the replication daemon
From a clone — for development, or to run code not yet on npm:
git clone https://github.com/sequico/server-noonien.git
cd server-noonien && npm install && npm run build
node dist/index.js # server-noonien — the MCP server node dist/noonien.js # noonien — the maintenance CLI node dist/gossip.js # nooniend — the replication daemon
server-noonien — the MCP serverThe entry every MCP client uses. With no argument (or serve) it speaks MCP over stdio, so you don't run it yourself — the client spawns it and it lives for the session:
npx -y server-noonien # the stdio command the client runs
claude mcp add memory -- npx -y server-noonien # register it with Claude Code as the memory server
Point your client at it; it works on one machine out of the box, and sharing across machines is the next step. In OpenCode (V2):
{
"$schema": "https://opencode.ai/config.json", "mcp": { "servers": { "memory": { "type": "local", "command": ["npx", "-y", "server-noonien"], "environment": { "NOONIEN_DIR": "~/.noonien" } } } } }
Other clients wrap the same command and environment in their own envelope; from a clone the command is ["node", "/path/to/server-noonien/dist/index.js"]. Because the nine drop-in tools are identical, you can replace the memory server entry with server-noonien and change nothing else.
noonien — the maintenance CLI| Command | Does |
|---|---|
noonien serve | run the MCP memory server over stdio (the same as server-noonien) |
noonien import | import an official server-memory JSONL file (writes its own -import shard, so it runs online) |
noonien export | print the folded knowledge graph as JSON |
noonien merge | fold every shard and report the merged state |
noonien compact | maintain this node's shard now: prune shadowed operations and, only where it is safe, physically delete its tombstones — the same rule the server applies (NOONIEN_GC; with a daemon that owns the directory it keeps the whole view and leaves the shard to the daemon) — and report why when it keeps them |
noonien query | search entities and print the matching subgraph |
noonien help | list the commands; noonien --version prints the version |
nooniend — the daemonA long-lived service, one per machine, that replicates the shard directory peer to peer. It takes no arguments and is configured entirely through environment variables — the shared NOONIEN_DIR and NOONIEN_NODE_ID (Shared variables) plus the daemon's NOONIEND_* (Daemon variables). See Peer to peer for the setup.
noonien merges shards; it does not move them by itself. How the shards travel between machines is your choice: peer to peer (a companion daemon — the recommended default) or a shared area (a folder or a bucket that already exists). The MCP server always reads and writes its own local shard; only the transport differs.
nooniend (recommended)The recommended way to share one memory across machines with no shared storage. nooniend is a long-lived daemon that replicates the local shard directory peer to peer. It only needs IP reachability, so it runs over any VPN (WireGuard, Tailscale, OpenVPN, Netbird, ZeroTier, …) or a plain LAN.
Give each machine a unique node id and run one nooniend per machine. Every daemon keeps a full replica of the others' shards beside its own, in the same local directory the MCP server uses — no shared folder required:
# on a tailnet
NOONIEN_DIR=~/.noonien \ NOONIEND_TAILSCALE=true \ nooniend
NOONIEN_DIR=~/.noonien \ NOONIEND_PEERS=ai.example:49778 \ nooniend
The peers find each other — you never list the machines. Configure one discovery source: NOONIEND_TAILSCALE (from tailscale status), NOONIEND_DNS_SRV (the _nooniend._tcp SRV records), or NOONIEND_PEERS (a static seed; one is enough, membership then self-propagates). A discovery source returns candidates, not members: a candidate joins only once it answers /info, so a machine on the network that does no
冒頭だけを表示しています。続きはリポジトリで読めます