mcp-sequential-thinking: a persistent thinking journal for MCP clients
Local MCP work notes with persistent sessions, decisions, evidence and resumable tasks.
At a glance
- What is it?
- The server records schema-validated thoughts, revisions and branches to an append-only JSONL log so a session can be resumed. It does not generate or improve reasoning, and that boundary decides who should install it.
- Who is it for?
- Adopt it if you want an auditable, resumable record of a reasoning process inside an MCP client, and you accept that the log is lexical, not semantic. Do not adopt it if you expect the server to sharpen or evaluate your reasoning; the README states that stays with the calling model.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 6 days ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What mcp-sequential-thinking records that a chat transcript does not
A chat transcript is a flat sequence of turns. This server keeps a typed journal instead. Each thought is validated against a Pydantic model and written to an append-only JSONL session log, so the record survives a crash and can be replayed. The README describes the output as a structured, typed audit trail, with `structured_content` on every tool response.
The intended user is someone running an MCP-capable client who wants the shape of a reasoning process preserved: which stage a thought belonged to, which earlier thought it revised, which branch it opened. The server organizes thoughts through named cognitive stages (Problem Definition, Research, Analysis, Synthesis, Conclusion) and warns, or rejects in `--strict-stages` mode, when a thought skips or backtracks a stage. That is a constraint on the record, not on the model.
The README is explicit about the boundary: the server "does not evaluate, generate, or improve the reasoning itself; that stays with whatever model is calling it." Read that as the product definition. If you want a tool that argues back, this is the wrong one.
How the server stores thoughts, revisions and branches
The architecture is small and readable from the repository layout. `server.py` holds the MCP tools, `models.py` holds the Pydantic data models, `storage.py` is the persistence layer and `storage_utils.py` carries shared helpers, while `analysis.py` does pattern detection. Persistence uses Portalocker for thread-safe file access, and the store is an append-only JSONL log with automatic crash recovery.
Because the log is append-only, a revision does not overwrite the thought it revises. It adds a record that points back at an earlier thought number, and the analysis layer is revision-aware when it summarizes. Branching works the same way: forking an alternative line of reasoning adds records rather than rewriting the mainline. The progress report reflects this, giving explicit mainline position, total recorded thoughts, branch count and revision count instead of one ambiguous percentage.
Two analysis features deserve a plain description. Related thought analysis finds thoughts that are lexically similar to the current one, independent of stage, plus a separate grouping by tag and stage. The README calls this "a categorical signal, not a claim of semantic relevance", which is an honest label and also a real ceiling: lexical similarity will group thoughts that share vocabulary, not thoughts that share meaning. Summary generation is likewise a deterministic extraction of what was recorded, per-stage excerpts, aggregated challenged assumptions, open branches and revision chains, not new reasoning.
Error handling splits along a useful line. Protocol and validation failures such as a bad stage, a duplicate thought number or path traversal fail the call outright, while execution errors the caller can adapt to come back as a normal tool result. That distinction matters when a client is deciding whether to retry.
Install and first run: uvx, pip, and a Claude Desktop config
The package is on PyPI as `mcp-sequential-thinking` and requires Python 3.10 or higher. The README recommends `uvx`, which runs it without an install step:
uvx mcp-sequential-thinkingIf you would rather install it permanently, the README gives the pip route and the entry-point script:
pip install mcp-sequential-thinking
mcp-sequential-thinkingFor a client, the recommended configuration points `uvx` at the PyPI package. On Linux the file is `~/.config/Claude/claude_desktop_config.json`, on macOS `~/Library/Application Support/Claude/claude_desktop_config.json`, and on Windows `%APPDATA%\Claude\claude_desktop_config.json`:
{
"mcpServers": {
"sequential-thinking": {
"command": "uvx",
"args": ["mcp-sequential-thinking"]
}
}
}If the package is already installed, the README offers a shorter form that calls the entry point directly, with no arguments:
{
"mcpServers": {
"sequential-thinking": {
"command": "mcp-sequential-thinking"
}
}
}After restarting the client, the server should appear as `sequential-thinking` and expose its tools; the first recorded thought is what creates the JSONL session log. To try unreleased code, the README shows pointing `uvx` at the repository with `--from git+https://github.com/arben-adm/mcp-sequential-thinking`, and there is a `debug_mcp_connection.py` script in the repository for connection problems. For source work, the setup is `uv venv`, then `uv pip install -e .` (or `-e ".[dev]"`, or `-e ".[all]"` for every optional group), with tests run through `pytest`.
Where the journal model breaks down
The stage framework is the most opinionated part of the project and the easiest to outgrow. A five-stage pipeline fits an investigation that moves from a question to a conclusion. It fits poorly when the work is exploratory, when the same stage is revisited many times, or when the sequence is genuinely non-linear. Warnings are tolerable; `--strict-stages` turns the same condition into a rejection, so a client that does not adapt will simply lose the thought.
Lexical similarity is the second limit. Two thoughts can reach the same conclusion in different words and never be linked, while two unrelated thoughts that share a phrase will be. The README is upfront that this is a categorical signal rather than semantic relevance, so the feature is best treated as a grouping aid, not as evidence that two thoughts are connected.
The append-only log has a cost the README does not address. Every revision and branch adds records, and the documentation does not describe compaction or a retention policy, nor does it describe rollback. Long-lived sessions will grow their JSONL files, and anyone planning to keep them around should verify how that behaves before depending on it. Finally, the project is a recorder: if the calling model's reasoning is weak, a well-structured journal of weak reasoning is still weak reasoning.
How it differs from the upstream sequential thinking server
The best-known comparison is the reference sequential thinking server shipped in the Model Context Protocol servers repository. That server is the origin of the thought-number, revision and branch vocabulary this project uses, and it is the tool most people mean when they search for sequential thinking with Claude or Cursor. The difference is what happens to the thoughts after they are produced.
The reference server keeps thinking state in the session. This project writes it to an append-only JSONL log through a thread-safe storage layer, which is what makes a session resumable and exportable, and what makes an audit trail possible at all. It also adds the stage framework, the strict mode, the deterministic summary extraction, and declared output schemas on every tool. The trade is weight: this server carries Pydantic models, Portalocker, a storage layer and a test suite, where the reference server is a single self-contained script. If you only want a scratchpad for a single conversation, the lighter option is the better fit. If you want the record to outlive the conversation, this one is built for that.
Maintenance, licence and upgrade cost
The repository is not archived. The last push was on 2026-09-07, and the most recent release listed is v0.6.1 from 2026-08-23, following v0.6.0 on 2026-07-03. Note that `pyproject.toml` declares version 0.7.0 while the release list stops at v0.6.1, so the tree on `master` is ahead of the latest tagged release. That is a normal state for an active project, but it means `uvx mcp-sequential-thinking` and the git URL in the README can resolve to different code.
The dependency surface is small and pinned with care: `mcp>=2,<3`, `pydantic>=2.12.0`, `portalocker` and `anyio>=4.9`. The upper bound on the MCP SDK is the main upgrade constraint, since a future MCP 3.x would require a change here. Optional extras are split into `dev`, `vis` (matplotlib, numpy) and `web` (fastapi, uvicorn), so a plain install stays light. The package is MIT licensed, which permits commercial use and modification; the repository also carries a SECURITY.md. That is a description of the terms, not legal advice, and anyone redistributing a modified version should read the licence text themselves.
Editorial conclusion
Adopt it if you want an auditable, resumable record of a reasoning process inside an MCP client, and you accept that the log is lexical, not semantic. Do not adopt it if you expect the server to sharpen or evaluate your reasoning; the README states that stays with the calling model. Before wiring it into a client, run the server once, record a thought, and inspect the JSONL file it writes, since the README does not document rollback or how the log is compacted.
Frequently asked questions
What does the mcp-sequential-thinking MCP server do?
It provides a structured thinking journal over the Model Context Protocol: schema-validated thoughts organized into stages, an append-only audit trail, structural analysis, and session export and import. The README states that it records and organizes a thinking process but does not evaluate, generate or improve the reasoning itself.
Can Claude use sequential thinking through an MCP server?
Yes. The README gives Claude Desktop configuration files for Linux, macOS and Windows, with the recommended setup pointing uvx at the mcp-sequential-thinking package, and an alternative that calls the installed mcp-sequential-thinking entry point. The model still does the reasoning; the server records it.
How do I use mcp-sequential-thinking?
Run it with uvx mcp-sequential-thinking, or install it with pip install mcp-sequential-thinking and run the mcp-sequential-thinking script. Then register it in your MCP client's configuration under an mcpServers entry named sequential-thinking.
What is an alternative to mcp-sequential-thinking?
The reference sequential thinking server in the Model Context Protocol servers repository covers the same thought-number, revision and branch vocabulary but keeps thinking state in the session rather than writing it to a persistent JSONL log. This project adds the log, the stage framework and declared output schemas on every tool.
What is sequential thinking in the context of mcp-sequential-thinking?
In this project it is a recorded process rather than a reasoning technique: thoughts are organized through Problem Definition, Research, Analysis, Synthesis and Conclusion, with revisions and branches stored in an append-only JSONL log. The README notes the server does not evaluate or improve the reasoning, which stays with the calling model.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/arben-adm-mcp-sequential-thinking)