server-noonien
概要
作者による説明(英語の原文)
Shared, serverless, conflict-free knowledge-graph memory for AI agents
PopNx MCPの3つの柱
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
- 利用者の声iレビューはまだありませんレビューは今後のステップで、アカウント機能と一緒に始まります
- 私たちの基本チェックi1項目中1項目に合格公開情報からチェック。コードはまだスキャンしていません
- 利用状況iとても新しい↓ 96/週 · ★ –
できること
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
- 接続方法: パソコンで動く
- トランスポート: stdio
- カテゴリ: 検索・AIの記憶
インストール
使っているAIアプリを選んで、設定をコピーしてください。
インストールの前に
- 基本チェック:1項目中1項目に合格
- あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
- 自分で入力するもの:
NOONIEN_DIR,NOONIEN_NODE_ID
必要なもの
- npmNode.jsのインストール(npxコマンドに必要)
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
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_DIRenvDirectory holding this machine's shards (default ~/.noonien).NOONIEN_NODE_IDenvThis node's shard name (default the hostname). Must be unique per machine.
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
できること
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
基本チェックi
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月8日にチェック
- ✓ 合格
作者とリポジトリが一致
レジストリ名は、リポジトリを所有するGitHubアカウント sequico で確認済みです
- … 未チェック
今もメンテナンスされている
このリポジトリはまだGitHubから読み取っていません
- … 未チェック
ライセンスがある
このリポジトリはまだGitHubから読み取っていません
- – 対象外
エンドポイントが応答する
これはパソコンで動くため、インターネット上のエンドポイントはありません
- – 対象外
OAuthでサインイン
パソコンで動き、代わりにローカルの設定を使います
- … 未チェック
ツールの説明に隠れた指示がない
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
検索・AIの記憶のほかのサーバーとの比較i
- このカテゴリのほかの5689件のうち0%よりスターが多い
- このカテゴリのほかの5689件のうち75%より最近レジストリに公開
- 基本チェックの結果が、このカテゴリのほかの5689件のうち100%と同じかそれ以上
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
よくある質問
server-noonienは安全ですか?
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
どんなキーやコードが必要ですか?
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
パソコンで動きますか、それともクラウドですか?
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
今もメンテナンスされていますか?
GitHubリポジトリの最終更新は–、最新バージョン(1.1.2)がレジストリに届いたのは13 日前です。
どのアプリで使えますか?
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
代わりに使えるものは?
同じカテゴリには:Context7, Codebase Memory, Exa
代わりの候補
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Codebase Memory
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Exa
Connect AI agents to Exa for web search, content fetching, and multi-step research.
作者のREADME
READMEを開く
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
server-noonien
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.
Table of contents
- Why server-noonien
- The problem
- How server-noonien solves it
- Comparison
- The three commands
- Share across machines
- Peer to peer —
nooniend(recommended) - The daemon HTTP API
- Shared area —
fileands3 - Configuration
- Shared variables
- Server variables
- Daemon variables
- How it works
- Compaction
- Deletion and collection
- Tools
- Drop-in compatibility
- Security
- Development
- Why the name
noonien? - Documentation
- License & Disclaimer
- Support the Project
Why server-noonien
The problem
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:
- It lives on one host. Switch machine and your agent has forgotten everything.
- Sharing it over a synced folder loses writes. The server serializes mutations *in-process only*: two hosts each load the whole graph, mutate their own copy and write it back, so the last write silently discards the other's — and the sync tool forks the file into conflict copies instead of merging it.
- The alternatives want a server, a database or a cloud. The mainstream "shared memory" products are something you have to host, or they ship your memory off your machines.
How server-noonien solves it
server-noonien removes the shared file and the central server at the root, and keeps the drop-in tool surface:
- Every node keeps its own memory. Each machine writes only its own append-only shard (
.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. - Shards merge, they do not overwrite. The graph is a CRDT — an LWW-Element-Set ordered by
(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. - No shared area, no central server. The shards travel directly between machines with the
noonienddaemon — 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?fileands3work too: the transport is a choice, not a lock-in. - Local-first and offline-friendly. Every node reads and writes its own shard on disk and keeps a full local replica, so it keeps working offline; the mesh reconverges when the network returns.
- Drop-in for the official server. The same nine tools, inputs and outputs, so it slots under the
memoryserver name with no agent changes — plus theupdate_*,merge_entitiesandread_conflictsextensions, the operations the official nine have no equivalent for.
Comparison
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.
The three commands
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 server
The 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 daemon
A 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.
Share across machines
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.
Peer to peer — 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
or, with no self-listing underlay, seed one reachable peer
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
冒頭だけを表示しています。続きはリポジトリで読めます