Skip to main content
Glama

Matryoshka Mind Map MCP Server

English | 日本語

Talk to your AI agent, and it reads and writes your nested mind maps and TODOs in Matryoshka Mind Map.

Asking an AI agent to plan a trip fills a Matryoshka map, and "I booked the hotel" checks it off

Get the app (free to start): Web app · App Store · Google Play

What you can do

  • "Show me my maps" — lists your maps

  • Turn ideas from the conversation into a nested mind map

  • "I finished task X" — checks it off your TODO list

  • Paste long notes or Markdown and import them into a map

Related MCP server: xmind-mcp

Get started

You need a Matryoshka account linked to Google, Apple, or an email address (anonymous-only accounts cannot be used).

Claude Desktop (no terminal needed)

  1. Download mmm-mcp-server.mcpb and double-click it, then click Install in Claude Desktop.

  2. Say "Sign in to Matryoshka". A browser window opens: approve with Google or Apple, or enter your email and password on the sign-in page (it runs only on your computer; your password is never shared with the AI).

  3. Talk to it:

    • "Show me my Matryoshka maps."

    • "Add a task called [task] to the [map name] map."

    • "Import these notes into the [map name] map."

The first time a map's contents are read, Claude asks for your permission.

Claude Code and other MCP clients

Requires Node.js 18+. New to the terminal? Follow the step-by-step setup guide.

Claude Code:

claude mcp add mmm -- npx -y mmm-mcp-server@latest

Other MCP clients: register npx -y mmm-mcp-server@latest as the server command.

Then ask the agent to sign in to Matryoshka, or sign in from the terminal with the method you use in the app (google, apple, or email):

npx -y -p mmm-mcp-server@latest mmm-login login --method google

Privacy

  • Runs only on your computer, only while you talk to your agent. No always-on server.

  • Your login is stored only on your computer, and your maps are read and written directly in your own account. The developer cannot see your data.

More

Tips and advanced use — keeping maps tidy, recording tasks per folder, updating, troubleshooting.

Available Tools

11 tools
auto_structure_thoughtA

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

NameRequiredDescriptionDefault
mapIdYeslist_mapsで得たマップのID
nodesYes追加する階層構造(ルートの配列)
parentElementIdNoこの要素の内側(子)として追加する。マップの最上位に追加する場合はnullまたは省略

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden and does well: it discloses that this is a pure write to Firestore ('追加する', additive), that hierarchy depth is arbitrary rather than a fixed 3 levels, and that decomposition logic is the caller's responsibility, not the tool's. Gaps remain around what is returned (created IDs?) and behavior on partial failure or permission errors.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, then the scope constraint, then the prerequisite routing in the final sentence. No sentence is redundant; every clause adds operational information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an unannotated mutation tool with a rich nested schema but no output schema, the description covers the essential behavior (write-only, additive, arbitrary depth, existing-map-only, parent selection). It stops short of describing the return value or failure modes, which an agent would need for error handling and follow-up edits.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so mapId, nodes, and parentElementId semantics are already documented in the schema (including the null/omitted = top level rule). The description adds only that parentElementId should be derived from list_elements output, which is procedural guidance rather than parameter-level meaning — baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: appending a hierarchical structure of nodes into an existing map, with the explicit clarification that this tool performs only the Firestore write and no structuring logic. It also distinguishes itself from siblings by naming list_elements (for choosing the parent) and create_map (for new maps).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use: existing maps only, and 'create_map first' when a new map is needed. It also gives the precondition for choosing parentElementId — look at list_elements results — so the agent knows which sibling to call before invoking this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_mapA

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

NameRequiredDescriptionDefault
titleYesマップのタイトル
isTodoYesTODOマップ(要素にチェックボックスを付ける)にするかどうか

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it does add real behavioral context: a mandatory user-confirmation step and an explicit prohibition on autonomous creation. It does not describe the success/duplicate/error behavior of the create itself, so it falls short of fully covering the write semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each earning its place, with the primary action stated first and the guardrails (list_maps check, user confirmation) following in priority order. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-required-parameter create tool with no output schema, the definition covers the purpose, precondition, and confirmation workflow. It is nearly complete, though it could note what happens on success or when a duplicate title is used.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both 'title' and 'isTodo' are already documented in the schema, and the description adds no additional syntax or format detail beyond them. Per the baseline rule for high coverage, a 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('新しいマインドマップを1つ作成する'), specifying cardinality ('1つ'). It is immediately distinguishable from siblings like list_maps, edit_element, or delete_elements.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit routing rules: call only after list_maps confirms no matching map exists, and require a user-confirmed title proposal first. The alternative (list_maps) and the precondition are both named, leaving nothing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_elementsA

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

NameRequiredDescriptionDefault
mapIdYeslist_mapsで得たマップのID
confirmedNotrue以外(省略時false)は削除対象の確認情報だけを返し、実際には削除しない
elementIdsYeslist_elementsで得た要素のID(複数可)

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does well: it discloses irreversibility (削除は取り返しがつかない), cascade deletion of descendants, and the dry-run semantics of confirmed, including that the dry run returns the paths and descendant counts. It stops short of stating permission requirements or limits on how many elements may be deleted at once.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the destructive action and cascade scope, then the safety workflow. Every sentence carries required information and nothing is padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, annotation-free tool with no output schema, the description supplies the missing safety profile and explains what the dry-run returns (paths and descendant counts). An agent has everything needed to call it safely and correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents mapId, elementIds and the dry-run meaning of confirmed. The description restates the confirmed workflow rather than adding syntax, format, or edge-case detail beyond it, so the baseline 3 is right.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('既存マップから要素を削除する') and immediately clarifies scope via the cascade rule (指定した要素とその配下(子孫)を丸ごと削除する). This clearly separates it from siblings like edit_element and move_element, which touch the same resources without removing them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Prescribes an explicit two-call workflow: first call with confirmed omitted/false to obtain the target list, present it to the user for explicit consent, then re-call with confirmed: true. The when-not condition (do not delete before consent) and the alternative call mode are both spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

edit_elementA

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

NameRequiredDescriptionDefault
mapIdYeslist_mapsで得たマップのID
detailYes書き換え後の本文(1要素5000文字まで)
elementIdYeslist_elementsで得た要素のID

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It usefully scopes the mutation to only the detail field (implying other fields are untouched), but says nothing about overwriting existing content being irreversible, permission/auth requirements, or what the tool returns on success.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero waste. The primary action is front-loaded, followed immediately by the disambiguation routing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-required-param mutation tool with no annotations and no output schema, the description covers purpose and sibling routing well, and the schema fills in all parameter semantics. The only missing piece is behavioral detail about the write itself (overwrite semantics, success/failure response).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%: mapId, elementId, and detail are all documented in the schema, including the 5000-character limit. The description mentions detail but adds no format or constraint information beyond what the schema already provides, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: rewrites the body (detail) of a single element in an existing map. It also names the sibling tools that handle adjacent operations (auto_structure_thought, import_markdown_context, update_task_status), so the agent can distinguish it without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent: element creation goes to auto_structure_thought or import_markdown_context, and check-state changes go to update_task_status. This is a clear when-to-use-this vs when-to-use-alternatives statement, leaving nothing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

import_markdown_contextA

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

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

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden and discloses important non-obvious behavior: checkbox syntax is stripped and checked state is ignored when the destination is not a TODO map. It does not state the response shape, whether import is atomic, or how existing content is affected.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loads the core import behavior, then adds only relevant caveats about headings, checkboxes, and existing maps. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations, the description covers the essential quirks an agent needs: existing-map restriction, heading-as-element handling, and non-TODO checkbox stripping. It leaves some behavioral details unstated, but the full parameter schema fills in syntax and size constraints.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so mapId, markdown, and parentElementId are already documented. The description adds useful import semantics such as heading handling and checkbox behavior, but does not add parameter-specific meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource: it assembles Markdown of arbitrary depth and imports it into an existing map. It also clarifies that headings become elements, distinguishing the operation from create_map or edit_element.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly limits use to existing maps and explicitly routes new-map creation to create_map first. It does not cover other alternatives such as editing individual elements, but the primary when/when-not condition is stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_elementsA

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

NameRequiredDescriptionDefault
mapIdYeslist_mapsで得たマップのID
confirmedNo最初は付けない。確認を促すメッセージが返ったときだけ、ユーザー本人に直接「中身を確認してよいか」と尋ね、同意を得てからtrueを付けて呼び直す。確認前にtrueを付けてはならない。

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so: it discloses the raw Firestore `checked` semantics (no ancestor-to-descendant propagation), the exact date formats and local-time interpretation, the permission-gated two-path behavior (real data for 'always allow' maps vs. a confirmation-prompt message otherwise), and the staleness caveat that in-app edits only appear after a re-call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded in the first sentence, followed by return-value details, then the confirmation protocol, then the freshness rule — each sentence carries a distinct, actionable constraint with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description compensates fully by describing the element tree, which fields are conditional, and the exact date encodings. The confirmation/authorization behavior and the stale-read warning cover everything an agent needs to call this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds operational meaning beyond the schema text by explaining which maps yield real data versus a confirmation prompt, which is the actual reason `confirmed` exists. The two-step flow itself is largely mirrored from the schema description, keeping this from a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (returns all elements in a given map) and enumerates exactly what comes back: parent-child relations, checked state, due date, start date. Sibling tools like list_maps and delete_elements are clearly different operations, so an agent can route this without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says not to ask the user before calling, to call first without `confirmed`, and to re-call with `confirmed: true` only after the confirmation message appears and the user agrees. It also mandates re-calling rather than trusting memory whenever progress or status is asked about — the when-to-use condition is fully spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_mapsA

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

NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses that results include both owned and shared maps, that 'viewer' role implies read-only with no write tools available, and that app-side edits are not reflected until this tool is re-called. It does not cover return ordering, pagination, or limits, which keeps it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, entirely front-loaded with what is returned and the prerequisite that a call is needed before using mapId elsewhere. Each subsequent sentence adds a distinct, non-redundant constraint (shared-map visibility, viewer read-only, state freshness).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter list tool with no output schema and no annotations, the description supplies everything needed: return contents, the prerequisite sequencing relative to other tools, the shared-map permission caveat, and the freshness warning. Nothing an agent needs in order to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing to disambiguate and the baseline of 4 applies. The description usefully enumerates the fields returned (title, ID, TODO flag) even though they are not inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: returns all of the user's Matryoshka Mind Maps with title, ID, and TODO status. It is clearly distinguishable from sibling list_elements (which lists elements within a map) and from create_map/delete_elements, so an agent can route correctly without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to call this first to resolve existing maps and their IDs before passing mapId to other tools, and mandates re-calling whenever the user asks about state rather than relying on memory. It also states the write restriction when the caller's role on a shared map is 'viewer'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

move_elementB

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

NameRequiredDescriptionDefault
mapIdYeslist_mapsで得たマップのID
elementIdYes移動する要素のID
afterElementIdYes移動先の中で、このIDの要素の直後に置く。先頭に置く場合はnull
newParentElementIdYes移動先の親要素のID。マップの最上位へ移動する場合はnull

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does disclose two important behaviors beyond the schema: the moved element's descendants travel with it, and moves are confined to the same map. It says nothing about permissions, what happens to the subtree's internal ordering, or failure conditions for invalid parent/after IDs, leaving meaningful gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with the core action front-loaded and zero filler. The second sentence adds genuine value by enumerating the two supported move types. Slightly more could be trimmed or reordered, but it is efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a hierarchy-mutating tool with no annotations and no output schema, the description covers the essential semantics (subtree moves, same-map restriction, both move kinds) but omits error behavior, idempotency, and any post-move effect. The schema handles parameter detail, so this is adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all four parameters (mapId, elementId, newParentElementId, afterElementId) are already documented in the schema, including the null-for-top-level and null-for-first-position semantics. The description adds no parameter-level detail beyond that, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (move) and resource (one element) with clear scope: within the same map, and the moved element carries its subtree with it. It also clarifies that both cross-hierarchy moves (promote/demote) and same-level reordering are covered, which meaningfully separates it from edit_element and delete_elements. It stops short of naming a sibling explicitly, so it lands at a strong 4 rather than 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 「これ1つで行える」 implicitly tells the agent this single tool covers both reordering and hierarchy changes, which is useful context for tool selection. However, there is no explicit when-to-use vs when-not, no named alternative, and no stated prerequisite (e.g., that IDs must come from list_elements). Usage is implied rather than directed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_scheduleB

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

NameRequiredDescriptionDefault
mapIdYeslist_mapsで得たマップのID
updatesYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does disclose two non-obvious traits: batch updates are allowed and parent dates are never inherited by children (they are independent). It says nothing about permissions, partial-failure behavior, or what a successful call returns.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences with no filler; the operation is front-loaded and the inheritance caveat follows the core statement. Nothing needs trimming, though the list_elements pointer could be folded in more tightly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and no output schema, the description covers the main semantic pitfalls (batch, independence, where to read current values) but leaves the agent without any notion of authorization, error handling, or result shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 50%, and the description compensates partially by stating the updates array may hold one or many items. The due/start null-removes and omission-leaves-untouched semantics live only in the schema, and mapId receives no explanation beyond the schema text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb pair (attach/remove) and resource (element due and start dates), plus the batch scope ('1件でも複数件でもよい'). It is not explicitly distinguished from edit_element or update_task_status, so a sibling-differentiation claim would be overstated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Points the agent to list_elements for reading current dates, which is a genuine usage hint, but never says when this tool is preferred over edit_element or update_task_status for touching dates. Usage is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sign_inA

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

NameRequiredDescriptionDefault
methodYesアプリでのサインイン方法。'google'・'apple'・'email'(メールアドレス+パスワード)

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses that a browser opens on the user's machine, that the user must approve/enter data there, that the call can return 'pending', and how to re-invoke with the same method. It does not cover timeout or what a fully successful response looks like, so it falls just short of exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and trigger, then the browser flow, then the method precondition, then the retry rule. It is dense but every sentence carries operational value; a small amount of repetition in the pending-retry sentence could be trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter interactive auth tool with no output schema, the description covers the whole lifecycle: when to call, how the browser interaction works, what 'pending' means, and how to verify completion. Nothing an agent needs in order to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real semantic guidance: the method must be chosen by the user first, and 'email' specifically only opens an input page rather than accepting credentials via chat. That materially shapes how the 'method' enum should be used.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (sign in to Matryoshka Mind Map) and immediately distinguishes itself from the sibling tools by naming the trigger condition: other tools returning 'not signed in'. An agent can select it without inspecting any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when-to-use ('ほかのツールが「サインインしていません」と返したとき'), a required precondition (ask the user which method before calling), and a prohibition (never collect email/password in conversation). It also gives the retry protocol when status is 'pending'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_task_statusA

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

NameRequiredDescriptionDefault
mapIdYeslist_mapsで得たマップのID
updatesYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it discloses the single most non-obvious behavior: the tool does NOT reproduce the app's parent-check-cascades-to-children display behavior, only the specified elements are written. It omits error/permission/return behavior, but the key semantic trap is covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, all purposeful, with the purpose front-loaded. The cascade clarification and its remedy are a little repetitive but each earns its place by preventing a specific misuse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema or annotations, but for a simple mutation tool the description covers what is mutated, the scope (single vs batch), and the key filtering/behavioral constraint. Missing only failure and permission semantics, which are minor here.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50% (the top-level 'updates' array lacks a description), but the prose compensates by explaining that 'updates' is the enumeration of target elements and that all desired elements must be listed. Combined with mapId/elementId descriptions referencing list_maps/list_elements, an agent can call it correctly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: rewriting the checked state of elements in a TODO map, and explicitly notes it handles one or many elements. It does not name a sibling tool (e.g. edit_element) to differentiate, but the scope statement is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear operating context: use it when you want to change check state, and if you want children aligned you must enumerate every target element in 'updates'. It does not compare against alternatives like edit_element, but the cascade caveat is a real usage rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv0.3.0
    • Changedauto_structure_thought1 field changed
      • changedInput schema / properties / nodes / items / properties / detail / description
        Previous value: -"要素の本文"New value: +"要素の本文(1要素5000文字まで)"
    • Changededit_element1 field changed
      • changedInput schema / properties / detail / description
        Previous value: -"書き換え後の本文"New value: +"書き換え後の本文(1要素5000文字まで)"
    • Changedimport_markdown_context1 field changed
      • changedInput schema / properties / markdown / description
        Previous value: -"取り込むMarkdownテキスト"New value: +"取り込むMarkdownテキスト(1要素5000文字まで。超える要素があれば何も書かない)。要素の1行目に「📅 2026-10-15」(期日)・「🛫 2026-10-12」(着手日)と書くと日付として取り込む。時刻付きは「📅 2026-10-15 09:00」(このPCの現地時刻)"
    • Changedlist_elements1 field changed
      • changedInput schema / properties / confirmed / description
        Previous value: -"ユーザー本人に直接「中身を確認してよいか」と尋ね、同意を得てからtrueを付けて呼ぶこと。確認前にtrueを付けてはならない。"New value: +"最初は付けない。確認を促すメッセージが返ったときだけ、ユーザー本人に直接「中身を確認してよいか」と尋ね、同意を得てからtrueを付けて呼び直す。確認前にtrueを付けてはならない。"
    • Addedset_schedule
    • Addedsign_in
  2. 9 tool updatesv0.1.2
    • First observedauto_structure_thought
    • First observedcreate_map
    • First observeddelete_elements
    • First observededit_element
    • First observedimport_markdown_context
    • First observedlist_elements
    • First observedlist_maps
    • First observedmove_element
    • First observedupdate_task_status

TDQS

A4/5.0

Scored across 11 tools

Disambiguation4/5

Most tools have clearly distinct purposes (move_element, edit_element, set_schedule, update_task_status, delete_elements each target a different mutation). The main overlap is auto_structure_thought vs import_markdown_context, which both write hierarchical content into an existing map, but the descriptions differentiate them well (Claude-generated structure vs Markdown import).

Naming Consistency4/5

All names use snake_case with a verb-first pattern (list_maps, create_map, edit_element, move_element, delete_elements, set_schedule, sign_in). Minor deviations: singular/plural inconsistency (move_element vs delete_elements) and auto_structure_thought, which is adverb_verb_noun rather than a clean verb_noun.

Tool Count5/5

11 tools is well within the ideal 3-15 range and each tool corresponds to a real operation (map CRUD-ish, element mutation, scheduling, import, auth). No filler tools and no missing obvious operation that would need bundling.

Completeness4/5

The element lifecycle is well covered: create map, list maps/elements, add structure, import, edit text, move, delete, toggle task state, set schedule, plus sign-in. Gaps are at the map level (no rename_map or delete_map) and there is no direct single-element create outside structure/import, but agents can work around these.

Maintenance

ActivityActive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers