LABSCO SUMMARY
Distribution and sandboxing are the point, not the tool list.
Two problems get solved together here. Plugins ship as OCI images, so installing a tool is a registry pull with a signature check rather than a git clone and a build. And because they run in Wasm, each one's network and memory access is declared in your config instead of inherited from the host process — a real answer to the question of what a third-party MCP tool can reach. Check the new repository for current development.
What it is
A fast MCP server written in Rust that gets its capabilities from WebAssembly plugins rather than from built-in tools. Plugins can be written in any language that compiles to Wasm, distributed through standard OCI registries, and run anywhere from a server to an edge or IoT device. It is built on Extism, and supports all three transports in the spec: stdio, sse and streamable-http.
What you get
- A plugin model where each entry in the config is a URL —
oci://for container registries,file://for local files,http://orhttps://for remote files, ands3://for Amazon S3 objects using your existing AWS credentials - Sandboxing that is configured, not assumed: per-plugin
runtime_configsetsallowed_hostsand amemory_limit, so a fetch plugin can reach the network while an IP-lookup plugin is restricted to a single host - Supply-chain verification — OCI plugin images are signed at publish time and verified at load time with sigstore, and loading an unsigned plugin requires explicitly setting an insecure-skip flag or
HYPER_MCP_INSECURE_SKIP_SIGNATURE - Tool name prefixing to stop collisions when several plugins expose similarly named tools
- Example plugins maintained in the repository to start from, covering time, QR codes, hashes, IP lookup, web fetching, filesystem operations, GitHub and GitLab, arXiv search, SQLite, Qdrant, crates.io and Go module lookups, library documentation, web search and Python evaluation
- A documented pattern for filtering the exposed tool set with regexes, for keeping a large plugin set manageable per environment
Requirements
No account and no key for the server itself; individual plugins may want their own credentials, and the S3 scheme uses whatever AWS credentials are already in your environment. Write a config file at the platform path — $HOME/.config/hyper-mcp/config.json on Linux, $HOME/Library/Application Support/hyper-mcp/config.json on macOS — listing your plugins and their runtime configs, then run hyper-mcp. It defaults to stdio; --transport sse or --transport streamable-http switch it. A container image is published as tuananh/hyper-mcp on Docker Hub. Apache 2.0 licensed. Note that the project has been transferred to a new repository, joseph-wortmann/hyper-mcp, which the author points to for the latest updates.
Setup effort
Follow the published steps
USE CASES
01
Adding a capability without trusting it with everything
Give the plugin an explicit allowed-hosts list and a memory limit so it can only reach what you named.
02
Distributing your own tools to a team
Publish the plugin as an OCI image; installing it is a URL in a config file, and the signature is verified at load time.
03
Writing a tool in the language you already use
Anything that compiles to WebAssembly works, so a plugin can be Rust or Go without changing how it is loaded.
04
Running MCP where a heavy runtime will not fit
The server is light enough for constrained environments and deploys to serverless, edge and mobile targets.
INSTALLATION
Connect your client
Server setup
Create the config file at $HOME/.config/hyper-mcp/config.json (Linux), $HOME/Library/Application Support/hyper-mcp/config.json (macOS), or under <YOUR_FOLDERID_ROAMING_APP_DATA> (Windows), listing the plugins to load
Start the server: hyper-mcp (stdio by default; --transport sse or --transport streamable-http for the others)
For Cursor, create .cursor/mcp.json in the project root with the mcpServers block pointing at the hyper-mcp binary
MCP Clients
Cursor
CURSOR · JSON
{
"mcpServers": {
"hyper-mcp": {
"command": "<YOUR_PATH_TO_HYPER_MCP>"
}
}
}