gradeNot graded
get_map_stateAnswer
Returns the current argument map: all nodes (claims, supports, objections, rebuttals), edges connecting them, and metadata about the debate topic and sides. Call this first to orient yourself before making changes.
View tool JSON
{
"name": "get_map_state",
"kind": "answer",
"impl": "imperative",
"description": "Returns the current argument map: all nodes (claims, supports, objections, rebuttals), edges connecting them, and metadata about the debate topic and sides. Call this first to orient yourself before making changes.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}get_nodeAnswer
Get full details of a specific argument node, including what it connects to and from.
View tool JSON
{
"name": "get_node",
"kind": "answer",
"impl": "imperative",
"description": "Get full details of a specific argument node, including what it connects to and from.",
"inputSchema": {
"type": "object",
"properties": {
"node_id": {
"type": "string",
"description": "The ID of the node to retrieve"
}
},
"required": [
"node_id"
],
"additionalProperties": false
}
}get_weak_pointsAnswer
Analyse the argument map and return nodes that are logically weak, unevidenced, or that contain logical fallacies. Use this to decide where to focus your objections.
View tool JSON
{
"name": "get_weak_points",
"kind": "answer",
"impl": "imperative",
"description": "Analyse the argument map and return nodes that are logically weak, unevidenced, or that contain logical fallacies. Use this to decide where to focus your objections.",
"inputSchema": {
"type": "object",
"properties": {
"side": {
"type": "string",
"enum": [
"pro",
"con",
"all"
],
"description": "Which side to analyse. Default: all"
}
},
"additionalProperties": false
}
}add_claimAction
Add a new claim (assertion) to the argument map. Use for root positions or standalone propositions not yet connected to other nodes. Claims are the building blocks — supports and objections attach to them.
View tool JSON
{
"name": "add_claim",
"kind": "act",
"impl": "imperative",
"description": "Add a new claim (assertion) to the argument map. Use for root positions or standalone propositions not yet connected to other nodes. Claims are the building blocks — supports and objections attach to them.",
"inputSchema": {
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "The claim text. Be concise — 1–2 sentences max."
},
"side": {
"type": "string",
"enum": [
"pro",
"con",
"neutral"
],
"description": "Which side of the debate this claim belongs to."
},
"strength": {
"type": "number",
"description": "Your assessment of the claim's logical strength: 1 (very weak) to 5 (very strong).",
"minimum": 1,
"maximum": 5
}
},
"required": [
"text",
"side",
"strength"
],
"additionalProperties": false
}
}add_supportAction
Add a supporting argument or piece of evidence for an existing node. Creates the node and draws a "supports" edge from it to the target.
View tool JSON
{
"name": "add_support",
"kind": "act",
"impl": "imperative",
"description": "Add a supporting argument or piece of evidence for an existing node. Creates the node and draws a \"supports\" edge from it to the target.",
"inputSchema": {
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "The supporting argument or evidence."
},
"supports_id": {
"type": "string",
"description": "ID of the node this supports."
},
"side": {
"type": "string",
"enum": [
"pro",
"con",
"neutral"
]
},
"strength": {
"type": "number",
"minimum": 1,
"maximum": 5
}
},
"required": [
"text",
"supports_id",
"side",
"strength"
],
"additionalProperties": false
}
}add_objectionAction
Add an objection challenging an existing claim or argument. Creates the node and draws an "objects_to" edge from it to the target. This is your primary tool for challenging the user's arguments.
View tool JSON
{
"name": "add_objection",
"kind": "act",
"impl": "imperative",
"description": "Add an objection challenging an existing claim or argument. Creates the node and draws an \"objects_to\" edge from it to the target. This is your primary tool for challenging the user's arguments.",
"inputSchema": {
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "The objection. Be specific — name the exact flaw."
},
"objects_to_id": {
"type": "string",
"description": "ID of the node being objected to."
},
"side": {
"type": "string",
"enum": [
"pro",
"con",
"neutral"
]
},
"strength": {
"type": "number",
"minimum": 1,
"maximum": 5
},
"fallacy": {
"type": "string",
"description": "Optional: if the targeted node contains a logical fallacy, name it here (e.g. \"ad hominem\", \"straw man\", \"false dichotomy\", \"appeal to authority\", \"slippery slope\")."
}
},
"required": [
"text",
"objects_to_id",
"side",
"strength"
],
"additionalProperties": false
}
}add_rebuttalAction
Add a rebuttal that directly responds to an objection or counter-argument. Creates a "rebuts" edge. Use this to defend a position after the other side has objected.
View tool JSON
{
"name": "add_rebuttal",
"kind": "act",
"impl": "imperative",
"description": "Add a rebuttal that directly responds to an objection or counter-argument. Creates a \"rebuts\" edge. Use this to defend a position after the other side has objected.",
"inputSchema": {
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "The rebuttal."
},
"rebuts_id": {
"type": "string",
"description": "ID of the objection being rebutted."
},
"side": {
"type": "string",
"enum": [
"pro",
"con",
"neutral"
]
},
"strength": {
"type": "number",
"minimum": 1,
"maximum": 5
}
},
"required": [
"text",
"rebuts_id",
"side",
"strength"
],
"additionalProperties": false
}
}rate_nodeAction
Update the strength rating of an argument node. Use after you've considered new evidence or after the argument has evolved. Lower ratings appear visually weaker on the canvas.
View tool JSON
{
"name": "rate_node",
"kind": "act",
"impl": "imperative",
"description": "Update the strength rating of an argument node. Use after you've considered new evidence or after the argument has evolved. Lower ratings appear visually weaker on the canvas.",
"inputSchema": {
"type": "object",
"properties": {
"node_id": {
"type": "string"
},
"strength": {
"type": "number",
"minimum": 1,
"maximum": 5,
"description": "1 = very weak / easily defeated, 5 = very strong / near-irrefutable"
},
"reason": {
"type": "string",
"description": "Why you're changing the rating. Shown as a tooltip."
}
},
"required": [
"node_id",
"strength"
],
"additionalProperties": false
}
}highlight_nodeAction
Highlight a specific node on the canvas to draw the user's attention to it — useful when you're about to object to it or want to discuss it. Pass null to clear all highlights.
View tool JSON
{
"name": "highlight_node",
"kind": "act",
"impl": "imperative",
"description": "Highlight a specific node on the canvas to draw the user's attention to it — useful when you're about to object to it or want to discuss it. Pass null to clear all highlights.",
"inputSchema": {
"type": "object",
"properties": {
"node_id": {
"type": [
"string",
"null"
],
"description": "ID of node to highlight, or null to clear."
},
"message": {
"type": "string",
"description": "Optional: message to display in a callout near the highlighted node."
}
},
"additionalProperties": false
}
}flag_fallacyAction
Flag a node as containing a specific logical fallacy. The node will be visually marked on the canvas. Use precise fallacy names.
View tool JSON
{
"name": "flag_fallacy",
"kind": "act",
"impl": "imperative",
"description": "Flag a node as containing a specific logical fallacy. The node will be visually marked on the canvas. Use precise fallacy names.",
"inputSchema": {
"type": "object",
"properties": {
"node_id": {
"type": "string"
},
"fallacy": {
"type": "string",
"description": "Name of the logical fallacy. Common ones: ad hominem, straw man, false dichotomy, slippery slope, appeal to authority, circular reasoning, hasty generalisation, red herring, tu quoque, post hoc, burden of proof."
},
"explanation": {
"type": "string",
"description": "Brief explanation of why this fallacy applies here."
}
},
"required": [
"node_id",
"fallacy"
],
"additionalProperties": false
}
}set_topicAction
Set or update the debate topic displayed at the top of the canvas. Use this at the start of a session to frame the argument.
View tool JSON
{
"name": "set_topic",
"kind": "act",
"impl": "imperative",
"description": "Set or update the debate topic displayed at the top of the canvas. Use this at the start of a session to frame the argument.",
"inputSchema": {
"type": "object",
"properties": {
"topic": {
"type": "string",
"description": "The debate topic or question. E.g. \"Should AI-generated content require disclosure?\""
},
"agent_side": {
"type": "string",
"enum": [
"pro",
"con"
],
"description": "Which side the agent will argue. The user will argue the other side."
}
},
"required": [
"topic",
"agent_side"
],
"additionalProperties": false
}
}clear_mapAction
Clear all nodes and edges from the canvas, starting fresh. The topic is preserved. Use with caution — this cannot be undone.
View tool JSON
{
"name": "clear_map",
"kind": "act",
"impl": "imperative",
"description": "Clear all nodes and edges from the canvas, starting fresh. The topic is preserved. Use with caution — this cannot be undone.",
"inputSchema": {
"type": "object",
"properties": {
"confirm": {
"type": "boolean",
"description": "Must be true to confirm the clear."
}
},
"required": [
"confirm"
],
"additionalProperties": false
}
}