mcpField
M
mcp-better

mcp-better

Local
github.com/Wolfe-JamDeveloper Tools2Updated 5d ago

About mcp-better

mcp-better is a Rust MCP protocol example server and accompanying textbook for developers learning and testing modern MCP. It offers protocol discovery, stamped tool-list caching, and stdio plus optional Streamable HTTP transport.

Key features

  1. 01Provides health, echo, and confirm_echo tools
  2. 02Supports protocol discovery and stable tool ordering
  3. 03Includes cache TTL and scope in tool lists
  4. 04Supports stdio and Streamable HTTP
  5. 05Includes an MCP textbook and Agent Skill

Use cases

  1. 01Test a client’s MCP protocol discovery flow
  2. 02Check tool-list cache stamps and ordering
  3. 03Test mid-call confirmation with confirm_echo

MCP support

This MCP server provides the health, echo, and confirm_echo tools over stdio or optional Streamable HTTP. It also exposes textbook documents as resources and includes an experimental Agent Skills extension.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository
Packages
cargomcp-better0.5.0
npmmcp-better0.5.0

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

mcp-better — built for 7/28

Business card · Get yours →

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)

the book is the app is the book

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 (BETTER plus project.faf that is resident and used: persistent project context that authors the agent files) lives at faf.one/agents, one hop up from this textbook.

Dual-package (optional)

We are Cargo. Install is cargo install. npx is a try path. We do not offer npm install as an option.

→ Why dual-package — positioning + FAQ
→ Full guide (how) — lockstep, publish order, OIDC, score + wire

Skills over MCP (optional · textbook)

One Agent Skill (mcp-better-lab) on the same process as tools:

→ docs/SKILLS-OVER-MCP.md — extension · skills/list · skills/get · digests

What is 7/28?

NameWhat it is
7/28The era name — speakable, brandable. “Built for 7/28.”
2026-07-28The 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.

What to expect

  1. Built for 7/28 — not bolted onto a legacy server (official rmcp 3.0.x / Tier-1 assessed cut).
  2. Honest surface — transport and capabilities match docs and CI.
  3. Roadmap expands the era — versions add road; they do not “become” 7/28 later.
VersionLesson (the version is the lesson)
v0.17/28 over stdio — Discover, stamped ttlMs / cacheScope, stable order, health + echo
v0.2Same 7/28 era + Streamable HTTP road + routing headers (Mcp-Method / Mcp-Name)
v0.3Same era + deeper correctness — multi-list + restart-order smokes · mcp-worse contrast
v0.4Same era + dual package — cargo + npm shim · npx mcp-better with no Rust toolchain
v0.4.3Same era + confirm_echo MRTR (SEP-2322) + Agent Skills (mcp-better-lab) — see docs/MRTR-CONFIRM-ECHO.md · docs/SKILLS-OVER-MCP.md
v0.4.4Same era + book matches 0.4.3 wire — no new tool · catalogs named health → echo → confirm_echo
v0.5Same era + matching client completes MRTR — mrtr-client finishes confirm_echo

What BETTER means

  1. Protocol honesty — claim 7/28 / 2026-07-28 only for surfaces you implement and test.
  2. Discover-compatible — clients should use ClientLifecycleMode::Discover (or Auto → 7/28), not only legacy initialize.
  3. List cache stamps — tools/list returns positive ttlMs and cacheScope (static catalog → public). SDK defaults are unstamped.
  4. Stable tool order — same process, same order across N list calls.
  5. Transports — stdio (default) and Streamable HTTP (--http) in the same 7/28 era.

Quickstart (≤10 min)

PathWhat it is
cargo install mcp-betterThe install — we are Cargo. crates.io, native binary on PATH.
npx mcp-betterSuggested try — no Rust, no compile. Not the install.
npmA published shim so npx / some hosts can start the same binary. We do not offer npm install / npm i -g.
Try (suggested) — npx
# No Rust toolchain. Downloads the native binary from GitHub Releases.
npx mcp-better --help
npx mcp-better
From source / crates.io (Rust 1.85+)
git clone https://github.com/Wolfe-Jam/mcp-better.git
cd mcp-better
cargo build --bins
cargo test
cargo run --example stdio-client
# louder 0.3 smokes (build --bins first; or: bash scripts/ci.sh)
MCP_BETTER_BIN="$(pwd)/target/debug/mcp-better" cargo run --example order-restart-smoke
MCP_BETTER_BIN="$(pwd)/target/debug/mcp-better" \
  MCP_WORSE_BIN="$(pwd)/target/debug/mcp-worse" \
  cargo run --example contrast-smoke
MCP_BETTER_BIN="$(pwd)/target/debug/mcp-better" cargo run --example http-smoke
# 0.5 matching client (completes confirm_echo)
MCP_BETTER_BIN="$(pwd)/target/debug/mcp-better" cargo run --example mrtr-client

Install (crates.io) — stdio default (Cursor / Claude Desktop):

First cargo install compiles Rust deps once (often 100+ units — rmcp / tokio / …, not 100 tools of ours). One-time; then the binary is instant. To skip that compile, try with npx mcp-better (above) — that is not the install.

cargo run --release
# install from crates.io — first hit compiles deps once (see above):
cargo install mcp-better --version 0.5.0
mcp-better --help
# optional lying companion (teaching only — not for hosts):
# cargo install mcp-better --version 0.5.0 --bin mcp-worse

Streamable HTTP (local demo only — see SECURITY.md):

cargo run --release -- --http
# http://127.0.0.1:8787/mcp
# MCP_BETTER_HTTP_ADDR=127.0.0.1:9000 mcp-better --http

Transport selection (CLI wins over env):

HowValue
CLImcp-better (stdio) · mcp-better --http · mcp-better --stdio
Bare argshttp / stdio (same meaning as flags)
EnvMCP_TRANSPORT or MCP_BETTER_TRANSPORT → stdio | http (MCP_TRANSPORT first if both set)
HTTP bindMCP_BETTER_HTTP_ADDR — default 127.0.0.1:8787. Do not use 0.0.0.0 unless you accept an unauthenticated open endpoint.

Tools

ToolPurpose
healthLiveness — status, version, protocol. No side effects. Not a k8s probe contract.
echoPure demo — returns message unchanged.
confirm_echoTextbook MRTR (SEP-2322) — echo after mid-call confirm · sealed requestState.

Protocol claims (v0.5.0 — same 7/28 era · matching client completes MRTR)

SurfaceStatus
Era / protocol7/28 · negotiated 2026-07-28 (Discover preferred)
Transportstdio (default) · Streamable HTTP (--http)
HTTP modeStateless for 7/28 · json_response · local Host guards
Routing headersStreamable HTTP POSTs use Mcp-Method and Mcp-Name when naming a tool (SEP-2243); http-smoke asserts this happy path
Capabilitiestools · resources (skill docs) · experimental skills extension
List cachettlMs=60000, cacheScope=public, order health→echo→confirm_echo (restart-stable)
MRTR (optional)confirm_echo — mid-call confirm · sealed requestState · matching client mrtr-client · docs/MRTR-CONFIRM-ECHO.md
Skills (optional)mcp-better-lab · skills/list · digests · docs/SKILLS-OVER-MCP.md
Lying companionmcp-worse — unstamped + reversed order (contrast-smoke only)
OAuth / tasksout of hero

Textbook

The book is the app is the book — textbook/ (Season 1 · doctrine).

Start: textbook/README.md → lab Ch 09.

Non-goals (GOOD-era habits we refuse)

  • Shipping unstamped list results while claiming 7/28 modernity
  • Requiring project.faf or any BEST tooling on this repo’s main branch
  • Treating stdio as “not real 7/28” — stdio is a first-class 7/28 transport
  • FAF install tax in the AAIF lede — this repo is protocol textbook, not a FAF product

Registry identity

  • MCP Registry name: mcp-name: io.github.Wolfe-Jam/mcp-better
  • Dual packages (same version, both stdio):
    • registryType: cargo · identifier: mcp-better · crates.io
    • registryType: npm · identifier: mcp-better · registry.npmjs.org
      (Node shim downloads the native binary from GitHub Releases — no Rust on the host)
  • Package transport in server.json is stdio only — by design.
    Hosts spawn via cargo install / npx mcp-better on stdio.
    Streamable HTTP (--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/*.

Publish

Ship process: /pubbetter (skill) · short form docs/PUBBETTER.md · local ship bar:

export PATH="$HOME/.cargo/bin:$PATH"
bash scripts/ci.sh

BEST

For persistent, versionable AI project context beyond a protocol textbook:

https://faf.one/agents

Docs

License

MIT — see LICENSE.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.