reasonkit-think-mcp 0.1.1

Rust MCP server for auditable sequential and tree-of-thoughts reasoning, aligned with ReasonKit skills.
# MCP Rust stack research (triangulated)

## Decision

**Use [`rmcp`](https://crates.io/crates/rmcp)** from the official **[modelcontextprotocol/rust-sdk](https://github.com/modelcontextprotocol/rust-sdk)** repository.

## Selection criteria

| Criterion | Why `rmcp` |
|-----------|------------|
| Latency / stdio | Built-in **`transport-io`** (`stdio()` + Tokio); minimal layers for subprocess MCP. |
| Spec & features | Tracks **MCP spec** (see README links to `modelcontextprotocol.io`); tools, resources, prompts, streamable HTTP, OAuth, elicitation — opt-in via features. |
| Maintenance | **Official** Anthropic MCP org crate; CI badges, migration guides (e.g. 1.x), active releases (verified **1.6.0** on crates.io API). |
| Ecosystem | Tutorials and examples align (e.g. Shuttle blog, HackMD guide, upstream `examples/servers`). |

## Triangulated sources (independent)

1. **Upstream repository (authoritative)** — [README.md](https://raw.githubusercontent.com/modelcontextprotocol/rust-sdk/main/README.md): states official SDK, `stdio()` / `ServerHandler` / `#[tool_router]`, feature table, spec link `2025-11-25`.
2. **crates.io registry API** — `https://crates.io/api/v1/crates/rmcp/1.6.0`: confirms version metadata, default features, `transport-io`, `macros`, `schemars`, `server`, download counts, license Apache-2.0.
3. **docs.rs + secondary discovery** — [docs.rs/rmcp](https://docs.rs/rmcp/latest/rmcp/) (scraped 2026-05-06): crate summary “official Rust SDK”, transport matrix stdio vs streamable HTTP; plus **Tavily** (Omnisearch) and **Firecrawl** search results pointing to the same GitHub/docs.rs corpus (not a single blog in isolation). **Exa** neural retrieval was used to enumerate alternative crates (`tmcp`, `mcp_kit`, `turbomcp`, `ultrafast-mcp`, etc.) for comparison; **Brave** via Omnisearch was unavailable in this environment (missing API key), so it was not used as a fourth leg.

## Alternatives considered (not chosen for default stack)

| Crate / project | Role | Why not primary |
|-----------------|------|-----------------|
| **ultrafast-mcp** | Third-party performance claims | Marketing-heavy docs.rs text; not MCP-org maintained; harder to justify for ReasonKit “protocol truth”. |
| **turbomcp**, **tmcp**, **mcp_kit**, **pmcp**, **fastmcp_rust**, **mcp-host** | Community SDKs | Fragmentation; spec drift risk; we still triangulated via Exa/docs.rs but official SDK dominates on governance. |
| **rust-mcp-sdk** | Async + schema | Lib.rs listing; secondary to official `rmcp` for same protocol. |

## Implementation notes (next stacks)

- **Concurrency for thought store**: triangulate `parking_lot::Mutex` vs `tokio::sync::RwLock` vs `dashmap` once hot paths are known; stdio MCP is single-client per process in typical hosts, but HTTP/streamable mode may need `DashMap` for multi-session.
- **Security / redaction**: port patterns from `reference/mcp-sequentialthinking-tools/src/security.ts`; consider `aho-corasick` or regex budget + length caps (research before picking crates).
- **Skills bridge**: load `reasonkit-skills/skills/*/SKILL.md` as resources or prompt templates; optional subprocess to isolated skill evaluators (design before coding).

## Sequential-thinking MCP

Structured multi-step reasoning for this research was done explicitly in the agent trace. If your Cursor project enables **`@modelcontextprotocol/server-sequential-thinking`**, run it in parallel for future design iterations; this document captures the outcome for the repo.