Wassette
Over the past few months, I’ve been using extensively hyper-mcp as an MCP tool host with querymt. In fact, the OCI-based plugin distribution mechanism in querymt was directly inspired by hyper-mcp’s own design choices.
Recently, I stumbled upon an interesting new project from Microsoft — Wassette. Naturally, I wanted to understand how it compares to hyper-mcp. Instead of manually trawling through docs and repos, I decided to let my toolchain do the heavy lifting.
The Setup
I used querymt’s CLI interface together with its GitHub MCP plugin of hyper-mcp to analyze and compare the two repositories. The command looked something like this:
qmt --provider openai:gpt-5 --mcp-config ./mcp_cfg.toml \
"take these two github projects tuananh/hyper-mcp and microsoft/wassette and compare the two libraries and give detailed comparison"
Results
Since there has been quite a hype around OpenAI’s new GPT-5 model, I have deciced to actually take this opportunity and use it and compare its results with Kimi K2 model’s analysis. Here are the results:
GPT-5 comparison
Show full comparison output
Here’s a practical, side‑by‑side comparison of tuananh/hyper-mcp and microsoft/wassette based on their repos and READMEs at the time of writing.Top-line summary
- Both are MCP servers that let AI agents use WebAssembly-packaged tools from OCI registries (e.g., oci://ghcr.io/…).
- Hyper MCP is a feature-rich, security-conscious MCP server built on Extism, with multiple transports, signature verification, rich config, and many example/community plugins.
- Wassette is a security-oriented runtime by Microsoft that maps any WebAssembly Component (WIT-defined) into MCP tools, emphasizing typed interfaces and reusability across runtimes.
Project snapshot (as of now)
- hyper-mcp (https://github.com/tuananh/hyper-mcp)
- Stars: ~749; Forks: ~54; Open issues: ~13
- License: Apache-2.0
- First commit: 2025-01; Actively updated
- wassette (https://github.com/microsoft/wassette)
- Stars: ~297; Forks: ~19; Open issues: ~29
- License: MIT
- First commit: 2025-07; Actively updated
Positioning and goals
- Hyper MCP
- “A fast, secure MCP server that extends its capabilities through WebAssembly plugins.”
- Focus: production-ready server features (multi-transport, distribution/signing, config, deployment anywhere).
- Wassette
- “A security-oriented runtime that runs WebAssembly Components via MCP.”
- Focus: typed, WIT-first component model and clean mapping of Wasm Components to MCP tools; strong sandboxing.
Architecture and runtime model
- Hyper MCP
- Built on Extism. Developers write plugins against Extism’s PDKs; Hyper MCP hosts them and exposes tools via MCP.
- Emphasizes a plugin “server with plugins” model and host function access control.
- Wassette
- Built on Wasmtime and the WebAssembly Component Model (WIT). Any Wasm Component (that exposes WIT types) can be loaded and its functions exposed as MCP tools.
- Emphasizes reusability: the same component can run outside MCP and in other Wasm runtimes.
Transports (MCP)
- Hyper MCP: explicitly supports all three MCP transports (stdio, SSE, and streamable-http).
- Wassette: README documents stdio (“serve –stdio”); no explicit mention of SSE/streamable-http yet.
Security model
- Hyper MCP
- Sandboxed plugin execution (WASM); memory/resource limits; fine-grained access control for host functions.
- Signed plugin distribution with Sigstore: OCI plugin images are signed at publish time and verified at load time (can be overridden for unsigned dev flows via env/flag).
- Network/filesystem allowlists and limits; tool-name prefixing to avoid collisions.
- Wassette
- Wasmtime sandbox; “browser-grade isolation of tools.”
- Security posture is strong, but README does not mention image signing/verification; emphasizes generic Component isolation rather than distribution policy.
Distribution and loading
- Hyper MCP
- Supports multiple URL schemes for plugins: oci://, file://, http(s)://, s3://.
- Per-plugin config in a JSON file (with OS-specific default locations). Includes runtime config like allowed_hosts, memory_limit, and tool_name_prefix.
- Wassette
- Uses OCI references (e.g., oci://ghcr.io/yoshuawuyts/time:latest). Local path usage not explicitly documented in README.
- Registration with MCP clients is straightforward (setup docs for Cursor, Claude Code, Gemini CLI, VS Code, etc.).
Developer experience and authoring model
- Hyper MCP
- Write plugins in any language that compiles to Wasm; Extism PDKs provide ergonomics.
- Clear “build and publish” flow; example Dockerfile flow; signature verification by default; many example plugins provided.
- Goal: nice for teams that want a uniform plugin ABI (Extism), robust distribution/signing, and multi-transport server features.
- Wassette
- WIT-first: define interfaces/types in WIT; compile to Wasm Components; no MCP-specific code needed in the component itself.
- Simple mental model: functions you export become MCP tools.
- Goal: ideal if you value typed interfaces and reusability of components across different Wasm hosts (not just MCP).
Ecosystem and examples
- Hyper MCP
- Rich set of example plugins out of the box: time, qr-code, hash, myip, fetch, crypto-price (Go), fs, github (Go), eval-py, arxiv, memory (SQLite), sql, crates-io, gomodule (Go), qdrant, gitlab, meme-generator, context7, think, maven, serp, server, and more.
- Community-built plugins listed (e.g., Hacker News, release-monitor ID, Yahoo Finance, rand16).
- Wassette
- Examples across languages: eval-py (Python), fetch-rs (Rust), filesystem-rs (Rust), get-weather-js (JS), gomodule-go (Go), time-server-js (JS).
- Emphasis on cross-language demonstrations of WIT Component usage.
Platform support and installation
- Hyper MCP
- Cross-platform; deploy anywhere (serverless, edge, mobile, IoT).
- Config file locations documented for Linux, Windows, macOS.
- Supports stdio by default; flags for SSE/streamable-http; supports RUST_LOG and signature-override env.
- Wassette
- Install scripts for Linux/macOS; Nix flakes; Windows releases available.
- “wassette serve –stdio” for MCP stdio transport.
- Good MCP client setup docs.
Operations and configuration
- Hyper MCP
- Central config file listing plugins and per-plugin runtime config (allowed_hosts, memory limits, tool prefix, etc.).
- Supports pulling plugins from multiple sources (OCI, HTTP, files, S3).
- Tool name prefixing helps avoid collisions across plugins.
- Wassette
- Lightweight runtime mindset: load any component and expose its WIT functions as tools.
- Configuration is primarily in how you register the MCP server with your client; component loading is done by telling the agent to load a component (e.g., from an OCI ref).
Licensing and governance
- Hyper MCP: Apache-2.0; independent maintainer with strong activity and traction.
- Wassette: MIT; under Microsoft org; may carry longer-term ecosystem alignment with WIT and Wasmtime.
Maturity signals
- Hyper MCP: earlier start (Jan 2025), more stars and plugins, multi-transport support, signing/verification pipeline already in place.
- Wassette: newer (Jul 2025) but backed by Microsoft; clearer alignment with the WebAssembly Component Model and typed interfaces.
When to choose which
-
Choose Hyper MCP if you want:
- Immediate multi-transport MCP support (stdio, SSE, streamable-http).
- Built-in plugin signing/verification (Sigstore) and granular host capability gating.
- Broad source schemes (oci, file, http(s), S3) and rich, ready-to-use plugin catalog.
- A cohesive Extism-based plugin experience and production-oriented MCP server features.
-
Choose Wassette if you want:
- A WIT-first, typed-component workflow whose artifacts are reusable across Wasm hosts beyond MCP.
- A minimal mental model: “exported WIT functions => MCP tools,” without MCP-specific code in components.
- A Microsoft-backed project aligned with Wasmtime and the Component Model, and straightforward setup with popular MCP clients.
Notable deltas at a glance
- Transports: Hyper MCP = stdio + SSE + streamable-http; Wassette = stdio documented.
- Distribution: Hyper MCP = oci + file + http(s) + s3; Wassette = oci documented.
- Security hardening: Hyper MCP = signing + verification + allowlists + limits; Wassette = strong sandbox via Wasmtime, no signing noted in README.
- Plugin model: Hyper MCP = Extism plugin ABI; Wassette = WebAssembly Component Model (WIT).
- Examples/ecosystem: Hyper MCP currently has a larger catalog and community plugins.
- License: Hyper MCP = Apache-2.0; Wassette = MIT.
Kimi K2 comparison
Show full comparison output
Based on my analysis of both repositories, here's a detailed comparison of **hyper-mcp** and **wassette**:Overview Comparison
| Aspect | hyper-mcp | wassette |
|---|---|---|
| Primary Focus | Fast, secure MCP server with WebAssembly plugin support | Security-oriented runtime for WebAssembly Components via MCP |
| Creator | Tuan Anh Tran (individual developer) | Microsoft (corporate backing) |
| License | Apache 2.0 | MIT |
| Language | Rust | Rust |
| Stars | 749 ⭐ | 298 ⭐ |
| Age | Created January 2025 (7 months old) | Created July 2025 (1 month old) |
| Maturity | More mature, v0.1.4 | Early stage, v0.2.0 |
Architecture & Design Philosophy
hyper-mcp
- Plugin Architecture: Built on Extism for rock-solid plugin support
- Distribution Model: Uses standard OCI registries (Docker Hub, GHCR) for plugin distribution
- Security Model: Sandboxed plugins with configurable resource limits (memory, network, filesystem)
- Language Support: Any language that compiles to WebAssembly
- Configuration: JSON-based configuration with support for runtime constraints
wassette
- Runtime Architecture: Built on Wasmtime security sandbox
- Component Model: Uses WebAssembly Component Model (WIT interfaces)
- Distribution Model: OCI registries for WebAssembly components
- Security Model: Browser-grade isolation with Wasmtime’s security features
- Language Support: Any language supporting WebAssembly Component Model
- Configuration: Primarily through MCP client configuration
Security Features
| Security Aspect | hyper-mcp | wassette |
|---|---|---|
| Sandboxing | WASM sandbox + resource limits | Wasmtime security sandbox |
| Network Access | Configurable allowed hosts | Browser-grade isolation |
| File System | Restricted access | Sandboxed file operations |
| Memory Limits | Configurable memory limits | Built-in memory constraints |
| Code Signing | OCI image signing with sigstore | Standard WebAssembly security |
| Plugin Verification | Signature verification at load time | Component validation |
Plugin Ecosystem
hyper-mcp
- Rich Plugin Library: 20+ maintained plugins including:
- Time utilities, QR code generation, hashing
- GitHub integration, filesystem operations
- Crypto price feeds, Python code evaluation
- Database connectors (SQLite), memory storage
- Community Plugins: Active community contributions
- Plugin Creation: XTP CLI tool for scaffolding new plugins
- Distribution: Docker/OCI registry publishing
wassette
- Example Components: 8+ example components including:
- Python code execution sandbox
- HTTP API clients, filesystem operations
- Weather APIs, Go module information
- JavaScript time server
- Generic Components: Focus on reusable WebAssembly Components
- No MCP-specific code: Components are generic and reusable
Developer Experience
hyper-mcp
- Setup: Simple JSON configuration, multiple transport protocols
- Tooling: XTP CLI for plugin development
- Documentation: Comprehensive README with examples
- Integration: Detailed guides for Cursor, Claude Desktop
- Cross-platform: Works on Linux, macOS, Windows
wassette
- Setup: One-line installation script, Nix support
- Tooling: Standard WebAssembly Component tooling
- Documentation: Good getting-started guide
- Integration: Setup guides for VS Code, Claude, Cursor
- Cross-platform: Linux, macOS, Windows support
Performance & Scalability
hyper-mcp
- Performance: Optimized for speed (“fast” explicitly mentioned)
- Resource Usage: Lightweight for resource-constrained environments
- Deployment: Serverless, edge, mobile, IoT devices
- Transport: Supports stdio, SSE, and streamable HTTP
wassette
- Performance: Built on Wasmtime (proven performance)
- Resource Usage: Efficient WebAssembly runtime
- Deployment: Standard MCP deployment patterns
- Transport: Primarily stdio-based MCP communication
Community & Governance
hyper-mcp
- Contributors: 11 total (mix of individual contributors)
- Community: Active community plugin development
- Governance: Individual maintainer (tuananh)
- Support: GitHub issues, community contributions
wassette
- Contributors: 9 total (Microsoft employees + community)
- Community: Growing Microsoft-backed ecosystem
- Governance: Microsoft open source project
- Support: Microsoft Discord channel, corporate backing
Use Case Recommendations
Choose hyper-mcp if you:
- Need a mature, feature-rich MCP server
- Want extensive pre-built plugins
- Require fine-grained security controls
- Need cross-platform deployment flexibility
- Prefer Apache 2.0 license
Choose wassette if you:
- Want Microsoft-backed security guarantees
- Prefer WebAssembly Component Model standards
- Need enterprise-grade security isolation
- Want to leverage existing WebAssembly components
- Prefer MIT license
- Need cutting-edge WebAssembly runtime features
Technical Deep Dive
hyper-mcp Advantages:
- Mature plugin ecosystem with 20+ ready-to-use plugins
- Advanced security configuration (host-based access, memory limits, tool prefixes)
- Multiple transport protocols (stdio, SSE, streamable HTTP)
- OCI registry integration with signature verification
- Cross-compilation support for various targets
wassette Advantages:
- WebAssembly Component Model compliance
- Microsoft enterprise backing and long-term support
- Wasmtime security (battle-tested in production)
- Generic WebAssembly components (not MCP-specific)
- Standard WASI interfaces for maximum compatibility
Both projects are excellent choices for MCP servers with WebAssembly support, but they serve slightly different needs: hyper-mcp for a rich plugin ecosystem and wassette for standards-compliant WebAssembly Components with enterprise backing.
Summary
Both models provided a comprehensive and detailed comparison of the two GitHub projects, tuananh/hyper-mcp and microsoft/wassette. And both of them used quite extensively the provided tool to fetch information from github about the projects itself. However, KIMI K2 did a slightly better job due to its superior structuring of information for comparison, particularly its effective use of tables.
Here’s a detailed summary of their performance:
KIMI K2’s Strengths:
- Excellent Use of Tables: KIMI K2’s primary strength is its extensive use of well-structured tables (Overview, Security Features). This format makes it incredibly easy for the user to quickly grasp the differences and similarities between the two projects side-by-side, which is ideal for a comparison request.
- Clear Categorization: The comparison is broken down into logical and distinct categories (Architecture & Design Philosophy, Plugin Ecosystem, Developer Experience, etc.), making it easy to navigate.
- Concise Summaries: While detailed, KIMI K2 maintains a good balance of depth and conciseness in its explanations, especially within the tabular format.
- Actionable Recommendations: The “Use Case Recommendations” are clear and provide good guidance on when to choose one project over the other.
- Technical Deep Dive: The “Technical Deep Dive” section effectively summarizes the key advantages of each project.
GPT5’s Strengths:
- Highly Detailed Narrative: GPT5 provides very rich, descriptive prose for each comparison point, offering a deeper dive into aspects like “Architecture and runtime model” or “Security model.” This is beneficial for someone seeking extensive background information.
- Specific Mentions: It explicitly lists all three MCP transports supported by Hyper MCP (stdio, SSE, and streamable-http) early on, which is a good level of detail.
- “Notable Deltas” Summary: The “Notable deltas at a glance” section at the end is a useful quick-reference summary of the main differences.
- Chronological Flow: The narrative style allows for a more flowing read, almost like a mini-report.
Shared Weaknesses:
- Incorrect Project Dates: Both models reported future “First commit” or “Created” dates (January 2025 and July 2025). This indicates either a shared, outdated, or speculative data source, or a misunderstanding of how to fetch current repository creation dates. This is a significant factual error present in both responses.
Conclusion:
While GPT5 offers slightly more narrative depth and specific examples within its prose, KIMI K2’s superior structure, particularly its effective use of tables for direct comparison, makes it easier to digest the information and quickly identify key differences. For a “comparison” prompt, the ability to clearly see side-by-side attributes is paramount, and KIMI K2 delivers on this more effectively. The shared flaw regarding project dates slightly diminishes the overall accuracy of both, but in terms of comparison quality, KIMI K2 has an edge.