AAIF-verified modern MCP setup optimised to the 2026-07-28 model (BETTER textbook).
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
NONE | GOOD | [BETTER] | BEST
Textbook for AGENTS.md on that scale β honest modern MCP at the BETTER step.
(protocol 2026-07-28 β the modern MCP release)
AAIF-verified modern MCP textbook that runs. Rust Β· rmcp 3.0.x (lock 3.0.1, Tier 1 assessed) Β· Discover Β· stamped list cache.
Book: textbook/ β what Β· why Β· how Β· doctrine.
App: this binary + smokes. Lesson after lesson, version after version β knowledge compounds.
BEST (persistent project DNA for agents β AGENTS.md / FAF at scale) lives at faf.one/agents β one hop up from this textbook.
Cargo stays first. Optional npm is only an on-ramp to the same native binary for npx-style hosts.
β Why dual-package β positioning + FAQ
β Full guide (how) β lockstep, publish order, OIDC, score + wire
One Agent Skill (mcp-better-lab) on the same process as tools:
β docs/SKILLS-OVER-MCP.md β extension Β· skills/list Β· skills/get Β· digests
| Name | What it is |
|---|---|
| 7/28 | The era name β speakable, brandable. βBuilt for 7/28.β |
| 2026-07-28 | The protocol version β the date string on the wire / in SDKs. |
7/28 is a great name. 2026-07-28 is a date.
Humans say 7/28. Machines negotiate 2026-07-28.
rmcp 3.0.x / Tier-1 assessed cut).| Version | Lesson (the version is the lesson) |
|---|---|
| v0.1 | 7/28 over stdio β Discover, stamped ttlMs / cacheScope, stable order, health + echo |
| v0.2 | Same 7/28 era + Streamable HTTP road + routing headers (Mcp-Method / Mcp-Name) |
| v0.3 | Same era + deeper correctness β multi-list + restart-order smokes Β· mcp-worse contrast |
| v0.4 | Same era + dual package β cargo + npm shim Β· npx mcp-better with no Rust toolchain |
| main | Same era + confirm_echo textbook MRTR tool (SEP-2322) β see docs/MRTR-CONFIRM-ECHO.md (publish when you GO version) |
2026-07-28 only for surfaces you implement and test.ClientLifecycleMode::Discover (or Auto β 7/28), not only legacy initialize.tools/list returns positive ttlMs and cacheScope (static catalog β public). SDK defaults are unstamped.--http) in the same 7/28 era.stdio (default β Cursor / Claude Desktop):
First cargo install compiles the ecosystem once (not 100+ of our tools β just Rust deps). One-time wait; then youβre done.
Prefer no compile? Usenpx mcp-better(npm shim).
Streamable HTTP (local demo only β see SECURITY.md):
Transport selection (CLI wins over env):
| How | Value |
|---|---|
| CLI | mcp-better (stdio) Β· mcp-better --http Β· mcp-better --stdio |
| Bare args | http / stdio (same meaning as flags) |
| Env | MCP_TRANSPORT or MCP_BETTER_TRANSPORT β stdio | http (MCP_TRANSPORT first if both set) |
| HTTP bind | MCP_BETTER_HTTP_ADDR β default 127.0.0.1:8787. Do not use 0.0.0.0 unless you accept an unauthenticated open endpoint. |
| Tool | Purpose |
|---|---|
health | Liveness β status, version, protocol. No side effects. Not a k8s probe contract. |
echo | Pure demo β returns message unchanged. |
| Surface | Status |
|---|---|
| Era / protocol | 7/28 Β· negotiated 2026-07-28 (Discover preferred) |
| Transport | stdio (default) Β· Streamable HTTP (--http) |
| HTTP mode | Stateless for 7/28 Β· json_response Β· local Host guards |
| Routing headers | Streamable HTTP POSTs use Mcp-Method and Mcp-Name when naming a tool (SEP-2243); http-smoke asserts this happy path |
| Capabilities | tools only |
| List cache | ttlMs=60000, cacheScope=public, order healthβechoβconfirm_echo (restart-stable) |
| MRTR (optional) | confirm_echo β mid-call confirm Β· sealed requestState Β· docs/MRTR-CONFIRM-ECHO.md |
| Lying companion | mcp-worse β unstamped + reversed order (contrast-smoke only) |
| Resources / prompts / OAuth / tasks | out of hero |
The book is the app is the book β textbook/ (Season 1 Β· doctrine).
Start: textbook/README.md β lab Ch 09.
project.faf or any BEST tooling on this repoβs main branchmcp-name: io.github.Wolfe-Jam/mcp-betterregistryType: cargo Β· identifier: mcp-better Β· crates.ioregistryType: npm Β· identifier: mcp-better Β· registry.npmjs.orgserver.json is stdio only β by design.cargo install / npx mcp-better on stdio.--http) is an opt-in local demo in the same binary and the same 7/28 era; it is not a Registry remote package. Discover it in this README and --help.See server.json. Not one.faf/*.
Ship process: /pubbetter (skill) Β· short form docs/PUBBETTER.md Β· local ship bar:
For persistent, versionable AI project context beyond a protocol textbook:
serve vs Discover honestyMIT β see LICENSE.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/mcp-better)<a href="https://allmcps.com/mcp/mcp-better"><img src="https://allmcps.com/api/badge/mcp-better?style=directory" alt="Mcp Better on AllMCPs" /></a>