nodeland-mcp
OfficialClick on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@nodeland-mcpCreate a concept map for our Q3 roadmap and share the NodeLand link."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
nodeland-mcp
NodeLand is the persistent destination where agent output becomes an editable map — not a one-shot Mermaid render that dies with the chat.
This MCP server talks to the NodeLand Maps API. Agents emit concepts + relations; NodeLand stores the map, runs layout, and returns a URL the human can open, share, embed, and keep editing.
Demo maps (open these)
Replace these with maps you create during a real agent session before publishing:
Create your own with Claude/Cursor below, then paste the live URL here — the artifact is the demo.
Related MCP server: MegaMemory
What you get
Tool | When to use |
| Turn a topic into a shareable map (returns |
| Keep writing into the same map across a conversation |
| Read concepts/relations summary (not raw Cytoscape JSON) |
| Find an existing map id |
Resource: nodeland://templates — named layouts (StandardMindMapTemplate, TonyBuzzanTemplate, Tree TD / Tree LR, …).
Maps are public by default so the link works without login. Pass isPublic: false only when the user asks for private.
1. Get an API key (the real onboarding step)
Sign up / log in at nodeland.io
Open Settings → API Keys
Generate a key with
maps:readandmaps:writeCopy it once — it is shown only at creation time
2. Install in your agent
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"nodeland": {
"command": "npx",
"args": ["-y", "nodeland-mcp"],
"env": {
"NODELAND_API_KEY": "YOUR_API_KEY"
}
}
}
}Claude Code
claude mcp add nodeland --env NODELAND_API_KEY=YOUR_API_KEY -- npx -y nodeland-mcpCursor
Cursor Settings → MCP → add server:
{
"mcpServers": {
"nodeland": {
"command": "npx",
"args": ["-y", "nodeland-mcp"],
"env": {
"NODELAND_API_KEY": "YOUR_API_KEY"
}
}
}
}Optional staging:
"NODELAND_BASE_URL": "https://staging.nodeland.io"3. Try it
Ask the agent:
Map the central concepts of [topic], put a short markdown description on each node, and give me the NodeLand link.
Then open the URL in a private/incognito window — it should render without signing in.
Config
Env | Required | Default |
| yes | — |
| no |
|
The key is never logged. Missing key fails fast with a readable message.
Local development
git clone https://github.com/nodeland/nodeland-mcp.git
cd nodeland-mcp
npm install
npm run build
NODELAND_API_KEY=... npm startSmoke test (creates a public map and fetches the URL without credentials):
NODELAND_API_KEY=... NODELAND_BASE_URL=https://staging.nodeland.io npm run smokeInspector:
npx @modelcontextprotocol/inspector npx nodeland-mcpLicense
MIT
Available Tools
4 toolsadd_to_mapAdd concepts to an existing mapA
Append concepts and relations to an existing NodeLand map, preserving what is already there. Use across a conversation when the agent keeps discovering structure — this is how the map stays the durable artifact, not a one-shot dump.
| Name | Required | Description | Default |
|---|---|---|---|
| mapId | Yes | Existing map id | |
| concepts | No | New or updated concepts (matched by label) | |
| template | No | Named layout. Read the nodeland://templates resource if unsure which to pick. | StandardMindMapTemplate |
| relations | No | New relations; source/target may refer to existing labels |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for disclosing behavior. It usefully states that existing content is preserved and that the map is a 'durable artifact'. However, it omits important details such as what happens on duplicate concept labels (schema says 'new or updated'), whether the operation is idempotent, any required permissions, or the return payload. The description adds some value but not enough for full transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exactly two sentences, front-loaded with the main action and then the use-case context. Every sentence earns its place, with no filler or repetition of structured fields. It is well-structured and succinct.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the overall purpose and usage context, and the schema fully documents all parameters. It does not explain return values, error behavior, or edge cases like invalid labels, but for an append-like tool with no output schema, the context is reasonably complete. The description is sufficient for the primary use case of incrementally building a map.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add meaning beyond the schema; it merely names concepts and relations, which are already defined in the schema. It does not elaborate on parameter formats, defaults, or the template enum beyond what the schema already provides. Hence, the description does not elevate parameter understanding beyond the structured data.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Append concepts and relations to an existing NodeLand map'. It explicitly distinguishes from siblings by emphasizing it modifies an existing map rather than creating a new one (create_map) or retrieving (get_map/list_maps). The detail 'preserving what is already there' further clarifies its additive scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells when to use the tool: 'Use across a conversation when the agent keeps discovering structure'. It implies the alternative is a one-shot action (likely create_map) by saying 'not a one-shot dump'. It does not explicitly name alternatives or state when not to use it, but the context is clear enough for an agent to make a reasonable choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_mapCreate NodeLand mapA
Create a persistent, shareable NodeLand map from concepts and relations. Use when the user wants a mind map, concept map, organogram, or study map they can open later and edit by hand. Do not invent Cytoscape JSON or coordinates — pass concepts/relations and a named template. After success, give the user the returned url.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Map title | |
| concepts | Yes | Nodes. Labels must be unique. | |
| isPublic | No | Defaults to true so the returned link works without login. Set false only if the user asks for a private map. | |
| language | No | Optional BCP-47 language tag, e.g. en or pt | |
| template | No | Named layout. Read the nodeland://templates resource if unsure which to pick. | StandardMindMapTemplate |
| relations | No | Edges between concepts, keyed by label |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the map is persistent, shareable, returns a URL to give the user, and warns against inventing JSON/coordinates. However, it omits details like permission requirements, failure modes, or whether existing maps are overwritten. It adds some useful context but not rich behavioral coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose, then usage guidance, constraints, and post-success action. Every sentence earns its place, with no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter creation tool with no output schema, the description covers the key aspects: what it does, when to use, a critical constraint, and the next step after success (give the URL). It does not describe the full return structure or error handling, but it adequately addresses the main operational need.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 all six parameters. The description only reinforces the use of concepts/relations and a named template, adding little beyond the schema. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a persistent, shareable NodeLand map, with specific use cases (mind map, concept map, organogram, study map). This distinguishes it from sibling tools like add_to_map and get_map by focusing on creation of a new, standalone artifact.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use when the user wants a mind map, concept map, organogram, or study map they can open later and edit by hand.' It also provides a concrete 'do not' instruction (invent Cytoscape JSON/coordinates). However, it does not explicitly mention when not to use it or name alternative tools for adding to existing maps, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_mapGet map summaryA
Fetch a NodeLand map as a compact concepts/relations summary (not raw Cytoscape JSON). Use before editing an existing map or to remind yourself what is already on it.
| Name | Required | Description | Default |
|---|---|---|---|
| mapId | Yes | Map id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It explains that the output is a compact summary rather than raw JSON, implying a transformed view. It does not explicitly state read-only behavior, but 'Fetch' strongly suggests it. This is adequate for a simple retrieval tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The first sentence front-loads the action and output type; the second provides usage context. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no output schema, the description is complete enough. It explains what is returned, when to use it, and how it differs from raw JSON. It does not detail the exact structure of the summary, but that would likely be over-specification for this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully describes mapId as 'Map id' (100% coverage). The description adds context that mapId refers to an existing NodeLand map, but does not specify format or constraints beyond that. This is a marginal improvement over the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches a NodeLand map as a compact concepts/relations summary, explicitly contrasting with raw Cytoscape JSON. This distinguishes it from siblings like list_maps and create_map by focusing on the summary output and its use for review.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance: 'Use before editing an existing map or to remind yourself what is already on it.' While it does not name alternative tools or state when not to use it, the context is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_mapsList NodeLand mapsA
List maps owned by the API key's user. Use to find an existing map id before get_map or add_to_map.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20, max 100) | |
| search | No | Optional name/description search |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description provides some behavioral context by scoping results to 'the API key's user', but it omits other behavioral details like pagination behavior or error responses. There is no contradiction with annotations (none provided).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no redundancy. The first sentence states the core function, and the second adds practical usage context. It is front-loaded and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no output schema and fully documented parameters, the description covers the essential purpose, ownership scope, and a practical use case. It could mention sorting or default pagination, but those are already in the schema, so the description is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema provides full descriptions for both parameters (limit and search), so schema coverage is 100%. The description adds no parameter-specific semantics beyond what the schema already provides, earning the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: listing maps owned by the API key's user. The verb 'list' and resource 'maps' are specific, and it differentiates from siblings (create_map, get_map, add_to_map) by focusing on enumeration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises usage 'before get_map or add_to_map' to find an existing map id, giving a clear when-to-use directive. This distinguishes it from alternatives and provides practical context.
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.
4 tool updates
v0.1.0- First observed
add_to_map - First observed
create_map - First observed
get_map - First observed
list_maps
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose: create a new map, add to an existing map, fetch one map, and list all maps. There is no overlap or ambiguity between them.
All tool names follow a consistent verb_noun pattern: create_map, add_to_map, get_map, list_maps. The names are predictable and clearly indicate the action and resource.
Four tools is well-scoped for a focused map management server. Each tool covers a core operation without unnecessary bloat or fragmentation.
The lifecycle covers create, read, update (via add_to_map), and list operations. The only notable gap is a delete/remove operation, but it may be intentionally omitted since maps are shareable and editable externally.
Maintenance
Related MCP Connectors
Capability registry for the agentic economy. Semantic search over verified MCP server listings.
- UnifAPIOAuthcom.unifapi
Hosted MCP server for live public-data APIs and Skills for AI agents.
Cloud-hosted MCP server for durable AI memory
Turn outlines and hierarchical notes into interactive mind maps through a hosted remote MCP server.
Related MCP Servers
- AlicenseDqualityDmaintenanceAn MCP server that enables users to generate structured XMind mind maps with hierarchical topics, notes, and labels through natural language. It features automatic file saving to the local Documents folder and can automatically open generated maps in the XMind application.1331MIT
- AlicenseNot gradedqualityBmaintenanceAn MCP server that lets coding agents build and query a persistent knowledge graph of concepts, architecture, and decisions, enabling them to remember across sessions.265545MIT
- FlicenseNot gradedqualityDmaintenanceAn MCP server exposing Kiuwo's mind map APIs as tools for creating, searching, expanding, and fetching mind maps.1-
- AlicenseNot gradedqualityBmaintenanceOfficial MCP server for creating, reading, and updating mind maps on coret.id from AI agents. Changes appear live in the Coret editor.MIT