mcp-structured-thinking
结构化思维 MCP 服务器
基于Arben Ademi的顺序思维Python 服务器的 TypeScript 模型上下文协议 (MCP) 服务器。该项目旨在帮助法学硕士 (LLM) 以编程方式构建思维导图,探索思维空间,并强化“元认知”自我反思。
设置
在 Claude Desktop、Cursor 或其他 MCP 客户端中设置工具配置如下:
{
"structured-thinking": {
"command": "npx",
"args": ["-y", "structured-thinking"]
}
}Related MCP server: Basic MCP Server
概述
思想质量分数
当法学硕士 (LLM) 捕捉到一个想法时,它会为这个想法分配一个介于 0 到 1 之间的质量分数。该分数与想法的阶段结合使用,为法学硕士 (LLM) 提供“元认知”反馈,以指导其思维过程。
思维阶段
每个想法都标记一个阶段(例如,问题定义、分析、构思),以帮助管理 LLM 思维过程的生命周期。在当前的实现中,这些阶段发挥着非常重要的作用。实际上,如果 LLM 在某个阶段花费的时间过长,或者当前阶段的想法质量低下,服务器将向 LLM 提供反馈,以“引导”其思维转向其他阶段,或者至少转向当前阶段非典型的思维策略。(例如,在演绎模式下,将鼓励 LLM 思考更具创造性的想法。)
思维分支
LLM 课程可以基于特定思路衍生出多个“分支”,以便并行探索不同的推理思路。每个分支都会单独追踪,方便你管理多个解决方案或想法共存的场景。
内存管理
服务器维护着一个包含法学硕士最近十个想法的“短期”记忆缓冲区,以及一个可以根据标签检索的想法的“长期”记忆,以总结法学硕士对给定主题的思考过程的整个历史。
限制
朴素元认知监控
目前,质量指标和元认知反馈是通过应用于单个自我报告质量分数的基于阶段的乘数机械地得出的。
作为未来工作的一部分,我计划添加更复杂的元认知反馈,包括思想内容的语义分析、思想验证过程以及对推理错误的更智能的监控。
缺乏用户界面
目前,服务器将所有想法存储在内存中,不会将其持久化到文件或数据库中。此外,服务器也没有提供用于查看想法空间或可视化思维导图的用户界面。
作为未来工作的一部分,我计划加入一个简单的可视化客户端,以便用户可以观察思维图的演变。
MCP 工具
该服务器公开以下 MCP 工具:
捕获思想
在思想历史中创建一个思想,并包含有关该思想的类型、质量、内容以及与其他思想的关系的元数据。
参数:
thought:当前思考的内容thought_number:序列中的当前位置total_thoughts:预期的想法总数next_thought_needed:是否应该有另一个想法stage:当前思考阶段(例如,“问题定义”,“分析”)is_revision(可选):这是否修改了之前的想法revises_thought(可选):正在修改的想法的数量branch_from_thought(可选):新思路分支的起点branch_id(可选):当前分支的标识符needs_more_thoughts(可选):是否需要更多想法score(可选):质量分数(0.0 到 1.0)tags(可选):思想的类别或标签
修改想法
修改思想历史中的一个思想,并提供有关该思想的类型、质量、内容以及与其他思想的关系的元数据。
参数:
thought_id:需要修改的想法的 ID来自
capture_thought的参数
检索相关想法
从长期存储中检索与指定想法共享标签的想法。
参数:
thought_id:用于检索相关想法的想法的 ID
获取思考摘要
对整个思考过程进行全面的总结。
清晰的思考历史
清除所有记录的想法并重置服务器状态。
执照
麻省理工学院
Available Tools
5 toolscapture_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.
| Name | Required | Description | Default |
|---|---|---|---|
| thought | Yes | The content of the current thought | |
| thought_number | Yes | Current position in the sequence | |
| total_thoughts | Yes | Expected total number of thoughts | |
| next_thought_needed | Yes | Whether another thought should follow | |
| stage | Yes | Current thinking stage (e.g., 'Problem Definition', 'Analysis') | |
| is_revision | No | Whether this revises a previous thought | |
| revises_thought | No | Number of thought being revised | |
| branch_from_thought | No | Starting point for a new thought branch | |
| branch_id | No | Identifier for the current branch | |
| needs_more_thoughts | No | Whether additional thoughts are needed | |
| score | No | Quality score (0.0 to 1.0) | |
| tags | No | Categories or labels for the thought |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| thought_id | Yes | The ID of the thought to find related thoughts for |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| thought | No | The content of the current thought | |
| thought_number | No | Current position in the sequence | |
| total_thoughts | No | Expected total number of thoughts | |
| next_thought_needed | No | Whether another thought should follow | |
| stage | No | Current thinking stage (e.g., 'Problem Definition', 'Analysis') | |
| is_revision | No | Whether this revises a previous thought | |
| revises_thought | No | Number of thought being revised | |
| branch_from_thought | No | Starting point for a new thought branch | |
| branch_id | No | Identifier for the current branch | |
| needs_more_thoughts | No | Whether additional thoughts are needed | |
| score | No | Quality score (0.0 to 1.0) | |
| tags | No | Categories or labels for the thought | |
| thought_id | Yes | The ID of the thought to revise |
TDQS
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.
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.
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.
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.
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.
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.
5 tool updates
- First observed
capture_thought - First observed
clear_thinking_history - First observed
get_thinking_summary - First observed
retrieve_relevant_thoughts - First observed
revise_thought
TDQS
Scored across 5 tools
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.
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.
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.
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
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A Model Context Protocol server for Wix AI tools
Remote MCP server exposing your Node Command fleet (files, shell, processes, browser) to AI hosts.
1MCP server for OnceAsk, the AI-native current-address layer for people and agents.
Related MCP Servers
- -licenseNot gradedqualityDmaintenanceA TypeScript implementation of a Model Context Protocol server and client that enables interaction with language models (specifically Mistral running on Ollama).-
- FlicenseBqualityDmaintenanceA 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-
- AlicenseNot gradedqualityDmaintenanceA 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.56 npm15MIT
- FlicenseNot gradedqualityDmaintenanceA robust, lightweight Model Context Protocol (MCP) server designed to empower your AI Agents with context-awareness, safe execution sandboxes, and dedicated thought logs.-