Skip to main content
Glama

Structured Thinking MCP Server

A TypeScript Model Context Protocol (MCP) server based on Arben Ademi's Sequential Thinking Python server. The motivation for this project is to allow LLMs to programmatically construct mind maps to explore an idea space, with enforced "metacognitive" self-reflection.

Setup

Set the tool configuration in Claude Desktop, Cursor, or another MCP client as follows:

{
  "structured-thinking": {
    "command": "npx",
    "args": ["-y", "structured-thinking"]
  }
}

Related MCP server: Basic MCP Server

Overview

Thought Quality Scores

When an LLM captures a thought, it assigns that thought a quality score between 0 and 1. This score is used, in combination with the thought's stage, for providing "metacognitive" feedback to the LLM how to "steer" its thinking process.

Thought Stages

Each thought is tagged with a stage (e.g., Problem Definition, Analysis, Ideation) to help manage the life-cycle of the LLM's thinking process. In the current implementation, these stages play a very important role. In effect, if the LLM spends too long in a given stage or is having low-quality thoughts in the current stage, the server will provide feedback to the LLM to "steer" its thinking toward other stages, or at least toward thinking strategies that are atypical of the current stage. (E.g., in deductive mode, the LLM will be encouraged to consider more creative thoughts.)

Thought Branching

The LLM can spawn “branches” off a particular thought to explore different lines of reasoning in parallel. Each branch is tracked separately, letting you manage scenarios where multiple solutions or ideas should coexist.

Memory Management

The server maintains a "short-term" memory buffer of the LLM's ten most recent thoughts, and a "long-term" memory of thoughts that can be retrieved based on their tags for summarization of the entire history of the LLM's thinking process on a given topic.

Limitations

Naive Metacognitive Monitoring

Currently, the quality metrics and metacognitive feedback are derived mechanically from naive stage-based multipliers applied to a single self-reported quality score.

As part of the future work, I plan to add more sophisticated metacognitive feedback, including semantic analysis of thought content, thought verification processes, and more intelligent monitoring for reasoning errors.

Lack of User Interface

Currently, the server stores all thoughts in memory, and does not persist them to a file or database. There is also no user interface for reviewing the thought space or visualizing the mind map.

As part of the future work, I plan to incorporate a simple visualization client so the user can watch the thought graph evolve.

MCP Tools

The server exposes the following MCP tools:

capture_thought

Create a thought in the thought history, with metadata about the thought's type, quality, content, and relationships to other thoughts.

Parameters:

  • thought: The content of the current thought

  • thought_number: Current position in the sequence

  • total_thoughts: Expected total number of thoughts

  • next_thought_needed: Whether another thought should follow

  • stage: Current thinking stage (e.g., "Problem Definition", "Analysis")

  • is_revision (optional): Whether this revises a previous thought

  • revises_thought (optional): Number of thought being revised

  • branch_from_thought (optional): Starting point for a new thought branch

  • branch_id (optional): Identifier for the current branch

  • needs_more_thoughts (optional): Whether additional thoughts are needed

  • score (optional): Quality score (0.0 to 1.0)

  • tags (optional): Categories or labels for the thought

revise_thought

Revise a thought in the thought history, with metadata about the thought's type, quality, content, and relationships to other thoughts.

Parameters:

  • thought_id: The ID of the thought to revise

  • Parameters from capture_thought

retrieve_relevant_thoughts

Retrieve thoughts from long-term storage that share tags with the specified thought.

Parameters:

  • thought_id: The ID of the thought to retrieve relevant thoughts for

get_thinking_summary

Generate a comprehensive summary of the entire thinking process.

clear_thinking_history

Clear all recorded thoughts and reset the server state.

License

MIT

Available Tools

5 tools
capture_thoughtB

Stores a new thought in memory and in the thought history and runs a pipeline to classify the thought, return metacognitive feedback, and retrieve relevant thoughts.

ParametersJSON Schema
NameRequiredDescriptionDefault
thoughtYesThe content of the current thought
thought_numberYesCurrent position in the sequence
total_thoughtsYesExpected total number of thoughts
next_thought_neededYesWhether another thought should follow
stageYesCurrent thinking stage (e.g., 'Problem Definition', 'Analysis')
is_revisionNoWhether this revises a previous thought
revises_thoughtNoNumber of thought being revised
branch_from_thoughtNoStarting point for a new thought branch
branch_idNoIdentifier for the current branch
needs_more_thoughtsNoWhether additional thoughts are needed
scoreNoQuality score (0.0 to 1.0)
tagsNoCategories or labels for the thought

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions storing thoughts and running a pipeline but fails to detail critical aspects like whether this is a mutation (likely yes), permission requirements, error handling, or what the pipeline outputs. This leaves significant gaps for a tool with 12 parameters and no output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core action ('stores a new thought') and adds pipeline details. It avoids redundancy but could be slightly more structured for clarity, such as separating storage from pipeline steps.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (12 parameters, no output schema, and no annotations), the description is incomplete. It lacks details on behavioral traits, output format, error conditions, and how it integrates with sibling tools, making it inadequate for safe and effective use by an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 12 parameters thoroughly. The description adds no additional meaning beyond the schema, such as explaining parameter interactions or usage examples. Baseline 3 is appropriate when schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verbs ('stores', 'runs a pipeline') and resources ('thought in memory', 'thought history'), and distinguishes it from siblings by mentioning classification, metacognitive feedback, and retrieval of relevant thoughts, which are separate tools like 'retrieve_relevant_thoughts'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'revise_thought' or 'clear_thinking_history', nor does it mention prerequisites or exclusions. It implies usage for storing thoughts but lacks explicit context for selection among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

clear_thinking_historyB

Clear all recorded thoughts and reset the server state.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It states the tool 'clear all recorded thoughts and reset the server state,' implying a destructive mutation, but does not disclose critical behavioral traits like whether this action is irreversible, requires specific permissions, or has side effects on other data. The description is minimal and lacks depth for a tool with such significant impact.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core action ('Clear all recorded thoughts') and adds necessary context ('reset the server state'). There is no wasted verbiage, and every word contributes to understanding the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (a destructive reset operation) and the lack of annotations and output schema, the description is incomplete. It does not explain what 'reset the server state' entails, what data is affected, or what the expected outcome or confirmation looks like. For a high-impact tool with no structured support, more detail is warranted.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately does not discuss parameters, focusing instead on the tool's action. This meets the baseline for tools with no parameters, as it avoids unnecessary details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Clear all recorded thoughts') and the resource affected ('reset the server state'), distinguishing it from sibling tools like capture_thought or get_thinking_summary. It uses precise verbs and identifies the scope of the operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like revise_thought or retrieve_relevant_thoughts. It lacks context about prerequisites, such as whether this should be used for cleanup or debugging, and does not mention any exclusions or warnings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_thinking_summaryB

Generate a comprehensive summary of the entire thinking process.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool generates a summary but doesn't explain what 'comprehensive' entails, whether it's read-only or has side effects, how it accesses the thinking process, or what format the output takes. This leaves significant gaps for a tool that presumably operates on stored data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core action ('generate a comprehensive summary') without any wasted words. It's appropriately sized for a simple tool with no parameters, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's apparent complexity (summarizing an 'entire thinking process'), lack of annotations, and absence of an output schema, the description is insufficient. It doesn't clarify what constitutes the thinking process, how comprehensive the summary is, or what the output looks like, leaving the agent with critical unknowns for proper use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so the schema fully documents the absence of inputs. The description doesn't need to add parameter details, and it correctly implies no parameters are required by not mentioning any. A baseline of 4 is appropriate for zero-parameter tools when the description aligns with the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('generate a comprehensive summary') and the resource ('entire thinking process'), making the purpose immediately understandable. However, it doesn't differentiate this tool from its siblings like 'retrieve_relevant_thoughts' or 'capture_thought', which prevents a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'retrieve_relevant_thoughts' or 'clear_thinking_history'. There's no mention of prerequisites, timing, or contextual cues for invocation, leaving the agent to guess based on tool names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

retrieve_relevant_thoughtsC

Finds thoughts from long-term storage that share tags with the specified thought.

ParametersJSON Schema
NameRequiredDescriptionDefault
thought_idYesThe ID of the thought to find related thoughts for

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool 'finds thoughts' but doesn't specify whether this is a read-only operation, what permissions are needed, how results are returned (e.g., list format, pagination), or any rate limits. For a retrieval tool with zero annotation coverage, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose ('Finds thoughts from long-term storage') and adds necessary detail ('that share tags with the specified thought'). There is zero wasted text, making it highly concise and well-structured for quick understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (retrieval based on tag matching), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what 'relevant' means beyond tag sharing, how results are ordered or limited, or what the return format is. For a tool with no structured behavioral or output data, the description should provide more context to be fully helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with the single parameter 'thought_id' clearly documented as 'The ID of the thought to find related thoughts for.' The description adds no additional parameter semantics beyond what the schema provides, such as format examples or constraints. With high schema coverage, the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'finds' and the resource 'thoughts from long-term storage' with the specific mechanism 'that share tags with the specified thought.' It distinguishes from siblings like 'capture_thought' (create) and 'clear_thinking_history' (delete) by focusing on retrieval based on tag similarity. However, it doesn't explicitly differentiate from 'get_thinking_summary' (which might summarize rather than retrieve) or 'revise_thought' (modify), keeping it at 4 rather than 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'get_thinking_summary' or 'revise_thought.' It implies usage for finding related thoughts based on tags, but lacks explicit when/when-not instructions or prerequisites. This leaves the agent with minimal context for tool selection among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

revise_thoughtC

Revises a thought in memory and in the thought history.

ParametersJSON Schema
NameRequiredDescriptionDefault
thoughtNoThe content of the current thought
thought_numberNoCurrent position in the sequence
total_thoughtsNoExpected total number of thoughts
next_thought_neededNoWhether another thought should follow
stageNoCurrent thinking stage (e.g., 'Problem Definition', 'Analysis')
is_revisionNoWhether this revises a previous thought
revises_thoughtNoNumber of thought being revised
branch_from_thoughtNoStarting point for a new thought branch
branch_idNoIdentifier for the current branch
needs_more_thoughtsNoWhether additional thoughts are needed
scoreNoQuality score (0.0 to 1.0)
tagsNoCategories or labels for the thought
thought_idYesThe ID of the thought to revise

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool revises a thought in memory and history, implying a mutation, but doesn't clarify permissions, side effects, or what 'revise' entails (e.g., overwriting, updating). For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding its behavior and impact.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's action. It's front-loaded and wastes no words, making it easy to parse. However, it could be more structured by including key details like the required 'thought_id' parameter, but overall, it's appropriately concise for its purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of 13 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain the revision process, return values, or how parameters like 'thought_id' and 'revises_thought' interact. For a mutation tool with rich input schema but no behavioral context, this leaves the agent under-informed about critical aspects of tool usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, with all 13 parameters well-documented in the input schema. The description doesn't add any meaning beyond the schema, such as explaining parameter interactions or usage examples. Given the high coverage, a baseline score of 3 is appropriate, as the schema does the heavy lifting without extra value from the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool 'revises a thought in memory and in the thought history,' which provides a clear verb ('revises') and resource ('a thought'). However, it doesn't differentiate from sibling tools like 'capture_thought' or 'clear_thinking_history' beyond the basic action. The purpose is understandable but lacks specificity about what revision entails compared to other thought-related operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description offers no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, such as needing an existing thought to revise, or compare it to siblings like 'capture_thought' for new thoughts. Without any context on usage scenarios or exclusions, the agent must infer when this tool is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 5 tool updates
    • First observedcapture_thought
    • First observedclear_thinking_history
    • First observedget_thinking_summary
    • First observedretrieve_relevant_thoughts
    • First observedrevise_thought

TDQS

A3.5/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose with no ambiguity: capture_thought creates new thoughts, clear_thinking_history resets state, get_thinking_summary generates summaries, retrieve_relevant_thoughts finds related thoughts, and revise_thought updates existing thoughts. The actions (capture, clear, get, retrieve, revise) and targets (thought, history, summary) are well-defined and non-overlapping.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with snake_case: capture_thought, clear_thinking_history, get_thinking_summary, retrieve_relevant_thoughts, and revise_thought. The verbs are distinct and appropriate for their actions, and the naming structure is predictable throughout the set.

Tool Count5/5

With 5 tools, this server is well-scoped for its structured thinking domain. Each tool earns its place by covering core operations: creating, revising, retrieving, summarizing, and clearing thoughts. The count is neither too thin nor bloated, fitting typical server ranges (3-15 tools) perfectly.

Completeness5/5

The tool surface provides complete CRUD/lifecycle coverage for the thought management domain: capture_thought (create), revise_thought (update), retrieve_relevant_thoughts (read), get_thinking_summary (read/analyze), and clear_thinking_history (delete/reset). There are no obvious gaps, and agents can perform full workflows without dead ends.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • -
    license
    Not graded
    quality
    D
    maintenance
    A TypeScript implementation of a Model Context Protocol server and client that enables interaction with language models (specifically Mistral running on Ollama).
    -
  • F
    license
    B
    quality
    D
    maintenance
    A basic TypeScript implementation of the Model Context Protocol (MCP) server designed as a starting point for MCP development. Provides a minimal foundation for building custom MCP servers with stdio configuration for local integration with VS Code and GitHub Copilot.
    1
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol (MCP) server that provides a reflect tool, enabling LLMs to engage in self-reflection and introspection through recursive questioning and MCP sampling.
    78
    15
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A robust, lightweight Model Context Protocol (MCP) server designed to empower your AI Agents with context-awareness, safe execution sandboxes, and dedicated thought logs.
    -

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/Promptly-Technologies-LLC/mcp-structured-thinking'

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