Skip to main content
Glama
ThinkFar

Clear Thought Server

structuredargumentation

Analyze and structure complex arguments systematically by creating, critiquing, and synthesizing competing claims. Supports formal reasoning to enhance decision-making and dialectical analysis.

Instructions

A detailed tool for systematic dialectical reasoning and argument analysis. This tool helps analyze complex questions through formal argumentation structures. It facilitates the creation, critique, and synthesis of competing arguments.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
argumentIdNoOptional unique identifier for this argument
argumentTypeYes
claimYes
conclusionYes
confidenceYesConfidence level in this argument (0.0-1.0)
contradictsNoIDs of arguments this contradicts
nextArgumentNeededYesWhether another argument is needed in the dialectic
premisesYes
respondsToNoID of the argument this directly responds to
strengthsNoNotable strong points of the argument
suggestedNextTypesNoSuggested types for the next argument
supportsNoIDs of arguments this supports
weaknessesNoNotable weak points of the argument

Implementation Reference

  • The main handler function that executes the structuredargumentation tool logic: validates input using ArgumentData type, processes and formats the argumentation data, logs formatted output, and returns JSON-structured response or error.
    public processStructuredArgumentation(input: unknown): { content: Array<{ type: string; text: string }>; isError?: boolean } { try { const validatedData = this.validateInputData(input); const processedData: ArgumentData = { ...validatedData, supports: validatedData.supports || [], contradicts: validatedData.contradicts || [], strengths: validatedData.strengths || [], weaknesses: validatedData.weaknesses || [], suggestedNextTypes: validatedData.suggestedNextTypes || [] }; const formattedOutput = this.formatOutput(processedData); console.error(formattedOutput); return { content: [{ type: "text", text: JSON.stringify({ argumentType: processedData.argumentType, claim: processedData.claim, confidence: processedData.confidence, nextArgumentNeeded: processedData.nextArgumentNeeded, argumentId: processedData.argumentId || `arg-${Date.now()}`, status: 'success' }, null, 2) }] }; } catch (error) { return { content: [{ type: "text", text: JSON.stringify({ error: error instanceof Error ? error.message : String(error), status: 'failed' }, null, 2) }], isError: true }; } }
  • MCP Tool definition including name, description, and comprehensive inputSchema for structuredargumentation tool used for registration and validation.
    const STRUCTURED_ARGUMENTATION_TOOL: Tool = { name: "structuredargumentation", description: `A detailed tool for systematic dialectical reasoning and argument analysis. This tool helps analyze complex questions through formal argumentation structures. It facilitates the creation, critique, and synthesis of competing arguments.`, inputSchema: { type: "object", properties: { claim: { type: "string" }, premises: { type: "array", items: { type: "string" } }, conclusion: { type: "string" }, argumentId: { type: "string", description: "Optional unique identifier for this argument", }, argumentType: { type: "string", enum: [ "thesis", "antithesis", "synthesis", "objection", "rebuttal", ], }, confidence: { type: "number", minimum: 0, maximum: 1, description: "Confidence level in this argument (0.0-1.0)", }, respondsTo: { type: "string", description: "ID of the argument this directly responds to", }, supports: { type: "array", items: { type: "string" }, description: "IDs of arguments this supports", }, contradicts: { type: "array", items: { type: "string" }, description: "IDs of arguments this contradicts", }, strengths: { type: "array", items: { type: "string" }, description: "Notable strong points of the argument", }, weaknesses: { type: "array", items: { type: "string" }, description: "Notable weak points of the argument", }, nextArgumentNeeded: { type: "boolean", description: "Whether another argument is needed in the dialectic", }, suggestedNextTypes: { type: "array", items: { type: "string", enum: [ "thesis", "antithesis", "synthesis", "objection", "rebuttal", ], }, description: "Suggested types for the next argument", }, }, required: [ "claim", "premises", "conclusion", "argumentType", "confidence", "nextArgumentNeeded", ], }, };
  • src/index.ts:1150-1163 (registration)
    Tool dispatch/registration in the MCP server's CallToolRequestHandler switch statement, calling the handler with input arguments and formatting response.
    case "structuredargumentation": { const result = structuredArgumentationServer.processStructuredArgumentation( request.params.arguments ); return { content: [ { type: "text", text: JSON.stringify(result, null, 2), }, ], }; }
  • TypeScript interface defining the ArgumentData type used for internal validation and typing in the handler.
    export interface ArgumentData { claim: string; premises: string[]; conclusion: string; argumentId?: string; argumentType: | "thesis" | "antithesis" | "synthesis" | "objection" | "rebuttal"; confidence: number; respondsTo?: string; supports?: string[]; contradicts?: string[]; strengths?: string[]; weaknesses?: string[]; nextArgumentNeeded: boolean; suggestedNextTypes?: ( | "thesis" | "antithesis" | "synthesis" | "objection" | "rebuttal" )[]; }
  • src/index.ts:987-987 (registration)
    Instantiation of the StructuredArgumentationServer class instance used to handle tool calls.
    const structuredArgumentationServer = new StructuredArgumentationServer();
  • src/index.ts:1007-1007 (registration)
    Registration of the tool in the server's capabilities.tools object.
    structuredargumentation: STRUCTURED_ARGUMENTATION_TOOL,

Other Tools

Related Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ThinkFar/clear-thought-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server