Skip to main content
Glama
03-sequential-thinking-with-the-think-tool.md8.05 kB
# Sequential Thinking with the Think Tool ## CRITICAL: The Think Tool is MANDATORY **The 'think' tool must be your FIRST action when using BioMCP. This is not optional.** For detailed technical documentation on the think tool parameters and usage, see the [MCP Tools Reference - Think Tool](../user-guides/02-mcp-tools-reference.md#3-think). ## Why Sequential Thinking? Biomedical research is inherently complex, requiring systematic analysis of interconnected data from multiple sources. The think tool enforces a structured approach that: - **Prevents Information Overload**: Breaks complex queries into manageable steps - **Ensures Comprehensive Coverage**: Systematic thinking catches details that might be missed - **Documents Reasoning**: Creates an audit trail of research decisions - **Improves Accuracy**: Thoughtful planning leads to better search strategies ## Mandatory Usage Requirements 🚨 **REQUIRED USAGE:** - You MUST call 'think' BEFORE any search or fetch operations - EVERY biomedical research query requires thinking first - ALL multi-step analyses must begin with the think tool - ANY task using BioMCP tools requires prior planning with think ⚠️ **WARNING - Skipping the think tool will result in:** - Incomplete analysis - Poor search strategies - Missing critical connections - Suboptimal results - Frustrated users ## How to Use the Think Tool The think tool accepts these parameters: ```python think( thought="Your reasoning about the current step", thoughtNumber=1, # Sequential number starting from 1 totalThoughts=5, # Optional: estimated total thoughts needed nextThoughtNeeded=True # Set to False only when analysis is complete ) ``` ## Sequential Thinking Patterns ### Pattern 1: Initial Query Decomposition Always start by breaking down the user's query: ```python # User asks: "What are the treatment options for BRAF V600E melanoma?" think( thought="Breaking down query: Need to find 1) BRAF V600E mutation significance in melanoma, 2) approved treatments for BRAF-mutant melanoma, 3) clinical trials for new therapies, 4) resistance mechanisms and combination strategies", thoughtNumber=1, nextThoughtNeeded=True ) ``` ### Pattern 2: Search Strategy Planning Plan your data collection approach: ```python think( thought="Search strategy: First use gene_getter for BRAF context, then article_searcher for BRAF V600E melanoma treatments focusing on FDA-approved drugs, followed by trial_searcher for ongoing studies with BRAF inhibitors", thoughtNumber=2, nextThoughtNeeded=True ) ``` ### Pattern 3: Progressive Refinement Document findings and adjust strategy: ```python think( thought="Found 3 FDA-approved BRAF inhibitors (vemurafenib, dabrafenib, encorafenib). Need to search for combination therapies with MEK inhibitors based on resistance patterns identified in literature", thoughtNumber=3, nextThoughtNeeded=True ) ``` ### Pattern 4: Synthesis Planning Before creating final output: ```python think( thought="Ready to synthesize: Will organize findings into 1) First-line treatments (BRAF+MEK combos), 2) Second-line options (immunotherapy), 3) Emerging therapies from trials, 4) Resistance mechanisms to consider", thoughtNumber=4, nextThoughtNeeded=False # Analysis complete ) ``` ## Common Think Tool Workflows ### Literature Review Workflow ```python # Step 1: Problem definition think(thought="User wants comprehensive review of CDK4/6 inhibitors in breast cancer...", thoughtNumber=1) # Step 2: Search parameters think(thought="Will search for palbociclib, ribociclib, abemaciclib in HR+/HER2- breast cancer...", thoughtNumber=2) # Step 3: Quality filtering think(thought="Found 47 articles, filtering for Phase III trials and meta-analyses...", thoughtNumber=3) # Step 4: Evidence synthesis think(thought="Identified consistent PFS benefit across trials, now analyzing OS data...", thoughtNumber=4) ``` ### Clinical Trial Analysis Workflow ```python # Step 1: Criteria identification think(thought="Patient has EGFR L858R lung cancer, progressed on osimertinib...", thoughtNumber=1) # Step 2: Trial search strategy think(thought="Searching for trials accepting EGFR-mutant NSCLC after TKI resistance...", thoughtNumber=2) # Step 3: Eligibility assessment think(thought="Found 12 trials, checking for brain metastases eligibility...", thoughtNumber=3) # Step 4: Prioritization think(thought="Ranking trials by proximity, novel mechanisms, and enrollment status...", thoughtNumber=4) ``` ### Variant Interpretation Workflow ```python # Step 1: Variant identification think(thought="Analyzing TP53 R248Q mutation found in patient's tumor...", thoughtNumber=1) # Step 2: Database queries think(thought="Will check MyVariant for population frequency, cBioPortal for cancer prevalence...", thoughtNumber=2) # Step 3: Functional assessment think(thought="Variant is pathogenic, affects DNA binding domain, common in multiple cancers...", thoughtNumber=3) # Step 4: Clinical implications think(thought="Synthesizing prognostic impact and potential therapeutic vulnerabilities...", thoughtNumber=4) ``` ## Think Tool Best Practices ### DO: - Start EVERY BioMCP session with think - Use sequential numbering (1, 2, 3...) - Document key findings in each thought - Adjust strategy based on intermediate results - Use think to track progress through complex analyses ### DON'T: - Skip think and jump to searches - Use think only at the beginning - Set nextThoughtNeeded=false prematurely - Use generic thoughts without specific content - Forget to document decision rationale ## Integration with Other Tools The think tool should wrap around other tool usage: ```python # CORRECT PATTERN think(thought="Planning BRAF melanoma research...", thoughtNumber=1) gene_info = gene_getter("BRAF") think(thought="BRAF is a serine/threonine kinase, V600E creates constitutive activation. Searching for targeted therapies...", thoughtNumber=2) articles = article_searcher(genes=["BRAF"], diseases=["melanoma"], keywords=["vemurafenib", "dabrafenib"]) think(thought="Found key trials showing BRAF+MEK combination superiority. Checking for active trials...", thoughtNumber=3) trials = trial_searcher(conditions=["melanoma"], interventions=["BRAF inhibitor"]) # INCORRECT PATTERN - NO THINKING gene_info = gene_getter("BRAF") # ❌ Started without thinking articles = article_searcher(...) # ❌ No strategy planning ``` ## Reminder System BioMCP includes automatic reminders if you forget to use think: - Search results will include a reminder message - The reminder appears as a system message - It prompts you to use think for better results - This ensures consistent methodology ## Advanced Sequential Thinking ### Branching Logic Use think to handle conditional paths: ```python think( thought="No direct trials found for this rare mutation. Pivoting to search for basket trials and mutation-agnostic approaches...", thoughtNumber=5, nextThoughtNeeded=True ) ``` ### Error Recovery Document and adjust when searches fail: ```python think( thought="MyVariant query failed for this structural variant. Will use article search to find functional studies instead...", thoughtNumber=6, nextThoughtNeeded=True ) ``` ### Complex Integration Coordinate multiple data sources: ```python think( thought="Integrating findings: cBioPortal shows 15% frequency in lung adenocarcinoma, articles describe resistance mechanisms, trials testing combination strategies...", thoughtNumber=7, nextThoughtNeeded=True ) ``` ## Conclusion The think tool is not just a requirement—it's your research companion that ensures systematic, thorough, and reproducible biomedical research. By following sequential thinking patterns, you'll deliver comprehensive insights that address all aspects of complex biomedical queries. Remember: **Always think first, then search. Document your reasoning. Only mark thinking complete when your analysis is truly finished.**

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/genomoncology/biomcp'

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