StateForge
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@StateForgescaffold a new MCP server with Redis state store"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP StateForge
Build, debug, and deploy stateless MCP servers against the 2026-07-28 specification.
npm create stateforge@latest my-server
cd my-server && npm run devScaffolds a TypeScript + Express MCP server with a pluggable StateStore, a working multi-turn example built on explicit state handles, a visual inspector, and deploy configs for Vercel and Docker.
Why this exists
The 2026-07-28 revision removed protocol-level sessions. No initialize handshake, no Mcp-Session-Id, no held-open bidirectional stream. Every request is self-describing and can land on any instance behind a plain load balancer.
That is a large win for scaling and a real problem for anything multi-turn. The pattern that replaces sessions is the explicit state handle: a tool mints cart_7f3a9c2e5b1d, returns it, and every later tool takes it as an argument. The model can see the handle, hold several at once, and thread them between tools.
StateForge is that pattern, written out properly — with the storage abstraction, the handle validation, the multi-round-trip confirmation flow, and the debugging surface that a stateless server otherwise has no way to give you.
Related MCP server: MCP Server Generator
Repository layout
packages/create-stateforge/ The CLI. Zero runtime dependencies.
templates/default/ What gets scaffolded. A complete, working server.templates/default is deliberately not a pnpm workspace member: it is copied verbatim into a user's project, so its dependencies must resolve on their own.
The CLI
create-stateforge [directory] [options]
--name <name> npm package name (default: the directory name)
--store <memory|redis> State backend to configure (default: memory)
--pm <npm|pnpm|yarn|bun>
Package manager to install with (default: detected)
--no-install Skip dependency installation
--no-git Skip `git init`
-y, --yes Accept every default, ask nothingInteractive by default; falls back to defaults automatically when stdin is not a TTY, so it works unattended in CI.
It has no runtime dependencies. A create-* package is the first thing a user runs, and every dependency is install latency they pay before seeing anything.
What gets generated
A server whose whole point is that it holds nothing between requests:
StateStore—get/set/update/delete/list/clear. In-memory implementation for local work (per-key locking, TTL, versioning); Redis implementation for production (Lua compare-and-swap,SCANrather thanKEYS). Swapping backends is one environment variable.Explicit handles —
mintHandle('cart')producescart_<12 hex>;assertHandlevalidates shape before the value is ever used as a store key.A shopping cart example —
create_cart,add_item,set_item_quantity,remove_item,view_cart,abandon_cart,checkout. Every mutating tool requires the handle.Multi-round-trip checkout — returns
input_required, the client answers and retries, HMAC-signedrequestStatecarries the quoted total so a cart that moved mid-flow gets re-quoted instead of charged.The inspector — live
tools/list, schema-generated call forms, and a state browser where records are editable JSON. Single HTML file, no build step.Deployment —
api/mcp.ts(four lines, becausehandler.fetchis already web-standard),vercel.json, and a multi-stage Dockerfile that runs unprivileged with a healthcheck.Tests — domain, store, and end-to-end JSON-RPC through the real handler.
Full details in templates/default/README.md.
Developing StateForge
pnpm install # workspace packages
pnpm template:install # the template's own dependencies
pnpm typecheck # CLI + template
pnpm test # the template's test suite
pnpm --filter create-stateforge buildbuild compiles the CLI and copies templates/default into the package as template/, so the published tarball is self-contained.
To try the CLI against the working tree:
pnpm --filter create-stateforge dev -- /tmp/try-it --yes --no-installBumping the protocol revision
MCP_PROTOCOL_VERSION in packages/create-stateforge/src/scaffold.ts is the single source of truth. It is substituted into the template as {{mcpProtocolVersion}} wherever the revision appears. Bump it alongside the SDK dependencies in templates/default/package.json.
Reference
MIT licensed.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityBmaintenanceShared versioned state for multi-agent AI workflows. An MCP server.Last updated52MIT
- AlicenseAqualityCmaintenanceGenerates production-ready MCP servers with dual-mode (MCP + CLI) architecture, tests, and documentation. Includes progressive disclosure tools for AI agents and best practices guidance.Last updated7Apache 2.0
- Flicense-qualityBmaintenanceStarter kit for building stateless MCP servers using the 2026 spec, enabling horizontal scaling without session affinity.Last updated
- Alicense-qualityCmaintenanceEnables a stateless, horizontally scaled MCP server using the 2026-07-28 specification, with tools for load testing and instance-aware operations.Last updatedMIT
Related MCP Connectors
MCP server providing access to the Scorecard API to evaluate and optimize LLM systems.
MCP server for the Inistate platform: module discovery, entry management, and activity submission.
MCP server for generating rough-draft project plans from natural-language prompts.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/JRTrippett/mcp-stateforge'
If you have feedback or need assistance with the MCP directory API, please join our Discord server