MCP · Structured reasoning · Model Context Protocol maintainers
Sequential Thinking Reference MCP Server
Record a sequence of steps, branches and revisions so a client can organize a multi-step problem explicitly.
Default diagnostics include step text. Our synthetic text appeared in stderr. The logging opt-out removed that text from the second process diagnostic stream; it does not erase client transcripts.
Understand the tool
What it does.
Sequential Thinking is a reference MCP tool for recording structured thought steps. The client supplies the text, step number and whether another step is needed. Branch and revision fields let it track a changed approach. The server is not a second model and does not certify the reasoning.
Why use it?
Use it when you want a client to work through a problem in an explicit sequence and revisit an assumption. Its value depends on how the host uses those records. A successful tool call proves that the record was accepted, not that the answer is correct.
A useful fit for
- Prototyping explicit step-based workflows
- Comparing alternatives with named branches
- Tracking revisions in a bounded planning exercise
From need to output
Ways to put it to work.
These are suggested workflows based on the documented capabilities. They are not recorded runtime results.
Use case 01
Compare two implementation approaches
A developer is choosing between a simple local cache and an external service.
- Record the constraints as the first step.
- Create a branch for the alternative and state its tradeoffs.
- Revise a mistaken assumption and finish with a conclusion that cites external evidence where needed.
Intended outputAn explicit sequence of decisions that can be reviewed.
Use case 02
Organize a troubleshooting plan
A problem has several plausible causes and the assistant needs to avoid jumping to a fix.
- State one testable hypothesis.
- Record the next diagnostic step and its expected evidence.
- Revise or branch when the real result differs.
Intended outputA structured investigation plan, with actual diagnosis still dependent on external tools.
A concrete starting point
Illustrative prompt: compare a bounded choice
The example asks for structure, not a claim of enhanced intelligence. Our fixture used authored step strings and measured validation/logging behavior only.
Use Sequential Thinking to compare two synthetic approaches to storing a small cache. Record the assumptions, one alternative branch and any revision. End with a concise recommendation and list what still needs measurement. Do not include secrets in the step text.What this can change
Step text is held in server process state and is logged to stderr by default unless logging is disabled. The client may also retain it.
This example has not been executed for this review. Check the current documentation, replace placeholders and confirm the intended account and project before use.
Before you start
Setup and access.
What you’ll need
- Node.js and @modelcontextprotocol/server-sequential-thinking 1.0.0.
- A stdio MCP client that can supply the required structured fields.
- Set DISABLE_THOUGHT_LOGGING=true when step text should not appear in the server diagnostic stream.
- Authentication
- No server account or model API key is required for the local tool.
- Can read
- Step text and branch/revision metadata supplied by the client
- Can write or change
- In-process step history
- Submitted text in default stderr diagnostics
- Network and data flow
- No external reasoning service is needed by the tested server; the host model is separate
- Approval and control
- Review the host logging and retention policy before including sensitive task details.
Check your environment
Compatibility, costs and license.
Compatibility notes
- Local stdio MCP clients
- Current reference implementation for learning and prototyping
Costs and account requirements
No subscription for the local reference server. Additional host-model calls or longer context can still affect cost.
Current pricing or plan information ↗Apache-2.0 and MIT components
The repository license covers new contributions under Apache-2.0 and preserves MIT terms for existing material. The 1.0.0 npm metadata points to that license; inspect the exact distribution and notices before redistribution.
Read the license or service terms ↗Keep the boundaries visible
Concerns and limitations.
Default diagnostics include step text
Our synthetic text appeared in stderr. The logging opt-out removed that text from the second process diagnostic stream; it does not erase client transcripts.
Structure can look like certainty
Branch and revision metadata describe a process. They are not evidence that the process reached a correct or safe decision.
Where it may fall short
- A new server process started a fresh history in our fixture. Do not assume persistent project memory.
- No claim about improved model quality, lower cost or fewer mistakes follows from these protocol checks.
Observed behavior · 2026-10-18
Runtime and security findings.
Nine checks exercised step validation, branching, revision, process-local history and diagnostic logging. Default stderr contained submitted text; the logging opt-out removed the second fixture string from stderr.
These checks cover the conditions below. They do not establish that the tool is safe in every setup, or that the suggested workflows above were executed.
What we found
Observed in this evaluation · medium severity under stated conditions
Default logs include supplied step text
The first synthetic step appeared in stderr. With DISABLE_THOUGHT_LOGGING=true, PRIVATE_SYNTHETIC_STEP was absent from the second process stderr. This says nothing about host or client transcript retention.
In practice: Set the logging opt-out and check the client logging policy before supplying sensitive details.
Observed in this evaluation
A structured record is not a reasoning result
The server accepted branch fixture-b and a revision, rejected thoughtNumber=0, and returned history length 1 after a new process started. These are state/schema observations only.
In practice: Evaluate the host workflow separately for correctness and cost. Store any required long-term decision record explicitly.
Version, environment and fixture
- Version or deployment
- 1.0.0
- Tested target
- @modelcontextprotocol/server-sequential-thinking
- Artifact identity
- sha512-ykTmeS4Eejs+FESDrD73mDBNYCkb+cCZJ1MWuv7/vwucbVgGfEbBL5HVt2nVw0/vNF8jz+o9sO/WmxxfXt0J6w== (official npm distribution integrity; exact dependency lock retained)
- Environment and fixture
- Windows 11 build 26200; Node.js 24.18.0; @modelcontextprotocol/server-sequential-thinking 1.0.0.
- Launch: node <PACKAGES>/@modelcontextprotocol/server-sequential-thinking/dist/index.js in fresh home/config/temp directories. The first process uses default logging; the second sets DISABLE_THOUGHT_LOGGING=true.
- Authored strings only; no model reasoning, API call or task-quality benchmark. The host submitted explicit sequence, branch and revision fields.
Checks and results
9 recorded checks. Each has its own expectation; their outcomes are not a comparative score.
InitializeMet expectation
- Method
{"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"ionbin-fixture-eval","version":"1.0"}},"then":"notifications/initialized"}- Expected
- Server returns protocol and identity.
- Observed
- JSON-RPC result: protocolVersion=2025-03-26; serverInfo={"name":"sequential-thinking-server","version":"1.0.0"}.
Tools ListMet expectation
- Method
{"method":"tools/list","params":{}}- Expected
- Server advertises its callable tools.
- Observed
- JSON-RPC result: 1 tools; names=sequentialthinking.
First StepMet expectation
- Method
{"method":"tools/call","params":{"name":"sequentialthinking","arguments":{"thought":"Fixture plan: compare option A with option B.","thoughtNumber":1,"totalThoughts":2,"nextThoughtNeeded":true}}}- Expected
- The first structured step is accepted.
- Observed
- JSON-RPC/tool result: { "thoughtNumber": 1, "totalThoughts": 2, "nextThoughtNeeded": true, "branches": [], "thoughtHistoryLength": 1 }
BranchMet expectation
- Method
{"method":"tools/call","params":{"name":"sequentialthinking","arguments":{"thought":"Fixture alternative: inspect option B first.","thoughtNumber":2,"totalThoughts":3,"nextThoughtNeeded":true,"branchFromThought":1,"branchId":"fixture-b"}}}- Expected
- A branch can be recorded from an earlier step.
- Observed
- JSON-RPC/tool result: { "thoughtNumber": 2, "totalThoughts": 3, "nextThoughtNeeded": true, "branches": [ "fixture-b" ], "thoughtHistoryLength": 2 }
RevisionMet expectation
- Method
{"method":"tools/call","params":{"name":"sequentialthinking","arguments":{"thought":"Fixture correction: prior estimate was incomplete.","thoughtNumber":3,"totalThoughts":3,"nextThoughtNeeded":false,"isRevision":true,"revisesThought":1}}}- Expected
- A revision completes the synthetic sequence.
- Observed
- JSON-RPC/tool result: { "thoughtNumber": 3, "totalThoughts": 3, "nextThoughtNeeded": false, "branches": [ "fixture-b" ], "thoughtHistoryLength": 3 }
Invalid StepMet expectation
- Method
{"method":"tools/call","params":{"name":"sequentialthinking","arguments":{"thought":"Invalid fixture","thoughtNumber":0,"totalThoughts":1,"nextThoughtNeeded":false}}}- Expected
- Zero is rejected as a thought number.
- Observed
- Tool result isError=true: MCP error -32602: Input validation error: Invalid arguments for tool sequentialthinking: Too small: expected number to be >=1 at thoughtNumber
Default Log ContentMet expectation
- Method
{"operation":"Inspect server stderr after the synthetic sequence"}- Expected
- Determine whether default diagnostics contain submitted text.
- Observed
- containsFixture=true: stderr included the authored string "Fixture plan: compare option A with option B."
New SessionMet expectation
- Method
{"method":"tools/call","params":{"name":"sequentialthinking","arguments":{"thought":"PRIVATE_SYNTHETIC_STEP","thoughtNumber":1,"totalThoughts":1,"nextThoughtNeeded":false}},"sequence":"Start a fresh process with DISABLE_THOUGHT_LOGGING=true."}- Expected
- A new server starts a fresh sequence.
- Observed
- JSON-RPC/tool result: { "thoughtNumber": 1, "totalThoughts": 1, "nextThoughtNeeded": false, "branches": [], "thoughtHistoryLength": 1 }
Logging OptoutMet expectation
- Method
{"operation":"Inspect second server stderr","env":{"DISABLE_THOUGHT_LOGGING":"true"}}- Expected
- The submitted synthetic text is absent from stderr.
- Observed
- containsFixture=false: stderr contained only the server startup line; PRIVATE_SYNTHETIC_STEP was absent with DISABLE_THOUGHT_LOGGING=true.
Practical caveats
- The server did not generate or validate the truth of our authored steps.
- This reference implementation is not a production quality or intelligence certification.
What this evaluation does not establish
- Changes to model accuracy, reasoning quality, token cost or task completion were not measured.
- Cross-client isolation, high-volume sessions and host-side transcript retention were not tested.
Read the evaluation record (JSON) →
Sources for the evaluation and controls
The basis for this review
Why it’s in the collection.
Adds explicit branch/revision records with unusually clear limits on what the test proves. Shared repository interest is not individual usage.
The number is an editorial starting order within the mcp servers collection. It does not measure popularity, speed, reliability or safety.
Why we added it
Structured problem-solving records can be tested for validation, revision and branching without pretending to measure reasoning quality.
Selection evidence checked .
- Repository interest
- 91,357 GitHub stars at this snapshot ↗
Shared reference-server repository; not an individual-server adoption count
- Repository activity
- Last push reported by GitHub: . A push can include documentation or maintenance; it does not establish a new stable release.
- Release signal
- v1.0.0 ↗ · published . This selection signal can differ from the exact runtime tested above.
- Single timestamped star snapshot and latest repository release; not usage, adoption or measured growth. The latest repository release may concern a different package.
- Repository interest and release activity do not establish reliability, model quality or safety. The evaluation names the exact version and conditions tested.
What we reviewed
- Official documentation, current package identity, access model and license.
- Bounded runtime and security fixtures are recorded separately below.
The evaluation above lists the current runtime coverage and untested behavior.
Reviewed Oct 18, 2026. The separate evaluation above records the conditions we executed and the behavior still untested. Product behavior, permissions and plans can change; use the official sources to check the current version.
Follow the evidence
Official sources.
- Sequential Thinking documentation ↗github.com
- Current reference-server status ↗github.com
- Implementation ↗github.com
- License terms ↗github.com