プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

Brain Memory

作者:omelas-techバージョン 0.4.0i★ –iクラウドで動く
レジストリ名ai.brainmemory/brain

インストール

概要

作者による説明(英語の原文)

Persistent memory for AI agents: one brain shared across Claude, Cursor, Codex and more.

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: クラウドで動く
  • トランスポート: Streamable HTTP
  • カテゴリ: 検索・AIの記憶

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

  • 基本チェック:1項目中0項目に合格
  • 作者のサーバーで動きます。あなたが頼んだ内容は、作者のサーバーを通ります。
  • レジストリには、入力が必要なキーは載っていません。

必要なもの

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

ウェブ、デスクトップ、モバイルのClaudeで使えます:

  1. Settings → Connectors を開く
  2. Add custom connector を押す
  3. 下のアドレスを貼り付けて Add を押す
  4. サインインを求められたら、作者のサービスにサインインする
SettingsConnectors1+ Add2https://…3
https://mcp.brainmemory.ai/mcp

ターミナルでこれを実行します

claude mcp add --transport http brain https://mcp.brainmemory.ai/mcp

Cursorで開く

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

{
  "mcpServers": {
    "brain": {
      "url": "https://mcp.brainmemory.ai/mcp"
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

VS Codeで開く

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

{
  "servers": {
    "brain": {
      "type": "http",
      "url": "https://mcp.brainmemory.ai/mcp"
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

ChatGPTがつなげるのは、インターネット上のサーバーだけです:

  1. ウェブ版のChatGPTを開き → Settings → Connectors (Apps)
  2. Create または Add を押す(プランによっては、先に Advanced で Developer mode をオンにする必要があります)
  3. 下のアドレスを貼り付け、名前を付けて保存する
  4. サインインを求められたら、作者のサービスにサインインする
SettingsConnectors1+ Create2https://…3
https://mcp.brainmemory.ai/mcp

メニューの名前は、プランや時期によって少し違うことがあります。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

このサーバーのツール一覧はまだ読み取っていません。エンドポイントは順番にチェックしています。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック

  • ! 注意

    作者とリポジトリが一致

    公開者(brainmemory.ai)がリポジトリの所有者(omelas-tech)ではありません。別の人が登録した可能性があります

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    エンドポイントが応答する

    まだチェックしていません。エンドポイントは順番にチェックしています

  • … 未チェック

    OAuthでサインイン

    まだチェックしていません。エンドポイントは順番にチェックしています

  • … 未チェック

    ツールの説明に隠れた指示がない

    まだチェックしていません。エンドポイントをチェックするときにツール一覧を読み取ります

検索・AIの記憶のほかのサーバーとの比較i

  • このカテゴリのほかの7220件のうち0%よりスターが多い
  • このカテゴリのほかの7220件のうち60%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの7220件のうち38%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

Brain Memoryは安全ですか?

当てはまる基本チェック1項目のうち0項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。

パソコンで動きますか、それともクラウドですか?

作者のクラウドで動きます。インストール不要でインターネット経由でつながりますが、送った内容は作者のサーバーを通ります。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(0.4.0)がレジストリに届いたのは24 日前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。URLでつながるので、リモートMCPサーバーに対応したアプリ(開発者モードのChatGPTなど)でも使えます。

代わりに使えるものは?

同じカテゴリには:Context7, Codebase Memory, Exa

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

Context7

作者:upstash

Up-to-date docs for AI agents

パソコンでもクラウドでも★ 64,224MIT3 日前更新
インストール

Codebase Memory

作者:DeusData

Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.

パソコンで動く★ 48,148MIT20 日前更新
インストール

Exa

作者:exa-labs

Connect AI agents to Exa for web search, content fetching, and multi-step research.

クラウドで動く★ 5,213MIT44 日前更新
インストール

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

brain-connector

The Brain Memory Claude connector — a remote MCP server that exposes the brain's scored recall to Claude (web / desktop / iOS / Cowork). Built with the official @modelcontextprotocol/sdk per Anthropic's build-mcp-server guidance. Design rationale lives in brain-cloud/docs/connector-architecture.md.

It lives in this repo (not the npm package — excluded from package.json files, like website/) so it reuses the real recall engine in ../src directly. One brain, one engine, two faces.

Status: 🟢 LIVE IN PRODUCTION — Phase 1 + 2 (read + write)

Deployed at `https://mcp.brainmemory.ai/mcp` (Node service on the VPS beside brain-cloud; systemd + nginx + certbot — see deploy/). Added at claude.ai and verified on Claude web + iPhone. Tools: brain_recall, brain_status (read) + brain_memorize, brain_pin, brain_unpin, brain_forget, brain_verify (write — writes sync back to brain-cloud; hosts gate them behind confirmation) + brain_use (switch between the account's brains).

Two things to know in production:

  • One brain ↔ one Google account — the connector serves the brain of whatever Firebase (Google) identity signs in, so the brain must be pushed to *that* brain-cloud account. See Identity & accounts below for how the connector now surfaces a wrong / empty / multi-brain account instead of silently serving a phantom brain.
  • Sessions renew silently for ~a month — access tokens live 1 h, but the token endpoint issues rotating refresh tokens (OAuth 2.1: single-use, family-revoked on reuse) with a sliding 30-day window (CONNECTOR_REFRESH_TTL_MS), so an active user never sees the login page. Each refresh also renews the Firebase credential server-side (securetoken API, from the refresh token captured at login) — so sync-back and TTL re-pulls keep working far past the old ~1 h Firebase ID-token window. Grants + the DCR client registry persist under CONNECTOR_STATE_DIR (systemd StateDirectory; Firebase refresh tokens encrypted at rest via CONNECTOR_STATE_KEY, our tokens stored hashed), so deploys/restarts no longer log users out. Local CLI memories (brain cloud push) reach an active session automatically via a TTL re-pull (CONNECTOR_REPULL_TTL_MS, default 120s) — it re-pulls only when the cloud checksum changed and never over an unsynced local write.

npm test typechecks and proves the whole path end-to-end in one server — the complete OAuth 2.1 handshake through to real scored recall (token request is form-urlencoded, matching real clients):

① unauthenticated MCP call → 401 + WWW-Authenticate (RFC 9728)

② discovery → AS metadata (RFC 8414), PKCE S256 ③ Dynamic Client Registration (RFC 7591) ④ authorize → code (iss + state validated, RFC 9207) ⑤ token → audience-bound Bearer (PKCE verified, RFC 8707) ⑥ MCP initialize + tools/list → [brain_recall, brain_status, brain_use, brain_memorize, brain_pin, brain_unpin, brain_forget, brain_verify] (official SDK) ⑦ brain_recall(query) → the brain's REAL scored results (relevance + decayed strength + spreading activation), identical to the CLI

How recall stays identical to the CLI

The engine bridge (src/engine.ts) runs the repo's bin/recall.js with BRAIN_DIR pointed at the authenticated user's brain working copy — so the connector's scoring is byte-for-byte the CLI's, with zero reimplementation. (BRAIN_DIR is the same override the CLI ships.)

Run / test

npm install

npm test # end-to-end Phase 1 proof npm start # serve MCP on http://localhost:8788

Tools

ToolKindDescription
brain_recallread (readOnlyHint)Ranked recall for a query, scored by the brain engine.
brain_statusread (readOnlyHint)Memory count + last-updated for the user's brain, and the account's brains with the one in use marked active.
brain_usewrite (idempotentHint)Switch which of the account's brains the connector serves, by name or id. Remembered across sessions; copies nothing between brains.
brain_memorizewrite (destructiveHint)Store the explicit content provided (never the conversation); immediately recallable.
brain_pin / brain_unpinwrite (destructiveHint, idempotentHint)Move a memory into or out of the always-present tier.
brain_forgetwrite (destructiveHint)Archive a memory (recoverable — moved to _archived/, not hard-deleted).
brain_verifywrite (destructiveHint)List memories pending verification; approve them, or reject them into the archive.

Writes reuse the deterministic CLIs (memorize.js / pin.js / unpin.js / forget.js) and then syncBack() to brain-cloud.

Identity & accounts

One brain ↔ one Google account. The connector has no idea which laptop you're on — it serves the brain belonging to whatever Firebase (Google) identity completes the sign-in. The verified uid maps deterministically to a brain user (resolveBrainUserId), and that user's canonical brain is pulled from brain-cloud: the brain the user chose with brain_use, or else the account's oldest. So the rule is simple: connect with the same Google account your CLI's `brain cloud` syncs to, and use the same brain (brain cloud brains shows which one the CLI is linked to).

To keep that rule from failing silently, ensureUserBrain returns an identity signal that the tools surface to you:

Situationidentity.statusWhat you see
Account has no brain in Brain Cloudno-cloud-brainA note (in brain_status, and in brain_recall when it finds nothing) telling you this account is empty — most likely you signed in with the wrong Google account, or you're brand new.
Account has exactly one brainokNothing — the common, unambiguous case.
Account has several brainsmultiple-brainsA note naming the brain in use. brain_status lists them all; brain_use switches, and the choice (kept with the OAuth state, per user) holds for later sessions. A chosen brain that is later deleted falls back to the oldest.

This is *guidance, not enforcement* — a genuinely new user with no brain yet still gets a usable empty brain. Account-linking (letting one Google identity span several brains at once) is deliberately deferred; choosing one brain at a time is brain_use.

Auth

Two layers — both real now:

  1. OAuth 2.1 between Claude and the connector (src/oauth.ts): authorize / token / register / metadata, PKCE S256, RFC 8707 audience binding, RFC 9207 iss. Tokens mint into src/auth.ts's store; the /mcp guard validates them (incl. audience).
  2. Who is the human (src/firebase.ts): /authorize bounces the user through Firebase login (the same project brain-cloud uses). The connector verifies the ID token server-side and secret-free — RS256 against Google's public certs, checking aud/iss/ exp — so it needs only the public project config, no service-account key. The verified uid maps to the brain user, then the OAuth code is minted.

If FIREBASE_* env is not set, /authorize falls back to a fixed dev user (STUB:FIREBASE) so the headless test runs without a browser.

See the Firebase login work (demo)
cp .env.example .env      # fill in FIREBASE_API_KEY / AUTH_DOMAIN / PROJECT_ID

npm start # http://localhost:8788

then connect an MCP client (e.g. Claude) to http://localhost:8788/mcp —

the OAuth flow opens the branded Google sign-in page from /authorize

Signing in through /authorize shows the branded consent/login page and, on success, resolves your verified firebase_uid → brain_user_id → brain_dir — which is how the connector picks whose brain to serve. (localhost is an authorized Firebase domain by default, so popup sign-in works locally.)

Per-user store (src/store.ts)

ensureUserBrain({ userId, brainDir, idToken }) populates the user's brain working copy from a pluggable provider, then the engine recalls over it. Providers (via CONNECTOR_STORE, else inferred):

  • `brain-cloud` (production) — pulls the user's {brainID}.tar.gz from BRAIN_CLOUD_API_URL (default https://api.brainmemory.ai) using their Firebase ID token (brain-cloud's middleware accepts it directly), then tar xzf into brainDir. Refreshed at each login.
  • `local` (dev) — symlinks brainDir → $DEV_LOCAL_BRAIN (your live ~/.brain), so your machine serves your real brain through the connector.
  • `none` — assume pre-provisioned (tests).

Always graceful: if the brain is still missing, it empty-inits a valid (recall-safe) brain.

The brain-cloud provider speaks the store contract, so it works against any store that implements it, including a self-hosted brain-store. Sync-back is conditional (If-Match): if another device pushed first, the connector discards its working copy, starts again from the store's brain, re-applies the write and pushes again, so nobody's memories are overwritten.

Identity providers (src/identity.ts)

Who is logging in, and what the connector presents to the store for them, sits behind one interface. Select with CONNECTOR_IDP:

  • `firebase` (the default when FIREBASE_* is set) — Google sign-in. The store credential is the Firebase ID token, renewed from the Firebase refresh token.
  • `static` — for a self-hosted store. The sign-in page takes the token the store's operator issued (brain-store user add); the store decides who the user is. Requires BRAIN_CLOUD_API_URL to be set explicitly, so a token can never be sent to the hosted default by accident. Rotating or removing the user at the store ends their sessions at the next silent renewal.
  • `oidc` — for a self-hosted store that accepts your organisation's OpenID Connect issuer (Entra, Google Workspace, Keycloak, Okta). /authorize sends the browser to the issuer (authorization code + PKCE + nonce) and the issuer returns it to /oidc/callback. The ID token is the store credential, renewed from the issuer's refresh token. Needs OIDC_ISSUER, OIDC_CLIENT_ID and an explicit BRAIN_CLOUD_API_URL. Token verification is the store's own (store/lib/oidc.js), so the two can never disagree about what a valid token is. An issuer outage answers 503 and keeps the login; a revocation ends it.

With no provider configured the connector refuses to start in production. When the reverse proxy is not on loopback (another container, say), name it with CONNECTOR_TRUST_PROXY, for example uniquelocal; true is refused.

Next

  • Account-linking — let one user span several brains at once (recall across them), rather than serving one chosen brain at a time. See Identity & accounts.
  • Directory submission — remaining manual steps (test account, MCPB packaging, launch post); see the submission checklist in brain-cloud/docs/connector-architecture.md §7.
PopNxに聞く