← WebMCP Directory

Tool tree

nodebook.tinyinternet.dev

Productivity & BusinessTools verified
Website
A local-first infinite workspace where people and their agents research, scope, trace, and learn together.
Explore capabilities
    get_workspaceAnswer

    Return the current workspace, its maps, delivery progress, selection, and pending human intent.

    View tool JSON
    {
      "name": "get_workspace",
      "kind": "answer",
      "impl": "imperative",
      "description": "Return the current workspace, its maps, delivery progress, selection, and pending human intent.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {}
      }
    }
    get_mapAnswer

    Return the requested map or active map with compact nodes and edges.

    View tool JSON
    {
      "name": "get_map",
      "kind": "answer",
      "impl": "imperative",
      "description": "Return the requested map or active map with compact nodes and edges.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "mapId": {
            "type": "string",
            "maxLength": 160
          },
          "includeEvidence": {
            "type": "boolean"
          }
        }
      }
    }
    get_nodeAnswer

    Return full node details, citations or evidence, comments, and any maps linked from it.

    View tool JSON
    {
      "name": "get_node",
      "kind": "answer",
      "impl": "imperative",
      "description": "Return full node details, citations or evidence, comments, and any maps linked from it.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "nodeId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160
          }
        },
        "required": [
          "nodeId"
        ]
      }
    }
    get_selectionAnswer

    Return the nodes selected by the human and any pending Trace or Learn intent.

    View tool JSON
    {
      "name": "get_selection",
      "kind": "answer",
      "impl": "imperative",
      "description": "Return the nodes selected by the human and any pending Trace or Learn intent.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {}
      }
    }
    search_nodesAnswer

    Search node titles, descriptions, tags, evidence, and comments across the workspace.

    View tool JSON
    {
      "name": "search_nodes",
      "kind": "answer",
      "impl": "imperative",
      "description": "Search node titles, descriptions, tags, evidence, and comments across the workspace.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "query": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "mapId": {
            "type": "string",
            "maxLength": 160
          },
          "kinds": {
            "type": "array",
            "maxItems": 9,
            "items": {
              "type": "string",
              "enum": [
                "project",
                "group",
                "feature",
                "step",
                "code",
                "concept",
                "question",
                "note",
                "exercise"
              ]
            }
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50
          }
        },
        "required": [
          "query"
        ]
      }
    }
    create_mapAction

    Batch-create a source-backed build, trace, or learn map, link it to a node, lay it out, save it, and optionally open it.

    View tool JSON
    {
      "name": "create_map",
      "kind": "act",
      "impl": "imperative",
      "description": "Batch-create a source-backed build, trace, or learn map, link it to a node, lay it out, save it, and optionally open it.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "title": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "kind": {
            "type": "string",
            "enum": [
              "build",
              "trace",
              "learn"
            ]
          },
          "parentNodeId": {
            "type": "string",
            "maxLength": 160
          },
          "nodes": {
            "type": "array",
            "minItems": 1,
            "maxItems": 100,
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 160
                },
                "kind": {
                  "type": "string",
                  "enum": [
                    "project",
                    "group",
                    "feature",
                    "step",
                    "code",
                    "concept",
                    "question",
                    "note",
                    "exercise"
                  ]
                },
                "title": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 120
                },
                "description": {
                  "type": "string",
                  "maxLength": 1200
                },
                "quiz": {
                  "type": "object",
                  "description": "Required for question nodes. The correct answer is a zero-based index into choices.",
                  "additionalProperties": false,
                  "properties": {
                    "choices": {
                      "type": "array",
                      "minItems": 2,
                      "maxItems": 6,
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 240
                      }
                    },
                    "correctChoiceIndex": {
                      "type": "integer",
                      "minimum": 0
                    },
                    "explanation": {
                      "type": "string",
                      "maxLength": 600
                    }
                  },
                  "required": [
                    "choices",
                    "correctChoiceIndex"
                  ]
                },
                "x": {
                  "type": "number"
                },
                "y": {
                  "type": "number"
                },
                "tags": {
                  "type": "array",
                  "maxItems": 20,
                  "items": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 48
                  }
                },
                "locked": {
                  "type": "boolean"
                },
                "evidence": {
                  "type": "array",
                  "maxItems": 20,
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "kind": {
                        "type": "string",
                        "enum": [
                          "source_url",
                          "file",
                          "test",
                          "commit",
                          "note"
                        ]
                      },
                      "label": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 240
                      },
                      "ref": {
                        "type": "string",
                        "maxLength": 2048
                      },
                      "note": {
                        "type": "string",
                        "maxLength": 1000
                      }
                    },
                    "required": [
                      "kind",
                      "label",
                      "ref"
                    ]
                  }
                }
              },
              "required": [
                "id",
                "kind",
                "title"
              ]
            }
          },
          "edges": {
            "type": "array",
            "maxItems": 200,
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 160
                },
                "source": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 160
                },
                "target": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 160
                },
                "relation": {
                  "type": "string",
                  "enum": [
                    "contains",
                    "implements",
                    "flows_to",
                    "depends_on",
                    "prerequisite",
                    "related_to"
                  ]
                },
                "label": {
                  "type": "string",
                  "maxLength": 120
                }
              },
              "required": [
                "source",
                "target",
                "relation"
              ]
            }
          },
          "activate": {
            "type": "boolean"
          }
        },
        "required": [
          "title",
          "kind",
          "nodes"
        ]
      }
    }
    upsert_graphAction

    Add or update nodes and edges in a map without replacing it. Locked nodes are skipped.

    View tool JSON
    {
      "name": "upsert_graph",
      "kind": "act",
      "impl": "imperative",
      "description": "Add or update nodes and edges in a map without replacing it. Locked nodes are skipped.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "mapId": {
            "type": "string",
            "maxLength": 160
          },
          "nodes": {
            "type": "array",
            "maxItems": 100,
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 160
                },
                "kind": {
                  "type": "string",
                  "enum": [
                    "project",
                    "group",
                    "feature",
                    "step",
                    "code",
                    "concept",
                    "question",
                    "note",
                    "exercise"
                  ]
                },
                "title": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 120
                },
                "description": {
                  "type": "string",
                  "maxLength": 1200
                },
                "quiz": {
                  "type": "object",
                  "description": "Required for question nodes. The correct answer is a zero-based index into choices.",
                  "additionalProperties": false,
                  "properties": {
                    "choices": {
                      "type": "array",
                      "minItems": 2,
                      "maxItems": 6,
                      "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 240
                      }
                    },
                    "correctChoiceIndex": {
                      "type": "integer",
                      "minimum": 0
                    },
                    "explanation": {
                      "type": "string",
                      "maxLength": 600
                    }
                  },
                  "required": [
                    "choices",
                    "correctChoiceIndex"
                  ]
                },
                "x": {
                  "type": "number"
                },
                "y": {
                  "type": "number"
                },
                "tags": {
                  "type": "array",
                  "maxItems": 20,
                  "items": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 48
                  }
                },
                "locked": {
                  "type": "boolean"
                },
                "evidence": {
                  "type": "array",
                  "maxItems": 20,
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "kind": {
                        "type": "string",
                        "enum": [
                          "source_url",
                          "file",
                          "test",
                          "commit",
                          "note"
                        ]
                      },
                      "label": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 240
                      },
                      "ref": {
                        "type": "string",
                        "maxLength": 2048
                      },
                      "note": {
                        "type": "string",
                        "maxLength": 1000
                      }
                    },
                    "required": [
                      "kind",
                      "label",
                      "ref"
                    ]
                  }
                }
              },
              "required": [
                "id",
                "kind",
                "title"
              ]
            }
          },
          "edges": {
            "type": "array",
            "maxItems": 200,
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 160
                },
                "source": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 160
                },
                "target": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 160
                },
                "relation": {
                  "type": "string",
                  "enum": [
                    "contains",
                    "implements",
                    "flows_to",
                    "depends_on",
                    "prerequisite",
                    "related_to"
                  ]
                },
                "label": {
                  "type": "string",
                  "maxLength": 120
                }
              },
              "required": [
                "source",
                "target",
                "relation"
              ]
            }
          },
          "autoLayout": {
            "type": "boolean"
          }
        }
      }
    }
    set_scope_decisionsAction

    Batch mark features proposed, included, or excluded. Exclusions require a rationale; locked features are skipped.

    View tool JSON
    {
      "name": "set_scope_decisions",
      "kind": "act",
      "impl": "imperative",
      "description": "Batch mark features proposed, included, or excluded. Exclusions require a rationale; locked features are skipped.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "updates": {
            "type": "array",
            "minItems": 1,
            "maxItems": 100,
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "nodeId": {
                  "type": "string",
                  "maxLength": 160
                },
                "state": {
                  "type": "string",
                  "enum": [
                    "proposed",
                    "included",
                    "excluded"
                  ]
                },
                "rationale": {
                  "type": "string",
                  "maxLength": 500
                }
              },
              "required": [
                "nodeId",
                "state"
              ]
            }
          }
        },
        "required": [
          "updates"
        ]
      }
    }
    set_delivery_statusesAction

    Batch update included feature delivery status and optionally attach file, test, commit, URL, or note evidence.

    View tool JSON
    {
      "name": "set_delivery_statuses",
      "kind": "act",
      "impl": "imperative",
      "description": "Batch update included feature delivery status and optionally attach file, test, commit, URL, or note evidence.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "updates": {
            "type": "array",
            "minItems": 1,
            "maxItems": 100,
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "nodeId": {
                  "type": "string",
                  "maxLength": 160
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "not_started",
                    "partial",
                    "complete"
                  ]
                },
                "evidence": {
                  "type": "array",
                  "maxItems": 20,
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "kind": {
                        "type": "string",
                        "enum": [
                          "source_url",
                          "file",
                          "test",
                          "commit",
                          "note"
                        ]
                      },
                      "label": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 240
                      },
                      "ref": {
                        "type": "string",
                        "maxLength": 2048
                      },
                      "note": {
                        "type": "string",
                        "maxLength": 1000
                      }
                    },
                    "required": [
                      "kind",
                      "label",
                      "ref"
                    ]
                  }
                }
              },
              "required": [
                "nodeId",
                "status"
              ]
            }
          }
        },
        "required": [
          "updates"
        ]
      }
    }
    set_learning_statesAction

    Batch mark concepts unknown, learning, or known; optionally lock the concepts after updating them.

    View tool JSON
    {
      "name": "set_learning_states",
      "kind": "act",
      "impl": "imperative",
      "description": "Batch mark concepts unknown, learning, or known; optionally lock the concepts after updating them.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "updates": {
            "type": "array",
            "minItems": 1,
            "maxItems": 100,
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "nodeId": {
                  "type": "string",
                  "maxLength": 160
                },
                "state": {
                  "type": "string",
                  "enum": [
                    "unknown",
                    "learning",
                    "known"
                  ]
                },
                "locked": {
                  "type": "boolean"
                }
              },
              "required": [
                "nodeId",
                "state"
              ]
            }
          }
        },
        "required": [
          "updates"
        ]
      }
    }
    add_evidenceAction

    Attach research source URLs or later file, test, commit, and note evidence to an unlocked node.

    View tool JSON
    {
      "name": "add_evidence",
      "kind": "act",
      "impl": "imperative",
      "description": "Attach research source URLs or later file, test, commit, and note evidence to an unlocked node.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "nodeId": {
            "type": "string",
            "maxLength": 160
          },
          "evidence": {
            "type": "array",
            "minItems": 1,
            "maxItems": 20,
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "kind": {
                  "type": "string",
                  "enum": [
                    "source_url",
                    "file",
                    "test",
                    "commit",
                    "note"
                  ]
                },
                "label": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 240
                },
                "ref": {
                  "type": "string",
                  "maxLength": 2048
                },
                "note": {
                  "type": "string",
                  "maxLength": 1000
                }
              },
              "required": [
                "kind",
                "label",
                "ref"
              ]
            }
          }
        },
        "required": [
          "nodeId",
          "evidence"
        ]
      }
    }
    list_commentsAnswer

    List human and agent comments attached to nodes, optionally filtered by node or map.

    View tool JSON
    {
      "name": "list_comments",
      "kind": "answer",
      "impl": "imperative",
      "description": "List human and agent comments attached to nodes, optionally filtered by node or map.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "nodeId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160
          },
          "mapId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160
          }
        }
      }
    }
    add_commentAction

    Add a comment to a node under the calling agent's name. Set agentName to your own identity.

    View tool JSON
    {
      "name": "add_comment",
      "kind": "act",
      "impl": "imperative",
      "description": "Add a comment to a node under the calling agent's name. Set agentName to your own identity.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "nodeId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160
          },
          "body": {
            "type": "string",
            "minLength": 1,
            "maxLength": 10000
          },
          "agentName": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80,
            "description": "The agent's display name, such as Codex or Claude."
          }
        },
        "required": [
          "nodeId",
          "body",
          "agentName"
        ]
      }
    }
    focus_nodesAction

    Select nodes and fit the live canvas viewport around them without changing durable workspace data.

    View tool JSON
    {
      "name": "focus_nodes",
      "kind": "act",
      "impl": "imperative",
      "description": "Select nodes and fit the live canvas viewport around them without changing durable workspace data.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "nodeIds": {
            "type": "array",
            "minItems": 1,
            "maxItems": 100,
            "items": {
              "type": "string",
              "maxLength": 160
            }
          }
        },
        "required": [
          "nodeIds"
        ]
      }
    }
    highlight_pathAction

    Highlight an ordered set of nodes using focus, risk, or success styling and fit them in view.

    View tool JSON
    {
      "name": "highlight_path",
      "kind": "act",
      "impl": "imperative",
      "description": "Highlight an ordered set of nodes using focus, risk, or success styling and fit them in view.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "nodeIds": {
            "type": "array",
            "minItems": 1,
            "maxItems": 100,
            "items": {
              "type": "string",
              "maxLength": 160
            }
          },
          "tone": {
            "type": "string",
            "enum": [
              "focus",
              "risk",
              "success"
            ]
          }
        },
        "required": [
          "nodeIds",
          "tone"
        ]
      }
    }