Skip to main content
Glama
ThinkFar

Clear Thought Server

scientificmethod

Apply structured scientific reasoning to solve problems by guiding users through hypothesis testing, variable identification, and evidence evaluation. Ideal for systematic inquiry and decision-making.

Instructions

A detailed tool for applying formal scientific reasoning to questions and problems. This tool guides models through the scientific method with structured hypothesis testing. It enforces explicit variable identification, prediction making, and evidence evaluation.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
analysisNo
conclusionNo
experimentNo
hypothesisNo
inquiryIdYesUnique identifier for this scientific inquiry
iterationYesCurrent iteration of the scientific process
nextStageNeededYesWhether another stage is needed in the process
observationNo
questionNo
stageYes

Implementation Reference

  • Core handler function that processes the scientificmethod tool input: validates data, processes hypothesis and experiment, formats detailed output with chalk colors, logs it, and returns structured JSON status response.
    public processScientificMethod(input: unknown): { content: Array<{ type: string; text: string }>; isError?: boolean } { try { const validatedData = this.validateInputData(input); const processedData: ScientificInquiryData = { ...validatedData, hypothesis: this.processHypothesis(validatedData.hypothesis), experiment: this.processExperiment(validatedData.experiment) }; const formattedOutput = this.formatOutput(processedData); console.error(formattedOutput); return { content: [{ type: "text", text: JSON.stringify({ stage: processedData.stage, inquiryId: processedData.inquiryId, iteration: processedData.iteration, nextStageNeeded: processedData.nextStageNeeded, 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 }; } }
  • Defines the Tool object for 'scientificmethod' including detailed input schema specifying stages (observation to conclusion), structured hypothesis and experiment objects, required fields like inquiryId, iteration, and nextStageNeeded.
    const SCIENTIFIC_METHOD_TOOL: Tool = { name: "scientificmethod", description: `A detailed tool for applying formal scientific reasoning to questions and problems. This tool guides models through the scientific method with structured hypothesis testing. It enforces explicit variable identification, prediction making, and evidence evaluation.`, inputSchema: { type: "object", properties: { stage: { type: "string", enum: [ "observation", "question", "hypothesis", "experiment", "analysis", "conclusion", "iteration", ], }, observation: { type: "string" }, question: { type: "string" }, hypothesis: { type: "object", properties: { statement: { type: "string" }, variables: { type: "array", items: { type: "object", properties: { name: { type: "string" }, type: { type: "string", enum: [ "independent", "dependent", "controlled", "confounding", ], }, operationalization: { type: "string" }, }, required: ["name", "type"], }, }, assumptions: { type: "array", items: { type: "string" } }, hypothesisId: { type: "string" }, confidence: { type: "number", minimum: 0, maximum: 1 }, domain: { type: "string" }, iteration: { type: "number", minimum: 0 }, alternativeTo: { type: "array", items: { type: "string" } }, refinementOf: { type: "string" }, status: { type: "string", enum: [ "proposed", "testing", "supported", "refuted", "refined", ], }, }, required: [ "statement", "variables", "assumptions", "hypothesisId", "confidence", "domain", "iteration", "status", ], }, experiment: { type: "object", properties: { design: { type: "string" }, methodology: { type: "string" }, predictions: { type: "array", items: { type: "object", properties: { if: { type: "string" }, then: { type: "string" }, else: { type: "string" }, }, required: ["if", "then"], }, }, experimentId: { type: "string" }, hypothesisId: { type: "string" }, controlMeasures: { type: "array", items: { type: "string" }, }, results: { type: "string" }, outcomeMatched: { type: "boolean" }, unexpectedObservations: { type: "array", items: { type: "string" }, }, limitations: { type: "array", items: { type: "string" } }, nextSteps: { type: "array", items: { type: "string" } }, }, required: [ "design", "methodology", "predictions", "experimentId", "hypothesisId", "controlMeasures", ], }, analysis: { type: "string" }, conclusion: { type: "string" }, inquiryId: { type: "string", description: "Unique identifier for this scientific inquiry", }, iteration: { type: "number", minimum: 0, description: "Current iteration of the scientific process", }, nextStageNeeded: { type: "boolean", description: "Whether another stage is needed in the process", }, }, required: ["stage", "inquiryId", "iteration", "nextStageNeeded"], }, };
  • src/index.ts:1137-1149 (registration)
    Registers the handler dispatch for 'scientificmethod' tool calls in the CallToolRequestSchema handler, delegating to scientificMethodServer.processScientificMethod and formatting result as text content.
    case "scientificmethod": { const result = scientificMethodServer.processScientificMethod( request.params.arguments ); return { content: [ { type: "text", text: JSON.stringify(result, null, 2), }, ], }; }
  • src/index.ts:996-1010 (registration)
    Registers the 'scientificmethod' tool in the server's capabilities.tools dictionary using the SCIENTIFIC_METHOD_TOOL definition.
    capabilities: { tools: { sequentialthinking: SEQUENTIAL_THINKING_TOOL, mentalmodel: MENTAL_MODEL_TOOL, designpattern: DESIGN_PATTERN_TOOL, programmingparadigm: PROGRAMMING_PARADIGM_TOOL, debuggingapproach: DEBUGGING_APPROACH_TOOL, collaborativereasoning: COLLABORATIVE_REASONING_TOOL, decisionframework: DECISION_FRAMEWORK_TOOL, metacognitivemonitoring: METACOGNITIVE_MONITORING_TOOL, scientificmethod: SCIENTIFIC_METHOD_TOOL, structuredargumentation: STRUCTURED_ARGUMENTATION_TOOL, visualreasoning: VISUAL_REASONING_TOOL, }, },
  • src/index.ts:986-986 (registration)
    Instantiates the ScientificMethodServer class instance used to handle scientificmethod tool calls.
    const scientificMethodServer = new ScientificMethodServer();

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