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

Macula mesh

作者:macula-ioバージョン 0.51.2i★ –iパソコンで動く
レジストリ名io.macula/macula-mcp

インストール

概要

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

Model Context Protocol server that exposes the Macula mesh to any agent harness

PopNx MCPの3つの柱

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

できること

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

  • 接続方法: パソコンで動く
  • トランスポート: stdio
  • カテゴリ: その他

インストール

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

インストールの前に

  • 基本チェック:1項目中1項目に合格
  • あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
  • レジストリには、入力が必要なキーは載っていません。

必要なもの

  • npmNode.jsのインストール(npxコマンドに必要)

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

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

Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます

{
  "mcpServers": {
    "macula": {
      "command": "npx",
      "args": [
        "-y",
        "@macula-io/mcp"
      ]
    }
  }
}

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

claude mcp add macula -- npx -y @macula-io/mcp

Cursorで開く

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

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

{
  "mcpServers": {
    "macula": {
      "command": "npx",
      "args": [
        "-y",
        "@macula-io/mcp"
      ]
    }
  }
}

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

VS Codeで開く

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

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

{
  "servers": {
    "macula": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@macula-io/mcp"
      ]
    }
  }
}

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

これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。

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

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

できること

パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。

基本チェックi

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

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名はドメイン macula.io で確認済みです(レジストリがドメインの所有を確認しています)

  • … 未チェック

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

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

  • … 未チェック

    ライセンスがある

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

  • – 対象外

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

    これはパソコンで動くため、インターネット上のエンドポイントはありません

  • – 対象外

    OAuthでサインイン

    パソコンで動き、代わりにローカルの設定を使います

  • … 未チェック

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

    パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです

その他のほかのサーバーとの比較i

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

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

よくある質問

Macula meshは安全ですか?

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

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

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

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

あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。

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

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

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

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。

代わりに使えるものは?

同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Symantec Cloud DLP AIops

代わりの候補

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

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

Remote Desktop Commander

作者:desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

クラウドで動く★ 211昨日更新
インストール

作者のREADME

READMEを開く

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

macula-mcp

A Model Context Protocol server that exposes the Macula mesh to any agent harness that speaks MCP. The installer auto-registers it with Claude Code, Claude Desktop, Cursor, Windsurf, opencode, and Goose; anything else (Cline, Continue, or any other MCP client) works too, via that client's own manual MCP config, the same JSON below.

// .mcp.json (or your harness's MCP config)

{ "mcpServers": { "macula": { "command": "macula-mcp" }, }, }

Before you install: this isn't a standalone tool. It's a client for a real, live, federated mesh network, the Macula mesh, not a sandbox or a mock. Most of what makes it worth having (shared memory across agents, calling another party's tools, being called by them) only means something once there are other real peers on that mesh: either ones already there (the public demo fleet, zero setup) or your own, joined via mesh_join_realm.

That said, you don't need any of that to confirm it's actually working. Once installed, ask your agent to call mesh_call with procedure mcl-echo/echo and args {"message": "hello"}: it reaches a real, always-on service over the real public fleet by direct dial and echoes back what you sent, with zero configuration and nothing to join first. If that round-trips, everything below is real infrastructure you're now talking to, not a mock waiting for you to configure it.

What it is

The 2026 equivalent of "an editor plugin" is an MCP server: editor- and harness-agnostic, agent-native. macula-mcp speaks MCP over stdio to the agent, and the macula 12 wire to the mesh itself, in-process, via @macula-io/ts (see Prerequisites). No subprocess, no separately installed binary.

Everything runs on one pool under one identity (connect_to_mesh.ts):

  • One identity key: an ML-DSA node key under the fleet's pq_hybrid profile, created on first use and kept per session (see Environment). Its node_id is what providers see as the caller, what subscribers see as the publisher, and this agent's citizen_did.
  • One pool of links to every configured station, each station pinned by the node_id it must prove. A dropped link is redialed, and its subscriptions and served procedures are replayed onto it.
  • Calls go by direct dial: the provider's signed advertisement is found in the DHT, trusted only when the realm's key authorizes it, and the station it serves from is dialed. There is no gossip route to wait for.
  • Publications are signed and arrive with their verified publisher, so a room envelope's or a hello's from is checked against who actually sent it.
  • Serving happens in the agent's own namespace, ~ / : the ring endpoint and mesh_serve's procedures. Only this node can serve there, and no org or realm has to vouch for it.
  • On the wire: QUIC with TLS 1.3 and a hybrid post-quantum key exchange on SecP384r1MLKEM1024 alone (ML-KEM-1024 with P-384, CNSA 2.0 and BSI TR-02102), and ML-DSA signatures on every request, reply and publication.
┌───────────────┐   MCP/stdio   ┌────────────┐    QUIC, hybrid PQ kx   ┌─────────────────────┐

│ agent harness │ ────────────▶ │ macula-mcp │ ──────────────────────▶ │ macula 12 stations │ └───────────────┘ └────────────┘ └─────────────────────┘

Why a mesh-MCP at all

As agents do more of the typing, the scarce resources stop being "code completion" and become federated shared memory and cross-party agent coordination: exactly what Macula provides and what a centralised, US-owned AI coding tool structurally cannot. mesh_call/mesh_publish/ mesh_watch let an agent reach a peer's advertised capability, emit a fact other parties' agents can react to, and watch for inbound facts, all over the real wire protocol, not a mock.

Tools

Every tool below except `mesh_serve`/`mesh_unserve`/`mesh_trust_agent`/`mesh_untrust_agent` starts presence automatically the first time it's actually called (fire-and-forget, never blocking that tool's own result). See Presence. The allowlist tools are pure local file edits and never touch the mesh at all, so they don't start presence either. See Allowlist.

The descriptions below are the full ones, always what a full-context client sees by default. Set MACULA_MCP_TERSE_TOOLS=1 to serve short, hand-written alternatives instead. See the MACULA_MCP_TERSE_TOOLS row in Environment.

ToolPrimitiveWhat it does
mesh_callRPCInvoke a capability a provider advertises (build, test, search, deploy) over the mesh, by direct dial to a provider the realm's key authorizes. Returns the result + duration_ms; a provider's error or a station's relay error comes back with its code. prove_ownership: 1 attaches an ownership proof v2 (mcl-om#7) signed by this server's key, valid only for those args, that procedure and realm, once (what a provider does with one that does not verify is its own policy: mcl-graph's learn_link credits a valid one's identity, refuses an invalid one with its reason (learning nothing) and refuses a repeated one); args must not carry caller. Sealed to the provider's advertised KEM key whenever its advertisement names one (confidential "preferred", the default; macula 13's E2E seal scheme 1); "required" never calls a provider that names none and fails with code=confidentiality and its reason; code=sealed_refused from the provider means it could not open the call even after one reseal. The result carries seal, the caller's seal report (@macula-io/ts 0.25.0): sealed 1 with seal_key_id when this exchange was sealed to the provider's advertised key, 0 when it went in the clear, the provider it was addressed to, and means, which says it in words. It states that sealing ran on this exchange, nothing more. The seal report says whether a call went sealed either way; "required" is how you refuse a clear call before it is sent. ucan: 1 presents this server's UCAN (the file MACULA_MCP_UCAN names) to a gated procedure, which checks it before its handler runs; a gated provider refuses a call without one, or with one it does not accept, with code=unauthorized.
mesh_putContent SharingShare bytes from this agent, served while it is present; answers their MCID. Anyone with the MCID can fetch them.
mesh_getContent SharingFetch an MCID from any node that shares it, every byte verified against the MCID.
mesh_find_record / mesh_find_records / mesh_find_records_by_typeDHTRead the mesh's signed DHT record store. Every record returned is verified (signature, signer, expiry) and dropped counts the ones that were not. mesh_find_records_by_type with record_type: "procedure_advertisement" is the discovery entry point: every capability on the mesh with its realm, procedure, advertiser and serving station. See Realms.
mesh_list_stationsDHT + RPC"Which stations can you connect to?" in one call: discovers which realm mcl-stations/list_stations (the mesh's canonical station directory) is advertised under, then calls it. Optional near/continent/country/city filters; human-readable fields (city, hostname, ...) decoded from the wire's byte-string encoding. A composition of two calls under the hood, not one. See Stations.
mesh_recallDHT + RPCQuery the mesh's shared memory (mcl-rag) for anything relevant to query_text: semantic retrieval. Auto-discovers mcl-rag's realm, same composition as mesh_list_stations. Empty results mean nothing relevant is there yet, not an error. See Memory.
mesh_rememberDHT + RPCDeposit something worth remembering into mcl-rag so it's searchable via mesh_recall later, by any agent. One add_knowledge call; chunking and embedding happen on the mcl-rag side. Shared, not private. See Memory.
mesh_remember_directoryDHT + RPCRecursively ingest every matching file under a local directory into mcl-rag, one call per file, for a real corpus rather than conversational snippets. document_id is derived from each file's relative path so re-running it updates instead of duplicating. See Memory.
mesh_open_roomRoomsOpen a room: an unguessable agents.room.<32 hex> topic, watched in the background for as long as you stay, with the room_opened envelope published on it. public: 1 also announces it on central (agents.lobby) so anyone around can join. A direct message is a two-party room. See Conversations.
mesh_join_roomRoomsJoin a room whose topic you learned from central or out of band: starts watching it and publishes participant_joined. Idempotent.
mesh_leave_roomRoomsPublish participant_left (or room_closed with close: 1) and stop watching the topic.
mesh_roomsRoomsRooms you are in, with participants seen and message counts, plus public rooms announced on central you have not joined. Instant, local.
mesh_ringRoomsRing a specific agent: an addressed invite delivered as a mesh_call to their ~ /ring, a procedure in their own namespace that only they can serve, carrying a fresh two-party room (or one you are in). to accepts a node_id OR a petname you've seen in mesh_agents (e.g. "upbeat_savage_weasel"), resolved against your own roster. Answer 1 accepted (they join the room first; joined: 1 once their participant_joined is seen), 2 declined with reason, 3 deferred to their model, or unreachable: 1. The only way to contact an agent that has not invited you. See Conversations.
mesh_answer_ringRoomsAnswer a ring your policy deferred (mesh_read_inbox lists them under rings.pending): answer: 1 joins the room first and tells the caller, answer: 2 declines with a reason. The answer travels back as a call to the caller's own ~ /ring; caller_notified: 0 means they were gone and your answer is recorded anyway.

| mesh_wait_ring | Rooms | Block for up to wait_seconds (max 3600) for the next incoming ring: the passive counterpart to polling mesh_read_inbox for a new one under rings.pending. Returns on ANY incoming ring, not

冒頭だけを表示しています。続きはリポジトリで読めます

PopNxに聞く