Skip to main content
Glama
FradSer

Sequential Thinking Multi-Agent System

by FradSer

シーケンシャル思考マルチエージェントシステム(MAS)

鍛冶屋のバッジ TwitterフォローPythonバージョン フレームワーク

英語 |简体中文

このプロジェクトは、 Agnoフレームワークで構築され、 MCPを介して提供される**マルチエージェントシステム(MAS)**を用いて、高度なシーケンシャル思考プロセスを実装します。これは、協調型で専門化されたエージェントを活用してより深い分析と問題の分解を行うことで、単純な状態追跡アプローチからの大きな進化を表しています。

概要

このサーバーは、複雑な問題解決のために設計された、洗練されたシーケンシャルsequentialthinkingツールを提供します。前バージョンとは異なり、このバージョンは真のマルチエージェントシステム(MAS)アーキテクチャを採用しており、以下の特徴を備えています。

  • コーディネーティング エージェント( coordinateモードのTeamオブジェクト) がワークフローを管理します。

  • 専門エージェント(プランナー、リサーチャー、アナライザー、クリティック、シンセサイザー) は、定義された役割と専門知識に基づいて特定のサブタスクを処理します。

  • 入力された思考は単に記録されるだけでなく、エージェント チームによって積極的に処理、分析、統合されます

  • システムは、前のステップの修正や代替パスの探索のための分岐など、複雑な思考パターンをサポートします。

  • Exa (Researcher エージェント経由) などの外部ツールとの統合により、動的な情報収集が可能になります。

  • 堅牢なPydantic検証により、思考ステップのデータの整合性が保証されます。

  • 詳細なログ記録では、エージェントのインタラクション (コーディネータによって処理) を含むプロセスが追跡されます。

目標は、専門の役割を連携して活用することで、単一のエージェントや単純な状態追跡で可能なものよりも、より高品質の分析と、より繊細な思考プロセスを実現することです。

Related MCP server: Sequential-Thinking

オリジナルバージョン(TypeScript)との主な違い

この Python/Agno 実装は、元の TypeScript バージョンからの根本的な変化を示しています。

特徴/側面

Python/Agno バージョン (最新)

TypeScriptバージョン(オリジナル)

建築

マルチエージェント システム (MAS) ; エージェントのチームによるアクティブな処理。

単一クラスの状態トラッカー。シンプルなログ記録/保存。

知能

分散エージェント ロジック。専用のエージェントとコーディネーターに組み込まれています。

外部 LLM のみ。内部情報なし。

処理

アクティブな分析と統合。エージェントは思考に基づいて行動します

パッシブログ; 思考のみを記録します。

フレームワーク

Agno (MAS) + FastMCP (サーバー) ; 専用の MAS ライブラリを使用します。

MCP SDK のみ

調整

明示的なチーム調整ロジック( coordinateモードのTeam )。

なし; 調整概念はありません。

検証

Pydantic スキーマ検証; 堅牢なデータ検証。

基本的な型チェック。信頼性は低くなります。

外部ツール

統合型 (研究者経由の Exa) ; 研究タスクを実行できます。

なし

ログ記録

構造化された Python ログ (ファイル + コンソール) ; 構成可能。

Chalk を使用したコンソール ログ記録、基本。

言語とエコシステム

Python ; Python AI/ML エコシステムを活用します。

TypeScript/Node.js

本質的には、このシステムは受動的な思考記録装置から、AI エージェントの共同チームによって駆動される能動的な思考処理装置へと進化しました。

仕組み(座標モード)

  1. **開始:**外部の LLM はsequential-thinking-starterプロンプトを使用して問題を定義し、プロセスを開始します。

  2. ツール呼び出し: LLM は、 ThoughtData Pydantic モデルに従って構造化された最初の (または後続の) 思考でsequentialthinkingツールを呼び出します。

  3. **検証とログ記録:**ツールは呼び出しを受け取り、Pydantic を使用して入力を検証し、受信した考えをログに記録し、 AppContextを介して履歴/ブランチの状態を更新します。

  4. **コーディネーターの呼び出し:**中核となる思考内容 (リビジョン/ブランチに関するコンテキストとともに) がSequentialThinkingTeamarunメソッドに渡されます。

  5. コーディネーターによる分析と委任: Team (コーディネーターとして機能) は入力された考えを分析し、それをサブタスクに分割し、これらのサブタスクを最も関連性の高い専門エージェント (分析タスクの場合はアナライザー、情報ニーズの場合はリサーチャーなど) に委任します。

  6. **専門家による実行:**委任されたエージェントは、指示、モデル、ツール ( ThinkingToolsExaToolsなど) を使用して、特定のサブタスクを実行します。

  7. **回答の収集:**スペシャリストは結果をコーディネーターに返します。

  8. **統合とガイダンス:**コーディネーターは、スペシャリストの回答を一つのまとまりのあるアウトプットに統合します。このアウトプットには、スペシャリストの知見(特に批評家と分析者からの知見)に基づいた修正や分岐の提案が含まれる場合があります。また、LLM(法学修士)が次の考えをまとめるためのガイダンスも提供します。

  9. **戻り値:**ツールは、コーディネーターの合成応答、ステータス、更新されたコンテキスト (ブランチ、履歴の長さ) を含む JSON 文字列を返します。

  10. **反復:**呼び出し元の LLM はコーディネーターの応答とガイダンスを使用して次のsequentialthinkingツール呼び出しを策定し、提案に応じて修正または分岐をトリガーする可能性があります。

トークン消費警告

⚠️トークン使用量の増加:マルチエージェントシステムアーキテクチャのため、このツールはシングルエージェントの代替ツールや以前のTypeScriptバージョンよりも大幅に多くのトークンを消費します。sequentialthinking sequentialthinking各呼び出しは以下を呼び出します。

  • コーディネーター エージェント ( Team自体)。

  • 複数の専門エージェント (コーディネーターの委任に応じて、プランナー、リサーチャー、アナライザー、批評家、シンセサイザーのいずれかになる可能性あり)。

この並列処理により、単一エージェントや状態追跡アプローチと比較して、トークン使用量が大幅に増加します(思考ステップごとに3~6倍以上になる可能性があります)。それに応じて予算と計画を立ててください。このツールは、トークン効率よりも分析の深さと品質を優先します。

前提条件

  • Python 3.10以上

  • 互換性のある LLM API へのアクセス( agno用に構成)。システムは現在以下をサポートしています。

    • Groq: GROQ_API_KEYが必要です。

    • DeepSeek: DEEPSEEK_API_KEYが必要です。

    • OpenRouter: OPENROUTER_API_KEYが必要です。

    • LLM_PROVIDER環境変数を使用して、必要なプロバイダーを構成します (デフォルトはdeepseek )。

  • Exa API キー (Researcher エージェントの機能を使用する場合にのみ必要)

    • EXA_API_KEY環境変数を介して設定します。

  • uvパッケージ マネージャー (推奨) またはpip

MCP サーバー構成 (クライアント側)

このサーバーは、MCPの想定通り、stdio経由で通信する標準実行スクリプトとして実行されます。具体的な設定方法は、MCPクライアントの実装によって異なります。外部ツールサーバーの統合に関する詳細は、クライアントのドキュメントを参照してください。

MCP クライアント構成内のenvセクションには、選択したLLM_PROVIDERの API キーを含める必要があります。

{
  "mcpServers": {
      "mas-sequential-thinking": {
         "command": "uvx", // Or "python", "path/to/venv/bin/python" etc.
         "args": [
            "mcp-server-mas-sequential-thinking" // Or the path to your main script, e.g., "main.py"
         ],
         "env": {
            "LLM_PROVIDER": "deepseek", // Or "groq", "openrouter"
            // "GROQ_API_KEY": "your_groq_api_key", // Only if LLM_PROVIDER="groq"
            "DEEPSEEK_API_KEY": "your_deepseek_api_key", // Default provider
            // "OPENROUTER_API_KEY": "your_openrouter_api_key", // Only if LLM_PROVIDER="openrouter"
            "DEEPSEEK_BASE_URL": "your_base_url_if_needed", // Optional: If using a custom endpoint for DeepSeek
            "EXA_API_KEY": "your_exa_api_key" // Only if using Exa
         }
      }
   }
}

インストールとセットアップ

Smithery経由でインストール

Smithery経由で Claude Desktop 用の Sequential Thinking Multi-Agent System を自動的にインストールするには:

npx -y @smithery/cli install @FradSer/mcp-server-mas-sequential-thinking --client claude

手動インストール

  1. リポジトリをクローンします。

    git clone git@github.com:FradSer/mcp-server-mas-sequential-thinking.git
    cd mcp-server-mas-sequential-thinking
  2. **環境変数を設定する:**プロジェクトのルート ディレクトリに.envファイルを作成するか、変数を環境に直接エクスポートします。

    # --- LLM Configuration ---
    # Select the LLM provider: "deepseek" (default), "groq", or "openrouter"
    LLM_PROVIDER="deepseek"
    
    # Provide the API key for the chosen provider:
    # GROQ_API_KEY="your_groq_api_key"
    DEEPSEEK_API_KEY="your_deepseek_api_key"
    # OPENROUTER_API_KEY="your_openrouter_api_key"
    
    # Optional: Base URL override (e.g., for custom DeepSeek endpoints)
    # DEEPSEEK_BASE_URL="your_base_url_if_needed"
    
    # Optional: Specify different models for Team Coordinator and Specialist Agents
    # Defaults are set within the code based on the provider if these are not set.
    # Example for Groq:
    # GROQ_TEAM_MODEL_ID="llama3-70b-8192"
    # GROQ_AGENT_MODEL_ID="llama3-8b-8192"
    # Example for DeepSeek:
    # DEEPSEEK_TEAM_MODEL_ID="deepseek-chat" # Note: `deepseek-reasoner` is not recommended as it doesn't support function calling
    # DEEPSEEK_AGENT_MODEL_ID="deepseek-chat" # Recommended for specialists
    # Example for OpenRouter:
    # OPENROUTER_TEAM_MODEL_ID="deepseek/deepseek-r1" # Example, adjust as needed
    # OPENROUTER_AGENT_MODEL_ID="deepseek/deepseek-chat" # Example, adjust as needed
    
    # --- External Tools ---
    # Required ONLY if the Researcher agent is used and needs Exa
    EXA_API_KEY="your_exa_api_key"

    モデル選択に関する注意:

    • TEAM_MODEL_IDはコーディネーター( Teamオブジェクト)によって使用されます。この役割は、強力な推論、統合、および委任機能の恩恵を受けます。ここでは、機能とコスト/速度のバランスを考慮し、より強力なモデル(例: deepseek-chatclaude-3-opusgpt-4-turbo )の使用を検討してください。

    • AGENT_MODEL_IDは、専門エージェント(プランナー、リサーチャーなど)によって使用されます。これらのエージェントは、特定のサブタスクを担当します。タスクの複雑さや予算/パフォーマンスのニーズに応じて、より高速またはコスト効率の高いモデル(例: deepseek-chatclaude-3-sonnetllama3-8b )が適している場合があります。

    • これらの環境変数が設定されていない場合、デフォルトはコード内(例: main.py )で提供されます。ユースケースに最適なバランスを見つけるために、実験することをお勧めします。

  3. **依存関係のインストール:**仮想環境を使用することを強くお勧めします。

    • uvの使用 (推奨):

      # Install uv if you don't have it:
      # curl -LsSf https://astral.sh/uv/install.sh | sh
      # source $HOME/.cargo/env # Or restart your shell
      
      # Create and activate a virtual environment (optional but recommended)
      python -m venv .venv
      source .venv/bin/activate # On Windows use `.venv\\Scripts\\activate`
      
      # Install dependencies
      uv pip install -r requirements.txt
      # Or if a pyproject.toml exists with dependencies defined:
      # uv pip install .
    • pipを使用する:

      # Create and activate a virtual environment (optional but recommended)
      python -m venv .venv
      source .venv/bin/activate # On Windows use `.venv\\Scripts\\activate`
      
      # Install dependencies
      pip install -r requirements.txt
      # Or if a pyproject.toml exists with dependencies defined:
      # pip install .

使用法

環境変数が設定されており、仮想環境 (使用されている場合) がアクティブであることを確認します。

サーバーを実行します。次のいずれかの方法を選択してください。

  1. uv runの使用 (推奨):

    uv --directory /path/to/mcp-server-mas-sequential-thinking run mcp-server-mas-sequential-thinking
  2. Python を直接使用する:

    python main.py

サーバーが起動し、stdio 経由でリクエストをリッスンして、 sequentialthinkingツールを使用するように構成された互換性のある MCP クライアントがそれを利用できるようになります。

sequentialthinkingツールパラメータ

このツールは、 ThoughtData Pydantic モデルに一致する引数を必要とします。

# Simplified representation from src/models.py
class ThoughtData(BaseModel):
    thought: str                 # Content of the current thought/step
    thoughtNumber: int           # Sequence number (>=1)
    totalThoughts: int           # Estimated total steps (>=1, suggest >=5)
    nextThoughtNeeded: bool      # Is another step required after this?
    isRevision: bool = False     # Is this revising a previous thought?
    revisesThought: Optional[int] = None # If isRevision, which thought number?
    branchFromThought: Optional[int] = None # If branching, from which thought?
    branchId: Optional[str] = None # Unique ID for the new branch being created
    needsMoreThoughts: bool = False # Signal if estimate is too low before last step

ツールの操作(概念例)

LLM はこのツールと反復的に対話します。

  1. **LLM:**問題の定義とともにスタータープロンプト ( sequential-thinking-starterなど) を使用します。

  2. LLM: thoughtNumber: 1 、最初のthought (例: 「分析を計画する...」)、推定totalThoughts 、およびnextThoughtNeeded: Trueを使用して、 sequentialthinkingツールを呼び出します。

  3. サーバー: MASが思考を処理します。コーディネーターは専門家からの回答を統合し、ガイダンスを提供します(例:「分析計画は完了しました。次にXの調査を提案します。現時点では修正は推奨されません。」)。

  4. LLM: coordinatorResponseを含む JSON 応答を受信します。

  5. LLM: coordinatorResponseに基づいて次の考えをまとめます (例: 「利用可能なツールを使用して X を調査する...」)。

  6. LLM: thoughtNumber: 2 、新しいthought 、潜在的に更新されたtotalThoughtsnextThoughtNeeded: Truesequentialthinkingツールを呼び出します。

  7. サーバー: MASプロセス。コーディネーターが統合します(例:「調査完了。調査結果から、思考#1の仮定に欠陥があることが示唆されました。推奨事項: 思考#1を修正してください…」)。

  8. **LLM:**応答を受け取り、推奨事項を記録します。

  9. **LLM:**修正思考を策定します。

  10. LLM: thoughtNumber: 3 、リビジョンthoughtisRevision: TruerevisesThought: 1nextThoughtNeeded: Truesequentialthinkingツールを呼び出します。

  11. ...など、必要に応じてプロセスを分岐または拡張する可能性があります。

ツール応答形式

ツールは次の内容を含む JSON 文字列を返します。

{
  "processedThoughtNumber": int,          // The thought number that was just processed
  "estimatedTotalThoughts": int,          // The current estimate of total thoughts
  "nextThoughtNeeded": bool,              // Whether the process indicates more steps are needed
  "coordinatorResponse": "...",           // Synthesized output from the agent team, including analysis, findings, and guidance for the next step.
  "branches": ["main", "branch-id-1"],  // List of active branch IDs
  "thoughtHistoryLength": int,          // Total number of thoughts processed so far (across all branches)
  "branchDetails": {
    "currentBranchId": "main",            // The ID of the branch the processed thought belongs to
    "branchOriginThought": null | int,    // The thought number where the current branch diverged (null for 'main')
    "allBranches": {                      // Count of thoughts in each active branch
      "main": 5,
      "branch-id-1": 2
     }
  },
  "isRevision": bool,                     // Was the processed thought a revision?
  "revisesThought": null | int,           // Which thought number was revised (if isRevision is true)
  "isBranch": bool,                       // Did this thought start a new branch?
  "status": "success | validation_error | failed", // Outcome status
  "error": null | "Error message..."     // Error details if status is not 'success'
}

ログ記録

  • ログはデフォルトで~/.sequential_thinking/logs/sequential_thinking.logに書き込まれます。(ログ設定コードで設定を調整できる場合があります)。

  • Python の標準loggingモジュールを使用します。

  • ローテーションファイル ハンドラー (例: 10 MB 制限、5 つのバックアップ) とコンソール ハンドラー (通常は INFO レベル) が含まれます。

  • ログには、タイムスタンプ、レベル、ロガー名、メッセージ、処理中の思考の構造化された表現が含まれます。

発達

  1. リポジトリをクローンします: (インストール時と同様)

    git clone git@github.com:FradSer/mcp-server-mas-sequential-thinking.git
    cd mcp-server-mas-sequential-thinking
  2. 仮想環境の設定: (推奨)

    python -m venv .venv
    source .venv/bin/activate # On Windows use `.venv\\Scripts\\activate`
  3. 依存関係をインストールします (dev を含む): requirements-dev.txtまたはpyproject.tomlで開発ツール ( pytestruffblackmypyなど) が指定されていることを確認します。

    # Using uv
    uv pip install -r requirements.txt
    uv pip install -r requirements-dev.txt # Or install extras if defined in pyproject.toml: uv pip install -e ".[dev]"
    
    # Using pip
    pip install -r requirements.txt
    pip install -r requirements-dev.txt # Or install extras if defined in pyproject.toml: pip install -e ".[dev]"
  4. **チェックの実行:**リンター、フォーマッタ、テストを実行します (プロジェクトの設定に基づいてコマンドを調整します)。

    # Example commands (replace with actual commands used in the project)
    ruff check . --fix
    black .
    mypy .
    pytest
  5. 貢献: (貢献ガイドラインの追加を検討してください: ブランチ戦略、プル リクエスト プロセス、コード スタイル)。

ライセンス

マサチューセッツ工科大学

Available Tools

1 tool
sequentialthinkingA

Multi-step sequential reasoning contract. Always treat this tool as iterative: after each response, read structuredContent.should_continue and continue calling until it is false. Actively use reflection: when a step reveals a flaw, explicitly send a revision step with isRevision=true. Input contract:

  • thought: one concrete reasoning step in natural language.

  • thoughtNumber: 1-based step index; increment by one for each new step.

  • totalThoughts: target number of steps for the current plan.

  • nextThoughtNeeded: true while the sequence should continue; false on final step.

  • isRevision: true only when revising an earlier conclusion.

  • branchFromThought + branchId: set together to explore an alternative branch.

  • needsMoreThoughts: true only when extending beyond totalThoughts. Output contract:

  • structuredContent.should_continue: canonical continuation signal.

  • structuredContent.next_thought_number: next recommended thoughtNumber.

  • structuredContent.stop_reason: canonical reason code for orchestration.

ParametersJSON Schema
NameRequiredDescriptionDefault
thoughtYesCurrent reasoning step text. Keep this to one concrete step.
thoughtNumberYes1-based sequence index for this thought. Increment for each step.
totalThoughtsYesEstimated total number of steps in the current reasoning plan.
nextThoughtNeededYesSet true when another thought follows this one. Set false on the final thought.
isRevisionYesSet true only when this step revises an earlier conclusion.
branchFromThoughtYesOriginal thought number for branching. Null for the main path.
branchIdYesBranch identifier. Required when branchFromThought is not null.
needsMoreThoughtsYesSet true only when you must continue beyond totalThoughts.

Output Schema

ParametersJSON Schema
NameRequiredDescription
should_continueYesIf true, call sequentialthinking again. The tool is designed for multi-step reasoning loops.
next_thought_numberNoRecommended thoughtNumber for the next call. Null means no next step is currently required.
stop_reasonYesMachine-readable reason that explains why to continue or stop.
current_thought_numberYesEcho of the current thoughtNumber after normalization.
total_thoughtsYesEcho of current totalThoughts after normalization.
next_call_argumentsNoConcrete argument recommendations for the next call when the current run completes successfully and should continue.
parameter_usageYesContract reminders for each core parameter to keep multi-step iterations consistent.

TDQS

A4.5/5.0
Behavior4/5

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

Without annotations, the description carries full burden. It discloses the iterative nature, revision mechanism, and output contract. It lacks explicit statements about side effects or auth but is sufficient for the intended reasoning use.

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 well-structured with clear sections (input contract, output contract) and front-loaded with the core concept. It is slightly lengthy but each sentence adds value, so it earns a 4.

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

Completeness4/5

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

Given the tool's complexity (8 required params, output schema), the description covers the input and output contracts, usage pattern, and corner cases like revision and branching. It is nearly complete, lacking only examples or defaults, which are covered by the schema.

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?

Schema coverage is 100% with descriptions for all 8 parameters. The description adds value by contextualizing parameter usage, such as grouping branchFromThought and branchId, and clarifying that needsMoreThoughts extends beyond totalThoughts.

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 is a 'Multi-step sequential reasoning contract' and explains its iterative, revision, and branching capabilities. It is very specific and distinguishes itself by detailing the contract-like behavior.

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

Usage Guidelines5/5

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

The description explicitly instructs to treat the tool iteratively, read structuredContent.should_continue, and continue until false. It also specifies when to use revisions (when a flaw is revealed) and branching (with branchFromThought and branchId).

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. 1 tool updatev0.8.0
    • Changedsequentialthinking31 fields changed
      • addedInput schema / properties / branchFromThought
        Added value: +{
        +  "anyOf": [
        +    {
        +      "minimum": 1,
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Original thought number for branching. Null for the main path.",
        +  "title": "Branchfromthought"
        +}
      • addedInput schema / properties / branchId
        Added value: +{
        +  "anyOf": [
        +    {
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Branch identifier. Required when branchFromThought is not null.",
        +  "title": "Branchid"
        +}
      • removedInput schema / properties / branch_from
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "integer"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "title": "Branch From"
        -}
      • removedInput schema / properties / branch_id
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "title": "Branch Id"
        -}
      • addedInput schema / properties / isRevision
        Added value: +{
        +  "description": "Set true only when this step revises an earlier conclusion.",
        +  "title": "Isrevision",
        +  "type": "boolean"
        +}
      • removedInput schema / properties / is_revision
        Removed value: -{
        -  "default": false,
        -  "title": "Is Revision",
        -  "type": "boolean"
        -}
      • addedInput schema / properties / needsMoreThoughts
        Added value: +{
        +  "description": "Set true only when you must continue beyond totalThoughts.",
        +  "title": "Needsmorethoughts",
        +  "type": "boolean"
        +}
      • removedInput schema / properties / needs_more
        Removed value: -{
        -  "default": false,
        -  "title": "Needs More",
        -  "type": "boolean"
        -}
      • addedInput schema / properties / nextThoughtNeeded
        Added value: +{
        +  "description": "Set true when another thought follows this one. Set false on the final thought.",
        +  "title": "Nextthoughtneeded",
        +  "type": "boolean"
        +}
      • removedInput schema / properties / next_needed
        Removed value: -{
        -  "title": "Next Needed",
        -  "type": "boolean"
        -}
      • removedInput schema / properties / revises_thought
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "integer"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "title": "Revises Thought"
        -}
      • addedInput schema / properties / thought / description
        Added value: +"Current reasoning step text. Keep this to one concrete step."
      • addedInput schema / properties / thought / minLength
        Added value: +1
      • addedInput schema / properties / thoughtNumber
        Added value: +{
        +  "description": "1-based sequence index for this thought. Increment for each step.",
        +  "minimum": 1,
        +  "title": "Thoughtnumber",
        +  "type": "integer"
        +}
      • removedInput schema / properties / thought_number
        Removed value: -{
        -  "title": "Thought Number",
        -  "type": "integer"
        -}
      • addedInput schema / properties / totalThoughts
        Added value: +{
        +  "description": "Estimated total number of steps in the current reasoning plan.",
        +  "minimum": 1,
        +  "title": "Totalthoughts",
        +  "type": "integer"
        +}
      • removedInput schema / properties / total_thoughts
        Removed value: -{
        -  "title": "Total Thoughts",
        -  "type": "integer"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "thought",
        -  "thought_number",
        -  "total_thoughts",
        -  "next_needed"
        -]New value: +[
        +  "thought",
        +  "thoughtNumber",
        +  "totalThoughts",
        +  "nextThoughtNeeded",
        +  "isRevision",
        +  "branchFromThought",
        +  "branchId",
        +  "needsMoreThoughts"
        +]
      • addedInput schema / title
        Added value: +"sequentialthinkingArguments"
      • addedOutput schema / $defs
        Added value: +{
        +  "NextCallArguments": {
        +    "description": "Recommended arguments for the next tool call.",
        +    "properties": {
        +      "needsMoreThoughts": {
        +        "description": "Set to true only when you need to exceed totalThoughts and extend the sequence.",
        +        "title": "Needsmorethoughts",
        +        "type": "boolean"
        +      },
        +      "nextThoughtNeeded": {
        +        "description": "Set to true when another step should follow the next call. Set to false on the final thought.",
        +        "title": "Nextthoughtneeded",
        +        "type": "boolean"
        +      },
        +      "thoughtNumber": {
        +        "description": "Recommended thoughtNumber for the next tool call.",
        +        "minimum": 1,
        +        "title": "Thoughtnumber",
        +        "type": "integer"
        +      },
        +      "totalThoughts": {
        +        "description": "Recommended totalThoughts for the next tool call.",
        +        "minimum": 1,
        +        "title": "Totalthoughts",
        +        "type": "integer"
        +      }
        +    },
        +    "required": [
        +      "thoughtNumber",
        +      "totalThoughts",
        +      "nextThoughtNeeded",
        +      "needsMoreThoughts"
        +    ],
        +    "title": "NextCallArguments",
        +    "type": "object"
        +  },
        +  "StopReason": {
        +    "description": "Reason code for continuing or stopping thought iteration.",
        +    "enum": [
        +      "next_thought_required",
        +      "needs_more_thoughts",
        +      "thought_sequence_complete",
        +      "validation_error",
        +      "processing_error",
        +      "rate_limited",
        +      "request_too_large",
        +      "unexpected_error"
        +    ],
        +    "title": "StopReason",
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / description
        Added value: +"Structured control fields returned on every tool response."
      • addedOutput schema / properties / current_thought_number
        Added value: +{
        +  "description": "Echo of the current thoughtNumber after normalization.",
        +  "minimum": 1,
        +  "title": "Current Thought Number",
        +  "type": "integer"
        +}
      • addedOutput schema / properties / next_call_arguments
        Added value: +{
        +  "anyOf": [
        +    {
        +      "$ref": "#/$defs/NextCallArguments"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Concrete argument recommendations for the next call when the current run completes successfully and should continue."
        +}
      • addedOutput schema / properties / next_thought_number
        Added value: +{
        +  "anyOf": [
        +    {
        +      "minimum": 1,
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Recommended thoughtNumber for the next call. Null means no next step is currently required.",
        +  "title": "Next Thought Number"
        +}
      • addedOutput schema / properties / parameter_usage
        Added value: +{
        +  "additionalProperties": {
        +    "type": "string"
        +  },
        +  "description": "Contract reminders for each core parameter to keep multi-step iterations consistent.",
        +  "title": "Parameter Usage",
        +  "type": "object"
        +}
      • removedOutput schema / properties / result
        Removed value: -{
        -  "title": "Result",
        -  "type": "string"
        -}
      • addedOutput schema / properties / should_continue
        Added value: +{
        +  "description": "If true, call sequentialthinking again. The tool is designed for multi-step reasoning loops.",
        +  "title": "Should Continue",
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / stop_reason
        Added value: +{
        +  "$ref": "#/$defs/StopReason",
        +  "description": "Machine-readable reason that explains why to continue or stop."
        +}
      • addedOutput schema / properties / total_thoughts
        Added value: +{
        +  "description": "Echo of current totalThoughts after normalization.",
        +  "minimum": 1,
        +  "title": "Total Thoughts",
        +  "type": "integer"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "result"
        -]New value: +[
        +  "should_continue",
        +  "stop_reason",
        +  "current_thought_number",
        +  "total_thoughts",
        +  "parameter_usage"
        +]
      • changedOutput schema / title
        Previous value: -"sequentialthinkingOutput"New value: +"SequentialThinkingStructuredContent"
  2. 1 tool updatev1.0.0
    • First observedsequentialthinking

TDQS

A4.7/5.0
Disambiguation5/5

Only one tool exists, so there is no possibility of ambiguity or confusion between tools.

Naming Consistency5/5

With a single tool, naming consistency is inherently perfect; the name clearly describes the action.

Tool Count5/5

One tool is appropriate for a focused multi-step reasoning system; the tool itself is complex and self-contained.

Completeness5/5

The tool covers the full sequential reasoning lifecycle including revision, branching, and extension, leaving no obvious gaps.

Maintenance

ActivityMaintained
ResponsivenessSyncing

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

  • F
    license
    C
    quality
    D
    maintenance
    An MCP server implementing the Unified Cognitive Processing Framework for advanced problem-solving, creative thinking, and cognitive analysis through structured tools for knowledge mapping, recursive questioning, and perspective generation.
    3
    16
    -
  • A
    license
    A
    quality
    D
    maintenance
    A MCP server that implements sequential thinking protocols, provides structured problem-solving methods, decomposes complex problems into manageable steps, and supports iterative optimization and alternative reasoning paths.
    1
    2
    Apache 2.0

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/FradSer/mcp-server-mas-sequential-thinking'

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