MCP SME Portfolio Monorepo: Research Report & Build Plan (June 2026)¶
Source note: Ingested 2026-06-23 as the founding specification for this repo. Version-sensitive claims (spec revision, SDK versions, tooling status) are flagged in the report's own Caveats and tracked in
docs/research/version-currency-2026-06-23.md. Treat that file as the live source of truth where it diverges from this report.
TL;DR¶
- Target the latest STABLE spec,
2025-11-25, as your baseline, but architect every example to be forward-compatible with the2026-07-28release candidate (final ships July 28, 2026), whose headline change is a stateless protocol core that removes theinitializehandshake andMcp-Session-Idheader. Building against both — and documenting the migration — is itself a credible SME signal. - Build a polyglot monorepo with five competency directories, each containing working code + a guidebook + a Reveal.js deck, anchored by a security competency (the user's lane) that ships an original policy-enforcing MCP gateway, a cosign-signed tool registry, and original threat models mapped to the OWASP MCP Top 10 and the NSA's May 2026 MCP guidance.
- Prioritize original, buildable code over prose: idiomatic Python (FastMCP) and TypeScript servers, an original gateway/guardrail proxy, conformance-style tests, and GitHub Actions CI with cosign signing establish authorship far more credibly than forked reference servers or diagrams.
Key Findings¶
Spec currency (the critical first task)¶
- Latest stable/ratified revision:
2025-11-25. The official spec page (modelcontextprotocol.io/specification) redirects here and labels it latest. It shipped the largest change set since launch: async Tasks (experimental), enhanced sampling, elicitation, server-side agent loops, Client ID Metadata Documents, client security requirements, and the extensions system. - Next revision:
2026-07-28, currently a Release Candidate (locked May 21, 2026; final July 28, 2026). This matches the user's ~July 28, 2026 belief exactly. It is the largest revision since launch and contains breaking changes. Authored by lead maintainers David Soria Parra and Den Delimarsky. - What's in the
2026-07-28RC (DRAFT/in-flight, NOT GA): - Stateless protocol core — removes the
initialize/initializedhandshake (SEP-2575) and theMcp-Session-Idheader / protocol-level sessions (SEP-2567). Protocol version, client info, and capabilities now travel in_metaon every request (io.modelcontextprotocol/protocolVersion,clientInfo,clientCapabilities); a newserver/discoverRPC advertises capabilities. Cross-call state is handled via explicit server-minted handles (e.g.,basket_id) passed as ordinary tool arguments. Server-to-client requests (e.g., elicitation) are restructured: a server may only issue them while actively processing a client request (SEP-2260), and multi-round-trip requests now return anInputRequiredResultwithrequestStaterather than holding an SSE stream open (SEP-2322). - Routable/cacheable/traceable transport — required
Mcp-MethodandMcp-Nameheaders on Streamable HTTP POST so gateways/load balancers route without inspecting the body (SEP-2243);ttlMs+cacheScopeon list/read results (SEP-2549); W3C Trace Context (traceparent/tracestate/baggage) standardized in_metafor OpenTelemetry correlation (SEP-414). - Extensions become first-class (SEP-2133; reverse-DNS IDs,
ext-*repos, independent versioning). Two official extensions: MCP Apps (SEP-1865; server-rendered sandboxed-iframe HTML UIs) and Tasks (graduated from experimental core to an extension;tasks/listremoved; lifecycletasks/get/tasks/update/tasks/cancel). - Authorization hardening — six SEPs: validate
issper RFC 9207 (SEP-2468), OIDCapplication_typein Dynamic Client Registration (SEP-837), credential binding to issuer (SEP-2352), refresh-token guidance (SEP-2207), scope accumulation on step-up (SEP-2350),.well-knownsuffix clarification (SEP-2351). - Roots, Sampling, and Logging are DEPRECATED (SEP-2577; annotation-only, ≥12-month removal window). Replacements: tool parameters/resource URIs (Roots), direct LLM provider APIs (Sampling), stderr + OpenTelemetry (Logging).
- Full JSON Schema 2020-12 for tool input/output schemas (SEP-2106);
structuredContentcan be any JSON value; resource-not-found error code changes from-32002to-32602Invalid Params (SEP-2164). - Formal feature lifecycle/deprecation policy + conformance suite gating Final status (SEP-2484); SDK tier system scoring official SDKs against it.
- Transport history to teach:
2024-11-05(stdio + HTTP+SSE) →2025-03-26(Streamable HTTP replaces HTTP+SSE; OAuth 2.1; tool annotations; JSON-RPC batching added) →2025-06-18(structured tool output, elicitation, OAuth Resource Server + mandatory Resource Indicators/RFC 8707, batching removed) →2025-11-25(current stable) →2026-07-28RC. HTTP+SSE is legacy/deprecated since 2025-03-26; Streamable HTTP is the production transport. - Versioning scheme: date-based
YYYY-MM-DDmarking the last backward-incompatible change. SEP-1400 proposes moving to SemVer 2.0.0 but has not landed — flag as in-flight. - Governance: Anthropic donated MCP to the Linux Foundation's Agentic AI Foundation (AAIF) on Dec 9, 2025 (platinum members: Anthropic, OpenAI, Google, Microsoft, AWS, Block, Cloudflare, Bloomberg). The March 2026 roadmap is organized around four priority areas (transport scalability, agent communication, governance maturation, enterprise readiness) rather than dated releases. An SDK tiering system classifies official SDKs; Tier 1 SDKs are expected to support new revisions within the 10-week RC window.
SDKs (mid-2026 status)¶
- Official SDKs (AAIF-governed): Python, TypeScript, Go (with Google), C#/.NET (with Microsoft), Rust, Java, Kotlin, Ruby, Swift (with Loopwork), PHP. Major change from 2025, when only Python/TS were official.
- Python SDK: v1.x stable and recommended for production; v2 in alpha, targeting beta 2026-06-30 and stable v2 on 2026-07-27 (aligned with the new spec). Add a
<2pin (e.g.,mcp>=1.27,<2) before then. FastMCP is the dominant high-level framework (~1.9M downloads/day). - TypeScript SDK: v1.x recommended for production; v2 stable expected ~Q1 2026.
- Rust SDK (
rmcp): reached v1.0.0 March 3, 2026, iterated to v1.5.0 by mid-April — now stable, Tokio-based with procedural macros. - C# SDK: stable/production-ready (requires .NET 10, Native AOT, NuGet); Go SDK: approaching stable (expected August), single
mcppackage with generics-based typed tools, built on the Go team's JSON-RPC implementation. - Tiering (community-reported, not an official ranking): Python/TypeScript/C#/Go top tier; Java, Rust mid-tier; Swift, Ruby, PHP lower tier.
Security & governance (the user's deep lane)¶
- Authorization model: Remote servers use OAuth 2.1 + PKCE; MCP servers are OAuth Resource Servers (since 2025-06-18) with protected resource metadata; Resource Indicators (RFC 8707) are mandatory so access tokens are audience-bound to the specific server.
- Token passthrough is explicitly FORBIDDEN by the authorization spec — a server must validate that tokens were issued for it and must not forward client tokens downstream. This prevents the confused-deputy problem; correct mitigations are per-client consent registries and token exchange, never passthrough. The official "Security Best Practices" page details the confused-deputy attack against MCP proxy servers using static client IDs + dynamic client registration + consent cookies.
- Threat taxonomy: prompt injection / indirect prompt injection (via tool results), tool poisoning (malicious instructions in tool descriptions, e.g., Invariant Labs' WhatsApp exfiltration demo), rug-pull attacks (tool definitions changing post-approval), the lethal trifecta (private data + untrusted content + exfiltration channel), shadow MCP servers, supply-chain attacks, token mismanagement.
- Frameworks to map against (all dated, flag status):
- OWASP MCP Top 10 — a living document maintained at owasp.org/www-project-mcp-top-10; risks are numbered MCP01:2025 through MCP10:2025, with categories stable enough to cite though rankings may shift as the Phase 3 beta wraps. Led by Vandana Verma Sehgal, CC BY-NC-SA 4.0. Categories include Token Mismanagement & Secret Exposure (MCP01), Tool Poisoning (MCP03), Supply Chain & Dependency Tampering (MCP04), Command Injection, Insufficient Authentication (MCP07), Shadow MCP Servers (MCP09), and Context Oversharing.
- OWASP "Secure MCP Server Development" guide (Feb 2026) and OWASP Top 10 for Agentic Applications 2026 (ASI01 Agent Goal Hijack).
- NSA AISC Cybersecurity Information Sheet "Model Context Protocol (MCP): Security Design Considerations for AI-Driven Automation" (published May 20, 2026; sole-NSA product, NSA Artificial Intelligence Security Center; doc IDs U/OO/6030316-26, PP-26-1834; PDF at media.defense.gov/2026/Jun/02/2003943289/-1/-1/0/CSI_MCP_SECURITY.PDF). Its ten concrete recommendations: (1) choose maintained/supported MCP projects and code-audit them; (2) design explicit trust boundaries — treat agents, plugins, models, and users as separate trust zones, and prefer local servers for private data; (3) network egress control via filtering proxy (Squid, tinyproxy) or DLP; (4) validate parameters against schemas and block ambiguous/user-sourced parameter forwarding; (5) sandbox tool execution with seccomp/AppArmor/SELinux/AppContainers under least privilege; (6) sign and verify MCP messages with expiration timestamps + replay protection (the protocol cannot enforce integrity beyond TLS); (7) treat all tool/model outputs as untrusted input to the next stage (cascading prompt-injection defense); (8) log all invocations with parameters, identities, and result hashes into SIEM; (9) track/patch MCP CVEs and maintain an inventory; (10) scan networks for open/unauthorized MCP servers (named tools: MCP Scanner, Ramparts, CyberMCP, Proximity). Key quote: "Securing MCP systems requires treating the agentic environment as a continuum, where misaligned assumptions or subtle inconsistencies at any stage can propagate and compound into exploitable conditions."
- CSA AI Controls Matrix (AICM) — 243 control objectives, maps to ISO 42001/27001, NIST AI RMF 1.0, BSI AIC4.
- Real incident signal (verified/secondhand mix): Per Practical DevSecOps citing Unit 42, between January and February 2026 researchers filed over 30 CVEs targeting MCP servers, clients, and tooling, of which 43% were shell injections. CVE-2025-49596 (MCP Inspector RCE) carried a Critical CVSS 9.4, was disclosed by Oligo Security, and was fixed in v0.14.1 on June 13, 2025 — per Oligo, versions below 0.14.1 allow unauthenticated requests to launch MCP commands over stdio. CVE-2026-32211 exposed a missing auth layer on the Azure MCP Server. Anthropic's own Git MCP server had path-traversal/argument-injection bugs disclosed January 2026. Per Palo Alto Networks Unit 42's 2026 Global Incident Response Report, "with five connected MCP servers, a single compromised server hit a 78.3% attack success rate." Treat benchmark/vendor figures (MCPTox, tool-poisoning success rates) as research-reported, not audited.
- Gateways (security control point):
- agentgateway (Rust; AAIF/Linux Foundation; agentgateway.dev) — discover/sign/scope/observe every tool call, MCP + A2A native, OPA-evaluated allow/deny per hop, OpenTelemetry by default, tamper-evident audit logs; integrated into kgateway (CNCF Sandbox, Envoy-based) v2.1. Best fit for the user's CNCF/Kubernetes stack and the strongest reference comparison for an original gateway.
- Lasso MCP Gateway (OSS, security-first, plugin guardrails incl. Presidio PII), Lunar MCPX (OSS control plane), Microsoft's OSS reverse proxy for MCP on Kubernetes + Azure APIM, Kong / Traefik Hub (Traefik introduces Task-Based Access Control), plus commercial options (MintMCP SOC 2, MCP Manager). CNCF also has an "Agent Gateway" policy-enforcement effort underway.
- Supply-chain/provenance: sign server container images with cosign/sigstore (keyless OIDC via Fulcio, Rekor transparency log, in-toto/SLSA attestations), enforce at admission with sigstore policy-controller or Kyverno, attach SBOM attestations. MCP Server Cards (SEP-1649 / SEP-2127,
/.well-known/mcp/server-card.json) for pre-connection discovery/validation are in DRAFT.
Architecture & ecosystem¶
- Topology: host (Claude Desktop/Code, ChatGPT, Cursor, VS Code, Zed) → one client per server → servers. Stateful vs stateless server design is the central 2026 architecture debate; the RC pushes statelessness so servers run behind plain round-robin load balancers with no shared session store.
- Registry: the official MCP Registry (registry.modelcontextprotocol.io) launched preview Sept 2025, froze API at v0.1 (Oct 2025), still preview/pre-GA (~2,000 entries). Community registries index ~17,000+ servers; GA expected to add signing/trust scoring. Self-hostable via Docker (ko build) + PostgreSQL.
- Reference servers: only 7 remain actively maintained by the steering group — Everything, Fetch, Filesystem, Git, Memory, Sequential Thinking, Time. ~13 (GitHub, GitLab, Slack, Google Drive, Postgres, Sentry, SQLite, Puppeteer, EverArt, Brave Search, etc.) were archived to
servers-archivedand handed to vendor maintenance (e.g., github/github-mcp-server). Flag this prominently: many tutorials still point at archived code. - Adoption (flag self-reported vs verified): ~97M monthly SDK downloads (Python+TS, vendor-reported); Python SDK reportedly >164M monthly on PyPI by April 2026; 10,000+ active public servers (Linux Foundation, Dec 2025). Per Nerq's Q1 2026 census (via Knak), of 17,468 indexed servers only 12.9% score "high trust" (70+/100) for documentation, maintenance, and reliability. Adopted by OpenAI (March 2025), Google DeepMind/Gemini (April 2025), Microsoft, AWS. MCP Apps launched Jan 26, 2026 with day-one partners (Amplitude, Asana, Box, Canva, Clay, Figma, Hex, monday.com, Slack, Salesforce). Pinterest and Block (Goose) case studies are vendor-reported.
- Complementary protocols: A2A (agent-to-agent; Google; reached v1.0 April 2026; now AAIF-governed); ACP merged into A2A (Aug 2025); commerce protocols (x402, Agentic Commerce Protocol, Stripe). Consensus stack: MCP (tool access) + A2A (agent coordination). Cross-App Access (XAA) and Agentic Resource Discovery (ARD) (Microsoft/Google/GitHub/Hugging Face; GitHub "agent finder" launched June 2026) are emerging discovery layers — flag as new and in-flight.
Tooling & interaction patterns¶
- Anthropic's "Writing effective tools for AI agents" is the canonical source. Principles: build for agents not developers; iterate prototype → evaluate → collaborate (use Claude Code to optimize tools against an eval); choose high-leverage tools not thin API wrappers; namespace tool names (
domain_action); return meaningful human-readable context not raw IDs; manage tokens via pagination/truncation/filtering; make implicit context explicit; use unambiguous parameter names (user_idnotuser); prefer search-focused tools (search_contacts) over list-all. - Anthropic's "Code execution with MCP" (Nov 2025): present tools as code on a filesystem and load on demand (or add a
search_toolstool) rather than loading all definitions upfront — Anthropic reports this "reduces the token usage from 150,000 tokens to 2,000 tokens—a time and cost saving of 98.7%." Cloudflare's complementary "Code Mode" reports an even larger effect for its Cloudflare-API MCP server: "reduces the number of input tokens used by 99.9%... An equivalent MCP server without Code Mode would consume 1.17 million tokens," collapsing 2,500+ endpoints into ~1,000 tokens. - Tool annotations:
readOnlyHint,destructiveHint,idempotentHint,openWorldHint— but the spec says annotations are untrusted unless from a trusted server. - Elicitation: server requests structured input mid-flow; FastMCP
ctx.elicit(message, schema)returns Accepted/Declined/Cancelled; spec restricts to shallow objects with scalar/enum fields; form mode is visible to client/LLM (never for secrets — use URL mode). - Structured output: FastMCP auto-generates output schemas from type annotations and validates; low-level server supports explicit
outputSchema.
Cross-cutting build decisions¶
- Repo layout: monorepo with per-competency directories, each holding working code + guidebook + slides, plus top-level docs. Nested
CLAUDE.mdfiles (root for shared conventions; per-package for stack specifics). Keep rootCLAUDE.mdunder ~200 lines; use progressive disclosure (@-references / pointers, not embedded long docs). Start Claude Code sessions from the package directory for single-package tasks; commit.claude/settings.jsonpermission denies. - Tooling: for a polyglot CNCF-aligned repo, use a cross-language task runner (Taskfile or Makefile) rather than JS-only Turborepo/Nx; uv for Python, pnpm for TS, Go modules. GitHub Actions CI with per-language jobs, linting (ruff/eslint), tests (pytest/vitest), and a cosign signing job in the release workflow.
- Reveal.js: current framework by Hakim El Hattab; install via npm, run a local server (
npm start); author slides in Markdown with---/--separators (horizontal/vertical); speaker notes viaNote:or<aside class="notes">(pressSfor speaker view with timer + next-slide preview); code highlighting via the built-in highlight.js plugin with line-stepping syntax[1-2|3|4]; fragments; PDF export via?print-pdf. One deck per competency. Quarto's revealjs output is a good alternative if you prefer pure Markdown authoring with::: {.notes}blocks. - Docs framework: MkDocs Material entered maintenance mode (Nov 5, 2025) — feature-frozen but security-patched through Nov 2026; successor is Zensical. Docusaurus (React/MDX) is more future-proof and supports interactive components but requires Node. For a code-heavy teaching portfolio, recommend MkDocs Material now (fastest setup, Python-native, matches the stack) while noting the maintenance-mode caveat; choose Docusaurus if you want embedded interactive React demos. Well-structured per-directory READMEs are the minimum viable layer.
- Authorship credibility: original working code (servers, gateway, guardrails, signed registry), original threat models mapped to OWASP/NSA, original architecture diagrams, original eval harnesses, and original teaching decks establish SME — versus forking reference servers. The "build against both
2025-11-25and the2026-07-28RC and document the migration" exercise is a strong differentiator.
Details¶
Recommended repo structure¶
mcp-sme-portfolio/
├── README.md # portfolio overview, competency map, spec-version banner
├── CLAUDE.md # root conventions (<200 lines), pointers to per-area docs
├── Taskfile.yml / Makefile # cross-language build/test/lint/serve targets
├── .github/workflows/ # CI per language + cosign signing + slide build/deploy
├── docs/ # top-level MkDocs Material (or Docusaurus) site
│ ├── spec-currency.md # 2025-11-25 vs 2026-07-28 RC migration guide
│ └── glossary.md
├── 01-fundamentals/
│ ├── servers/ # python (FastMCP) + typescript "hello world" + non-trivial
│ ├── clients/ # minimal client, capability negotiation, progress/cancel
│ ├── tests/ # lifecycle/JSON-RPC conformance-style tests
│ ├── guidebook.md
│ └── slides/ # reveal.js deck
├── 02-architecture/
│ ├── multi-server-orchestration/
│ ├── stateless-vs-stateful/ # demo handle-pattern (RC) vs session (stable)
│ ├── server-composition/
│ ├── registry-demo/ # self-hosted MCP Registry + server cards
│ ├── guidebook.md
│ └── slides/
├── 03-tooling/
│ ├── tool-design/ # good vs anti-pattern tools, annotations, structured output
│ ├── elicitation-hitl/
│ ├── eval-harness/ # Anthropic-style tool eval
│ ├── guidebook.md
│ └── slides/
├── 04-security/ # FLAGSHIP
│ ├── policy-gateway/ # original MCP gateway: authz, allowlist, audit, OPA-style policy
│ ├── guardrails/ # input/output sanitization, prompt-injection filters, PII
│ ├── signed-registry/ # cosign-signed server provenance + admission verification
│ ├── threat-models/ # original STRIDE + OWASP MCP Top 10 + NSA CSI mapping
│ ├── oauth-confused-deputy/ # demo of token passthrough anti-pattern + correct flow
│ ├── guidebook.md
│ └── slides/
└── 05-use-cases-ecosystem/
├── production-server-example/ # a real, useful server (e.g., over a CNCF/k8s API)
├── mcp-plus-a2a-demo/
├── ecosystem-map/
├── guidebook.md
└── slides/
Per-competency buildable recommendations¶
- Fundamentals: Ship an idiomatic FastMCP "hello world" (tool + resource + prompt over stdio) and a non-trivial server (a typed, paginated data server with progress + cancellation), plus a parallel TypeScript implementation. Add a minimal client showing initialize/capability negotiation. Include conformance-style tests using in-memory transport. Teach JSON-RPC 2.0 message types, lifecycle, and the stdio vs Streamable HTTP distinction — and explicitly contrast the RC's stateless single-request form against the stable session handshake.
- Architecture: Demonstrate multi-server orchestration through one host, server composition/chaining, and the stateless handle pattern (
create_basket→basket_id→add_item) versus session state. Stand up the official MCP Registry locally (Docker/ko + Postgres) and publish aserver.json+ a.well-knownserver card. - Tooling: Build a matched pair of well-designed vs poorly-designed tools and an eval harness that measures the difference, mirroring Anthropic's methodology. Demonstrate all four tool annotations, structured/typed output with
outputSchema, elicitation with human-in-the-loop confirmation, pagination, and resource subscriptions. - Security (flagship): Build an original policy-enforcing MCP gateway/proxy that sits between client and servers and enforces tool allowlisting, per-client consent, SIEM-ready JSON audit logging, and OPA-style policy; integrate guardrails (input/output sanitization, indirect-prompt-injection detection, PII redaction via Presidio). Build a signed tool registry that verifies cosign/sigstore signatures before admitting a server. Write original threat models (STRIDE per component: host, client, LLM, server, data stores, auth server) and map each finding to OWASP MCP Top 10 and the NSA CSI's ten recommendations. Demo the confused-deputy/token-passthrough anti-pattern and the correct audience-bound (RFC 8707) flow. Reference agentgateway/kgateway as the production-grade comparison point.
- Use cases & ecosystem: Build one genuinely useful production-style server (ideally over a Kubernetes/CNCF API to leverage the user's background), an MCP+A2A integration demo, and an honest ecosystem map separating verified adoption from vendor claims.
Recommendations¶
- Lock the spec baseline first. Put a version banner in the README: "Built against MCP
2025-11-25(stable); forward-compatible notes for2026-07-28RC." Writedocs/spec-currency.mdas the migration guide. This is the single most credible SME artifact and directly answers the currency concern. Benchmark to revisit: when2026-07-28goes final (July 28, 2026) and when Python SDK v2 (stable ~July 27) and TS SDK v2 land — refresh all examples then. - Build the security competency first and deepest — it is the professional differentiator and the area with the most original-code opportunity. Stage: (a) threat models + OWASP/NSA mapping, (b) policy gateway, (c) guardrails, (d) signed registry, (e) OAuth/confused-deputy demo.
- Then Fundamentals → Tooling → Architecture → Use Cases, so the teaching narrative builds from primitives to systems.
- Use FastMCP (Python) as the primary language and TypeScript as the secondary, with one Go or Rust example in Architecture/Use Cases to show polyglot range and align with the CNCF stack.
- Tooling choices: Taskfile + uv + pnpm + Go modules; GitHub Actions with per-language jobs and a cosign signing job; MkDocs Material for docs now (note maintenance mode / Zensical successor); Reveal.js per-competency decks built and deployed to GitHub Pages via CI.
- Structure for Claude Code: root
CLAUDE.mdwith shared conventions + a codebase map; per-competencyCLAUDE.mdfiles with stack-specific rules;.claude/settings.jsonwith committed permission denies; progressive-disclosure pointers to guidebooks. Drive the build competency-by-competency, starting each session in the relevant package directory. - Authorship hygiene: write original code and original threat models; where you reference reference servers, cite them as comparison, don't copy. Keep a CHANGELOG and conventional commits to evidence authorship history.
Caveats¶
- Draft vs GA: Everything in the
2026-07-28RC (stateless core, MCP Apps, Tasks extension, auth hardening, deprecations) is not final and may change before July 28, 2026. Roots/Sampling/Logging are deprecated but still functional with a ≥12-month removal window. Build stable examples on2025-11-25and clearly label RC-targeted code as preview. - SDK churn: Python SDK v2 and TypeScript SDK v2 are pre-stable and intentionally aligned with the new spec; pin versions and expect breaking changes around late July 2026.
- Adoption metrics are largely vendor/community self-reported (97M downloads, 164M PyPI, 10,000+ servers, Pinterest/Block case studies). Independent census data (Nerq's 17,468 servers, 12.9% high-trust) is more conservative. Treat all adoption claims as directional, not audited.
- OWASP MCP Top 10 is beta (Phase 3); MCP01–MCP10 numbering is stable enough to cite but rankings may shift. The NSA CSI (May 20, 2026) is authoritative and recent but is guidance, not a binding standard.
- Tooling staleness risk: MCP moves fast; flag anything older than ~6 months. MkDocs Material's maintenance-mode status (successor Zensical) is a live decision factor; Reveal.js, FastMCP, and the SDKs iterate quickly — re-verify versions at build time.
- Reference-server archival means many third-party tutorials are stale; always verify against the current
modelcontextprotocol/serversREADME and the official registry before installing or citing.