A lightweight MCP server for recording sequential reasoning steps. It is a scratchpad with history, branching, revision metadata, and optional validation for model-authored tool plans.
It does not discover your other MCP tools and it does not
choose tools for the model. If you pass available_tools and
recommended_tools, the server validates that the recommended names
exist and stores the step.
Use this when a task benefits from explicit, inspectable reasoning:
- breaking a messy problem into steps;
- revising or branching a plan;
- keeping a small reasoning history by session;
- validating tool-plan names against a supplied tool list;
- clearing or inspecting reasoning history during a long agent run.
Do not use it for trivial requests. It adds overhead.
Records one thought.
Required parameters:
thought— current reasoning stepthought_number— current step numbertotal_thoughts— current estimate; automatically raised if lower thanthought_numbernext_thought_needed— whether another thought is needed
Optional parameters:
session_id— history bucket; defaults todefaultis_revision,revises_thoughtbranch_from_thought,branch_idneeds_more_thoughtsavailable_tools— array of tool names or{ name, description }objectsrecommended_tools— model-authored recommendations to validate/storeremaining_steps— short list of upcoming steps
Example:
{
"session_id": "svelte-debug",
"thought": "First inspect the route files, then run the failing check.",
"thought_number": 1,
"total_thoughts": 3,
"next_thought_needed": true,
"available_tools": ["read", "bash"],
"recommended_tools": [
{
"tool_name": "read",
"confidence": 0.9,
"rationale": "Need to inspect the relevant files before editing.",
"priority": 1
}
]
}If recommended_tools contains a name not present in
available_tools, the call returns isError: true and does not store
the thought.
The server treats thought text, tool descriptions, rationales, and
remaining-step text as untrusted input. Prompt-injection-like text is
scanned and redacted before it is stored or returned in history. Calls
with redactions include security_warnings showing which fields
matched.
This is defensive filtering, not a guarantee that arbitrary adversarial text is safe. Do not put secrets in thoughts or tool descriptions.
Returns stored thoughts for a session.
Parameters:
session_id— defaults todefaultbranch_id— optional branch filterlimit— max records to return; default50, max500
Clears one session or every session.
Parameters:
session_id— defaults todefaultall_sessions— clear all history buckets
A short prompt that tells the model how to use this server honestly: as a scratchpad and validator, not as an external reasoning engine.
{
"mcpServers": {
"mcp-sequentialthinking-tools": {
"command": "npx",
"args": ["-y", "mcp-sequentialthinking-tools"],
"env": {
"MAX_HISTORY_SIZE": "1000"
}
}
}
}MAX_HISTORY_SIZE is per session and defaults to 1000.
The server uses tmcp and includes a small stdio transport that
accepts both standard Content-Length framed MCP messages and
newline-delimited JSON used by older tmcp tooling.
pnpm install
pnpm test
pnpm build
pnpm checkThis project uses vite-plus for build, test, format, and lint
orchestration.
pnpm changeset
pnpm changeset version
pnpm releaseMIT License — see LICENSE.
- Built on the Model Context Protocol
- Adapted from the MCP Sequential Thinking Server