# Matryoshka Mind Map (npm · mmm-mcp-server)

Read and write your Matryoshka Mind Map (nested mind map / TODO app) from AI agents.

- Trust score: 73/100 (medium)
- Change this week: −2
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-24

## Components

- npm · `mmm-mcp-server`: 73/100 (this document), [markdown](https://verifymcp.io/servers/nhorie-canal-mmm-mcp-server/mmm-mcp-server.md), [page](https://verifymcp.io/servers/nhorie-canal-mmm-mcp-server/mmm-mcp-server)

## Channel facts

- Registry: `npm`
- Package: `mmm-mcp-server`
- Version: `0.3.1`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-24.

- **Supply Chain Security**: 81/100
  - No malware found by supply-chain analysis.
  - CVE check failed: a known high-severity CVE affects zod 3.25.76, a direct dependency. A fixed version is available.
  - No install/post-install scripts declared.
  - 32 of 103 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 0 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 67/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 2319 tokens (~210/item across 11 items; 11 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 80/100
  - Stability observed for 24 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 97/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 92% of tool parameters carry a description.
- **Tool Safety**: 75/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "delete_elements" implies "delete" and declares no destructiveHint at all, which the MCP spec reads as destructive by default.
  - An AI judge read all 12 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the Matryoshka Mind Map MCP server?

Matryoshka Mind Map runs locally as an npm package, launched with npx -y mmm-mcp-server. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add nhorie-canal-mmm-mcp-server -- npx -y mmm-mcp-server
```

### Cursor

```json
{
  "mcpServers": {
    "nhorie-canal-mmm-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "mmm-mcp-server"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "nhorie-canal-mmm-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "mmm-mcp-server"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add nhorie-canal-mmm-mcp-server -- npx -y mmm-mcp-server
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "nhorie-canal-mmm-mcp-server": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "mmm-mcp-server"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add nhorie-canal-mmm-mcp-server --command npx --arg -y --arg mmm-mcp-server
```

### Hermes

```yaml
mcp_servers:
  nhorie-canal-mmm-mcp-server:
    command: "npx"
    args: ["-y", "mmm-mcp-server"]
```

### Netclaw

```json
{
  "McpServers": {
    "nhorie-canal-mmm-mcp-server": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "mmm-mcp-server"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add nhorie-canal-mmm-mcp-server -t stdio -c npx -a -y mmm-mcp-server
```

### Other

```json
{
  "mcpServers": {
    "nhorie-canal-mmm-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "mmm-mcp-server"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-24 (score 73, +10)

- [security regression] CVE-2023-54404 affects this package: high
- [security regression] Known CVEs: pass → fail
- [security improvement] Malware scan: unverified → pass

### 2026-10-23 (score 63, −14)

- [security regression] Malware scan: pass → unverified
- [functional] Package version: 0.3.0 → 0.3.1
- [functional] Package version: 0.1.3 → 0.3.0

### 2026-10-22 (score 77, 0)

- [security regression] Stability: 0.70 → unverified
- [security regression] Known CVEs: pass → unverified
- [security regression] Tool safety: pass → unverified
- [functional regression] Schema quality: 2081 → 2319
- [functional regression] Capabilities: pass → unverified
- [functional regression] Dependency health: 0.85 → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional] Package version: 0.2.0 → 0.3.0
- [functional] Package version: 0.2.0 → 0.2.1

### 2026-10-21 (score 77, +1)

No change was recorded against any check on this day. Stability & Change Management went from 67 to 70. That category is still filling its 30-day observation window: 20 days of observed history at the previous scan, 21 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-19 (score 76, +1)

No change was recorded against any check on this day. Stability & Change Management went from 60 to 63. That category is still filling its 30-day observation window: 18 days of observed history at the previous scan, 19 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-18 (score 75, 0)

- [functional] Package version: 0.1.3 → 0.2.0

### 2026-10-17 (score 75, +1)

- [functional] Package version: 0.1.3 → 0.2.0

### 2026-10-16 (score 74, −1)

- [functional regression] Schema quality: 1797 → 2081
- [functional] Package version: 0.1.3 → 0.2.0

## MCP tools (11)

### `list_maps` (~175 tokens)

自分のMatryoshka Mind Mapの全マップ(タイトル・ID・TODOかどうか)を返す。他のツールでmapIdを指定する前に、まずこれで存在するマップとそのIDを確認する。自分が所有するマップに加え、他のユーザーから共有されて見えているマップも含む(共有マップのroleが'viewer'の場合は閲覧のみで、書き込み系ツールは使えない)。アプリ側での直接の編集(新規マップ作成等)はこのツールを呼ぶまで反映されないため、ユーザーから状態を尋ねられたときは記憶に頼らず必ず呼び直すこと。

### `list_elements` (~408 tokens)

指定したマップ内の全要素と親子関係、チェック状態(checked)、期日(due)・着手日(start)を返す。dueとstartは付いている要素にだけあり、終日なら"YYYY-MM-DD"、時刻付きなら"YYYY-MM-DD HH:mm"(このPCの現地時刻)。checkedは各要素にFirestoreへ実際に保存されている生の値であり、「祖先がチェック済みなら配下も完了とみなす」という加工は行っていない。そう解釈したい場合は、返ってきたツリーを見てこちら(呼び出す側)で判断すること。呼ぶ前にユーザーへ確認しないこと。まずconfirmedを付けずに呼ぶ。アプリでAIからの読み取りを「常に許可」にしたマップは、そのまま実データを返す。それ以外のマップは、実データの代わりに確認を促すメッセージだけを返すので、そのときに限りユーザーに直接確認してからconfirmed: trueで呼び直すこと。アプリ側での直接の編集はこのツールを呼ぶまで反映されないため、ユーザーから進捗や状態を尋ねられたときは記憶に頼らず必ず呼び直すこと。

Input parameters:

- `confirmed` (boolean): 最初は付けない。確認を促すメッセージが返ったときだけ、ユーザー本人に直接「中身を確認してよいか」と尋ね、同意を得てからtrueを付けて呼び直す。確認前にtrueを付けてはならない。
- `mapId` (string, required): list_mapsで得たマップのID

### `create_map` (~126 tokens)

新しいマインドマップ(マップ)を1つ作成する。list_mapsで確認して該当するマップが無いときだけ呼ぶこと。呼ぶ前に、会話でタイトル案をユーザーに提示し、明示的な確認を得ること(自動判断で勝手に作成しない)。

Input parameters:

- `isTodo` (boolean, required): TODOマップ(要素にチェックボックスを付ける)にするかどうか
- `title` (string, required): マップのタイトル

### `auto_structure_thought` (~205 tokens)

会話中にClaudeが考えた階層構造を、既存のマップに追加する。深さは3階層固定ではなく任意。構造化のロジック(何をどう分解するか)はClaude側の判断で行い、このツールはFirestoreへの書き込みだけを行う。追加先(parentElementId)はlist_elementsの結果を見て判断すること。対象は既存マップのみ(新規作成が必要ならcreate_mapを先に呼ぶ)。

Input parameters:

- `mapId` (string, required): list_mapsで得たマップのID
- `nodes` (array, required): 追加する階層構造(ルートの配列)
- `parentElementId` (string|null): この要素の内側(子)として追加する。マップの最上位に追加する場合はnullまたは省略

### `update_task_status` (~139 tokens)

TODOマップの要素のチェック状態を書き換える。1件でも複数件でもよい。「親をチェックすると配下も完了扱いになる」というアプリ内の表示上の挙動はこのツールでは再現しない(指定した要素だけを書き換える、配下への自動連鎖はしない)。配下も揃えたい場合は、対象の要素をすべてupdatesに列挙すること。

Input parameters:

- `mapId` (string, required): list_mapsで得たマップのID
- `updates` (array, required)

### `import_markdown_context` (~322 tokens)

任意の深さのMarkdown(インデントで階層を表現したリスト、見出しは`#`)を組み立てて、既存のマップに流し込む。見出しも1つの要素として取り込む。取り込み先がTODOマップでない場合、`- [ ]`/`- [x]`のチェックボックス記法は取り除かれチェック状態も反映されない(アプリ本体の挙動と同じ)。対象は既存マップのみ(新規作成が必要ならcreate_mapを先に呼ぶ)。

Input parameters:

- `mapId` (string, required): list_mapsで得たマップのID
- `markdown` (string, required): 取り込むMarkdownテキスト(1要素5000文字まで。超える要素があれば何も書かない)。要素の1行目に「📅 2026-10-15」(期日)・「🛫 2026-10-12」(着手日)と書くと日付として取り込む。時刻付きは「📅 2026-10-15 09:00」(このPCの現地時刻)
- `parentElementId` (string|null): この要素の内側(子)として取り込む。マップの最上位に取り込む場合はnullまたは省略

### `edit_element` (~113 tokens)

既存マップの要素1件の本文(detail)を書き換える。要素の追加はauto_structure_thought・import_markdown_contextを、チェック状態の変更はupdate_task_statusを使うこと。

Input parameters:

- `detail` (string, required): 書き換え後の本文(1要素5000文字まで)
- `elementId` (string, required): list_elementsで得た要素のID
- `mapId` (string, required): list_mapsで得たマップのID

### `delete_elements` (~187 tokens)

既存マップから要素を削除する。指定した要素とその配下(子孫)を丸ごと削除する。削除は取り返しがつかないため、まずconfirmedを省略(またはfalse)で呼び、返ってくる削除対象の一覧(パスと配下件数)をユーザーに提示して明示的な同意を得てから、confirmed: trueで呼び直すこと。

Input parameters:

- `confirmed` (boolean): true以外(省略時false)は削除対象の確認情報だけを返し、実際には削除しない
- `elementIds` (array, required): list_elementsで得た要素のID(複数可)
- `mapId` (string, required): list_mapsで得たマップのID

### `move_element` (~184 tokens)

既存マップの要素1件(配下ごと)を、同じマップ内の別の場所へ移動する。階層をまたいだ移動(昇格・降格)も、同じ階層内の並べ替えも、これ1つで行える。

Input parameters:

- `afterElementId` (string|null, required): 移動先の中で、このIDの要素の直後に置く。先頭に置く場合はnull
- `elementId` (string, required): 移動する要素のID
- `mapId` (string, required): list_mapsで得たマップのID
- `newParentElementId` (string|null, required): 移動先の親要素のID。マップの最上位へ移動する場合はnull

### `set_schedule` (~103 tokens)

要素の期日(due)と着手日(start)を付ける・外す。1件でも複数件でもよい。親の日付を子に引き継ぐことはしない(親と子の日付は独立している)。今の日付はlist_elementsで確認できる。

Input parameters:

- `mapId` (string, required): list_mapsで得たマップのID
- `updates` (array, required)

### `sign_in` (~238 tokens)

Matryoshka Mind Mapにサインインする。ほかのツールが「サインインしていません」と返したときに使う。ユーザーのパソコンでブラウザが開き、ユーザーがそこで承認・入力するとサインインが終わる。アプリでのサインイン方法(Google・Apple・メールアドレス+パスワード)を先にユーザーに聞いてから呼ぶこと。'email' はブラウザに入力ページを開くだけなので、メールアドレスやパスワードを会話で尋ねたり受け取ったりしてはならない。statusが'pending'なら、ブラウザでの承認・入力を済ませるようユーザーに伝え、済んだと言われたら同じmethodでもう一度呼んで結果を確かめる。

Input parameters:

- `method` (string, required): アプリでのサインイン方法。'google'・'apple'・'email'(メールアドレス+パスワード)

## Diagnostics

Captured diagnostic sections: Provenance, Vulnerabilities, Dependencies. The full working is on the page: https://verifymcp.io/servers/nhorie-canal-mmm-mcp-server/mmm-mcp-server#diagnostics

## Score history

- 2026-10-24: 73
- 2026-10-23: 63
- 2026-10-22: 77
- 2026-10-21: 77
- 2026-10-20: 76
- 2026-10-19: 76
- 2026-10-18: 75
- 2026-10-17: 75
- 2026-10-16: 74
- 2026-10-15: 75
- 2026-10-14: 74
- 2026-10-13: 74
- 2026-10-12: 38
- 2026-10-08: 38
- 2026-10-05: 70
- 2026-10-04: 69
- 2026-10-03: 69
- 2026-10-02: 69
- 2026-10-01: 53
- 2026-09-30: 68

## Common questions

### What is the Matryoshka Mind Map MCP server?

Matryoshka Mind Map is an MCP server listed in the public MCP registry as io.github.nhorie-canal/mmm-mcp-server. Read and write your Matryoshka Mind Map (nested mind map / TODO app) from AI agents. This page covers its npm package (mmm-mcp-server).

### Is the Matryoshka Mind Map MCP server safe to use?

Matryoshka Mind Map scores 73 out of 100 on VerifyMCP. We recorded 1 known advisory against it as of 24 October 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Matryoshka Mind Map MCP server expose?

Matryoshka Mind Map exposes 11 tools: list_maps, list_elements, create_map, auto_structure_thought, update_task_status, and 6 more. Their descriptions and schemas cost roughly 2,200 tokens of context every time the server is loaded.

### Is the Matryoshka Mind Map MCP server still maintained?

Matryoshka Mind Map is still listed as active in the MCP registry. We last reached this channel on 24 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the Matryoshka Mind Map MCP server under?

Matryoshka Mind Map declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- npm package: https://www.npmjs.com/package/mmm-mcp-server
- Socket report: https://socket.dev/npm/package/mmm-mcp-server
- Repository: https://github.com/nhorie-canal/mmm_mcp
- Website: https://matryoshkamap.web.app/
- Changelog RSS feed: https://verifymcp.io/servers/nhorie-canal-mmm-mcp-server/mmm-mcp-server.xml
- Changelog JSON feed: https://verifymcp.io/servers/nhorie-canal-mmm-mcp-server/mmm-mcp-server.json
- HTML version of this page: https://verifymcp.io/servers/nhorie-canal-mmm-mcp-server/mmm-mcp-server
