API Reference

Complete reference documentation for the Darbot Deepmind MCP Server tool and its parameters.

Tool: darbot_deepmind

The primary tool for sophisticated, step-by-step reasoning through Darbot's deepmind thinking framework.

Description

This tool facilitates complex problem-solving and analysis through a structured thinking process. It supports dynamic thought revision, multi-path reasoning with branching logic, and adaptive planning that adjusts based on problem complexity.

Parameters

Required Parameters

Parameter Type Description
thought string The current thinking step. Can include analytical steps, revisions, questions, realizations, approach changes, hypothesis generation, or verification.
nextThoughtNeeded boolean Indicates whether another thought step is needed. Set to false only when truly done with a satisfactory answer.
thoughtNumber integer Current thought number in the sequence (starting from 1). Can exceed initial totalThoughts if more analysis is needed.
totalThoughts integer Current estimate of total thoughts needed. Can be adjusted up or down as problem complexity becomes clearer.

Optional Parameters

Parameter Type Description
isRevision boolean Set to true if this thought revises or reconsiders previous thinking. Requires revisesThought parameter.
revisesThought integer Specifies which thought number is being reconsidered. Must be less than current thoughtNumber. Required when isRevision is true.
branchFromThought integer The thought number where this branch diverges from the main reasoning path. Used for exploring alternative solution approaches.
branchId string Unique identifier for this reasoning branch (e.g., "serverless-approach", "database-optimization"). Helps track multiple solution paths.
needsMoreThoughts boolean Explicitly signals that more thoughts are needed beyond the current estimate. Useful when reaching the end but realizing more analysis is required.

Response Format

The tool returns a structured JSON response with the following fields:

{
  "thoughtNumber": 5,
  "totalThoughts": 10,
  "nextThoughtNeeded": true,
  "branches": ["serverless-approach", "microservices-approach"],
  "thoughtHistoryLength": 5,
  "isRevision": false,
  "branchId": "serverless-approach",
  "branchFromThought": 3
}
Field Type Description
thoughtNumber integer Echo of the current thought number
totalThoughts integer Current estimate of total thoughts (adjusted if needed)
nextThoughtNeeded boolean Whether more reasoning steps are needed
branches string[] Array of all branch IDs encountered in this reasoning session
thoughtHistoryLength integer Total number of thoughts processed so far
isRevision boolean? Present if this was a revision thought
revisesThought integer? Present if this was a revision, indicates which thought was revised
branchId string? Present if this thought is part of a branch
branchFromThought integer? Present if this thought is part of a branch, indicates the branching point
needsMoreThoughts boolean? Present if explicitly signaled

Usage Examples

Example 1: Basic Sequential Reasoning

// First thought
{
  "thought": "Analyzing requirements for e-commerce platform",
  "nextThoughtNeeded": true,
  "thoughtNumber": 1,
  "totalThoughts": 8
}

// Second thought
{
  "thought": "Identifying key scalability challenges",
  "nextThoughtNeeded": true,
  "thoughtNumber": 2,
  "totalThoughts": 8
}

Example 2: Revising Previous Thinking

{
  "thought": "Revising database choice - NoSQL better for this use case",
  "nextThoughtNeeded": true,
  "thoughtNumber": 6,
  "totalThoughts": 10,
  "isRevision": true,
  "revisesThought": 3
}

Example 3: Branching to Explore Alternatives

{
  "thought": "Exploring serverless architecture as alternative",
  "nextThoughtNeeded": true,
  "thoughtNumber": 7,
  "totalThoughts": 12,
  "branchFromThought": 4,
  "branchId": "serverless-alternative"
}

Example 4: Adjusting Scope

{
  "thought": "Realizing this requires more detailed security analysis",
  "nextThoughtNeeded": true,
  "thoughtNumber": 8,
  "totalThoughts": 15,
  "needsMoreThoughts": true
}

Example 5: Final Thought

{
  "thought": "Conclusion: Microservices with event-driven architecture",
  "nextThoughtNeeded": false,
  "thoughtNumber": 12,
  "totalThoughts": 12
}

Validation Rules

Schema Validation

  • thought must be a non-empty string
  • thoughtNumber must be a positive integer
  • totalThoughts must be a positive integer
  • revisesThought (if present) must be a positive integer
  • branchFromThought (if present) must be a positive integer

Business Logic Validation

  • If isRevision is true, revisesThought must be provided
  • revisesThought must be less than thoughtNumber
  • If branchId is provided, branchFromThought should be provided
  • thoughtNumber cannot be greater than totalThoughts (server auto-adjusts if needed)

Error Responses

When validation fails, the tool returns an error response:

{
  "error": "Validation error: revisesThought must be less than thoughtNumber",
  "status": "failed"
}

Reasoning Guidelines

When to Use Revisions

  • New information invalidates previous assumptions
  • Discovered a flaw in earlier reasoning
  • Need to reconsider a decision with additional context
  • Realized a better approach after further analysis

When to Use Branches

  • Exploring fundamentally different solution approaches
  • Comparing trade-offs between alternatives
  • Investigating multiple hypotheses in parallel
  • Examining what-if scenarios

When to Adjust Total Thoughts

  • Problem is more complex than initially estimated
  • Found solution faster than expected
  • Scope of analysis has changed
  • New requirements emerged during reasoning
Best Practice: Start with a conservative estimate and adjust as needed. The framework is designed to handle dynamic changes gracefully.

Thought Content Best Practices

Good Thought Examples

✓ "Analyzing database options: PostgreSQL vs MongoDB"
✓ "Security concern: Need to address authentication flow"
✓ "Trade-off: Consistency vs availability in distributed system"
✓ "Hypothesis: Caching layer will reduce latency by 50%"

Avoid

✗ "Thinking..."
✗ "Next step"
✗ "Continuing analysis"
✗ "" (empty thoughts)

Thought Content Guidelines

  • Be specific about what you're analyzing or deciding
  • Include key insights, not just process statements
  • Reference concrete details when relevant
  • State hypotheses clearly when generating them
  • Note important trade-offs or constraints

Integration Examples

JavaScript/TypeScript

const response = await callTool("darbot_deepmind", {
  thought: "Analyzing system architecture requirements",
  nextThoughtNeeded: true,
  thoughtNumber: 1,
  totalThoughts: 10
});

console.log(response.thoughtHistoryLength); // 1
console.log(response.branches); // []

Python (Pseudo-code)

response = mcp_client.call_tool(
    "darbot_deepmind",
    {
        "thought": "Analyzing system architecture requirements",
        "nextThoughtNeeded": True,
        "thoughtNumber": 1,
        "totalThoughts": 10
    }
)

print(response["thoughtHistoryLength"])  # 1
print(response["branches"])  # []

Performance Notes

Memory Usage

  • Each thought stored in memory (~1KB average)
  • 100 thoughts ≈ 100KB memory
  • Branch tracking adds minimal overhead
  • Consider session breaks for very long chains (1000+ thoughts)

Response Time

  • Typical response time: <5ms
  • Validation: O(1) complexity
  • Logging adds ~2-3ms when enabled
  • Network latency dominates total time

Troubleshooting

Common Errors

Validation Error: thought must be non-empty

Cause: Empty or missing thought parameter

Solution: Provide a meaningful description of the current thinking step

Validation Error: revisesThought must be less than thoughtNumber

Cause: Attempting to revise a future or current thought

Solution: Only revise past thoughts (revisesThought < thoughtNumber)

Validation Error: revisesThought required when isRevision is true

Cause: Set isRevision to true without specifying which thought to revise

Solution: Include the revisesThought parameter

Note: See the Troubleshooting Guide for more detailed solutions to common issues.

Next Steps