Skip to main content
Glama
darbotlabs

Darbot Deepmind MCP Server

by darbotlabs
api-reference.html22.1 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="description" content="API Reference for Darbot Deepmind MCP Server"> <title>API Reference - Darbot Deepmind MCP Server</title> <link rel="stylesheet" href="assets/css/style.css"> </head> <body> <header> <nav class="navbar"> <div class="container"> <div class="nav-brand"> <h1>🧠 Darbot Deepmind MCP</h1> </div> <ul class="nav-menu"> <li><a href="index.html">Home</a></li> <li><a href="configuration.html">Configuration</a></li> <li><a href="framework.html">Framework</a></li> <li><a href="api-reference.html">API Reference</a></li> <li><a href="troubleshooting.html">Troubleshooting</a></li> <li><a href="https://github.com/darbotlabs/darbot-deepmind-mcp" target="_blank">GitHub</a></li> </ul> </div> </nav> </header> <main> <section class="section"> <div class="container"> <div class="breadcrumbs"> <a href="index.html">Home</a> <span>/</span> <span>API Reference</span> </div> <div class="content"> <h1>API Reference</h1> <p>Complete reference documentation for the Darbot Deepmind MCP Server tool and its parameters.</p> <h2>Tool: darbot_deepmind</h2> <p>The primary tool for sophisticated, step-by-step reasoning through Darbot's deepmind thinking framework.</p> <h3>Description</h3> <p>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.</p> <h3>Parameters</h3> <h4>Required Parameters</h4> <table> <thead> <tr> <th>Parameter</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><code>thought</code></td> <td>string</td> <td>The current thinking step. Can include analytical steps, revisions, questions, realizations, approach changes, hypothesis generation, or verification.</td> </tr> <tr> <td><code>nextThoughtNeeded</code></td> <td>boolean</td> <td>Indicates whether another thought step is needed. Set to <code>false</code> only when truly done with a satisfactory answer.</td> </tr> <tr> <td><code>thoughtNumber</code></td> <td>integer</td> <td>Current thought number in the sequence (starting from 1). Can exceed initial <code>totalThoughts</code> if more analysis is needed.</td> </tr> <tr> <td><code>totalThoughts</code></td> <td>integer</td> <td>Current estimate of total thoughts needed. Can be adjusted up or down as problem complexity becomes clearer.</td> </tr> </tbody> </table> <h4>Optional Parameters</h4> <table> <thead> <tr> <th>Parameter</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><code>isRevision</code></td> <td>boolean</td> <td>Set to <code>true</code> if this thought revises or reconsiders previous thinking. Requires <code>revisesThought</code> parameter.</td> </tr> <tr> <td><code>revisesThought</code></td> <td>integer</td> <td>Specifies which thought number is being reconsidered. Must be less than current <code>thoughtNumber</code>. Required when <code>isRevision</code> is <code>true</code>.</td> </tr> <tr> <td><code>branchFromThought</code></td> <td>integer</td> <td>The thought number where this branch diverges from the main reasoning path. Used for exploring alternative solution approaches.</td> </tr> <tr> <td><code>branchId</code></td> <td>string</td> <td>Unique identifier for this reasoning branch (e.g., "serverless-approach", "database-optimization"). Helps track multiple solution paths.</td> </tr> <tr> <td><code>needsMoreThoughts</code></td> <td>boolean</td> <td>Explicitly signals that more thoughts are needed beyond the current estimate. Useful when reaching the end but realizing more analysis is required.</td> </tr> </tbody> </table> <h3>Response Format</h3> <p>The tool returns a structured JSON response with the following fields:</p> <div class="code-block"> <pre><code>{ "thoughtNumber": 5, "totalThoughts": 10, "nextThoughtNeeded": true, "branches": ["serverless-approach", "microservices-approach"], "thoughtHistoryLength": 5, "isRevision": false, "branchId": "serverless-approach", "branchFromThought": 3 }</code></pre> </div> <table> <thead> <tr> <th>Field</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><code>thoughtNumber</code></td> <td>integer</td> <td>Echo of the current thought number</td> </tr> <tr> <td><code>totalThoughts</code></td> <td>integer</td> <td>Current estimate of total thoughts (adjusted if needed)</td> </tr> <tr> <td><code>nextThoughtNeeded</code></td> <td>boolean</td> <td>Whether more reasoning steps are needed</td> </tr> <tr> <td><code>branches</code></td> <td>string[]</td> <td>Array of all branch IDs encountered in this reasoning session</td> </tr> <tr> <td><code>thoughtHistoryLength</code></td> <td>integer</td> <td>Total number of thoughts processed so far</td> </tr> <tr> <td><code>isRevision</code></td> <td>boolean?</td> <td>Present if this was a revision thought</td> </tr> <tr> <td><code>revisesThought</code></td> <td>integer?</td> <td>Present if this was a revision, indicates which thought was revised</td> </tr> <tr> <td><code>branchId</code></td> <td>string?</td> <td>Present if this thought is part of a branch</td> </tr> <tr> <td><code>branchFromThought</code></td> <td>integer?</td> <td>Present if this thought is part of a branch, indicates the branching point</td> </tr> <tr> <td><code>needsMoreThoughts</code></td> <td>boolean?</td> <td>Present if explicitly signaled</td> </tr> </tbody> </table> <h3>Usage Examples</h3> <h4>Example 1: Basic Sequential Reasoning</h4> <div class="code-block"> <pre><code>// 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 }</code></pre> </div> <h4>Example 2: Revising Previous Thinking</h4> <div class="code-block"> <pre><code>{ "thought": "Revising database choice - NoSQL better for this use case", "nextThoughtNeeded": true, "thoughtNumber": 6, "totalThoughts": 10, "isRevision": true, "revisesThought": 3 }</code></pre> </div> <h4>Example 3: Branching to Explore Alternatives</h4> <div class="code-block"> <pre><code>{ "thought": "Exploring serverless architecture as alternative", "nextThoughtNeeded": true, "thoughtNumber": 7, "totalThoughts": 12, "branchFromThought": 4, "branchId": "serverless-alternative" }</code></pre> </div> <h4>Example 4: Adjusting Scope</h4> <div class="code-block"> <pre><code>{ "thought": "Realizing this requires more detailed security analysis", "nextThoughtNeeded": true, "thoughtNumber": 8, "totalThoughts": 15, "needsMoreThoughts": true }</code></pre> </div> <h4>Example 5: Final Thought</h4> <div class="code-block"> <pre><code>{ "thought": "Conclusion: Microservices with event-driven architecture", "nextThoughtNeeded": false, "thoughtNumber": 12, "totalThoughts": 12 }</code></pre> </div> <h2>Validation Rules</h2> <h3>Schema Validation</h3> <ul> <li><code>thought</code> must be a non-empty string</li> <li><code>thoughtNumber</code> must be a positive integer</li> <li><code>totalThoughts</code> must be a positive integer</li> <li><code>revisesThought</code> (if present) must be a positive integer</li> <li><code>branchFromThought</code> (if present) must be a positive integer</li> </ul> <h3>Business Logic Validation</h3> <ul> <li>If <code>isRevision</code> is true, <code>revisesThought</code> must be provided</li> <li><code>revisesThought</code> must be less than <code>thoughtNumber</code></li> <li>If <code>branchId</code> is provided, <code>branchFromThought</code> should be provided</li> <li><code>thoughtNumber</code> cannot be greater than <code>totalThoughts</code> (server auto-adjusts if needed)</li> </ul> <h3>Error Responses</h3> <p>When validation fails, the tool returns an error response:</p> <div class="code-block"> <pre><code>{ "error": "Validation error: revisesThought must be less than thoughtNumber", "status": "failed" }</code></pre> </div> <h2>Reasoning Guidelines</h2> <h3>When to Use Revisions</h3> <ul> <li>New information invalidates previous assumptions</li> <li>Discovered a flaw in earlier reasoning</li> <li>Need to reconsider a decision with additional context</li> <li>Realized a better approach after further analysis</li> </ul> <h3>When to Use Branches</h3> <ul> <li>Exploring fundamentally different solution approaches</li> <li>Comparing trade-offs between alternatives</li> <li>Investigating multiple hypotheses in parallel</li> <li>Examining what-if scenarios</li> </ul> <h3>When to Adjust Total Thoughts</h3> <ul> <li>Problem is more complex than initially estimated</li> <li>Found solution faster than expected</li> <li>Scope of analysis has changed</li> <li>New requirements emerged during reasoning</li> </ul> <div class="alert alert-info"> <strong>Best Practice:</strong> Start with a conservative estimate and adjust as needed. The framework is designed to handle dynamic changes gracefully. </div> <h2>Thought Content Best Practices</h2> <h3>Good Thought Examples</h3> <div class="code-block"> <pre><code>✓ "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%"</code></pre> </div> <h3>Avoid</h3> <div class="code-block"> <pre><code>✗ "Thinking..." ✗ "Next step" ✗ "Continuing analysis" ✗ "" (empty thoughts)</code></pre> </div> <h3>Thought Content Guidelines</h3> <ul> <li>Be specific about what you're analyzing or deciding</li> <li>Include key insights, not just process statements</li> <li>Reference concrete details when relevant</li> <li>State hypotheses clearly when generating them</li> <li>Note important trade-offs or constraints</li> </ul> <h2>Integration Examples</h2> <h3>JavaScript/TypeScript</h3> <div class="code-block"> <pre><code>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); // []</code></pre> </div> <h3>Python (Pseudo-code)</h3> <div class="code-block"> <pre><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"]) # []</code></pre> </div> <h2>Performance Notes</h2> <h3>Memory Usage</h3> <ul> <li>Each thought stored in memory (~1KB average)</li> <li>100 thoughts ≈ 100KB memory</li> <li>Branch tracking adds minimal overhead</li> <li>Consider session breaks for very long chains (1000+ thoughts)</li> </ul> <h3>Response Time</h3> <ul> <li>Typical response time: &lt;5ms</li> <li>Validation: O(1) complexity</li> <li>Logging adds ~2-3ms when enabled</li> <li>Network latency dominates total time</li> </ul> <h2>Troubleshooting</h2> <h3>Common Errors</h3> <h4>Validation Error: thought must be non-empty</h4> <p><strong>Cause:</strong> Empty or missing thought parameter</p> <p><strong>Solution:</strong> Provide a meaningful description of the current thinking step</p> <h4>Validation Error: revisesThought must be less than thoughtNumber</h4> <p><strong>Cause:</strong> Attempting to revise a future or current thought</p> <p><strong>Solution:</strong> Only revise past thoughts (revisesThought &lt; thoughtNumber)</p> <h4>Validation Error: revisesThought required when isRevision is true</h4> <p><strong>Cause:</strong> Set isRevision to true without specifying which thought to revise</p> <p><strong>Solution:</strong> Include the revisesThought parameter</p> <div class="alert alert-warning"> <strong>Note:</strong> See the <a href="troubleshooting.html">Troubleshooting Guide</a> for more detailed solutions to common issues. </div> <h2>Next Steps</h2> <div class="docs-grid" style="margin-top: 2rem;"> <a href="configuration.html" class="doc-card"> <h3>⚙️ Configuration</h3> <p>Setup and integration guides</p> </a> <a href="framework.html" class="doc-card"> <h3>🔧 Framework</h3> <p>Technical architecture details</p> </a> <a href="troubleshooting.html" class="doc-card"> <h3>🔎 Troubleshooting</h3> <p>Solutions to common problems</p> </a> </div> </div> </div> </section> </main> <footer> <div class="container"> <div class="footer-content"> <div class="footer-section"> <h3>About</h3> <p>Built with the <a href="https://modelcontextprotocol.io/" target="_blank">Model Context Protocol</a></p> <p>Made with ❤️ by <a href="https://github.com/darbotlabs" target="_blank">Darbot Labs</a></p> </div> <div class="footer-section"> <h3>Resources</h3> <ul> <li><a href="https://github.com/darbotlabs/darbot-deepmind-mcp" target="_blank">GitHub Repository</a></li> <li><a href="https://www.npmjs.com/package/@darbotlabs/darbot-deepmind-mcp" target="_blank">npm Package</a></li> <li><a href="https://github.com/darbotlabs/darbot-deepmind-mcp/blob/main/CHANGELOG.md" target="_blank">Changelog</a></li> <li><a href="https://github.com/darbotlabs/darbot-deepmind-mcp/blob/main/LICENSE" target="_blank">License (MIT)</a></li> </ul> </div> <div class="footer-section"> <h3>Technologies</h3> <ul> <li><a href="https://www.typescriptlang.org/" target="_blank">TypeScript</a></li> <li><a href="https://nodejs.org/" target="_blank">Node.js</a></li> <li><a href="https://github.com/chalk/chalk" target="_blank">Chalk</a></li> <li><a href="https://github.com/colinhacks/zod" target="_blank">Zod</a></li> </ul> </div> </div> <div class="footer-bottom"> <p>&copy; 2025 Darbot Labs. Licensed under the MIT License.</p> </div> </div> </footer> </body> </html>

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/darbotlabs/Darbot-Deepmind-MCP'

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