| Crates.io | wasmic |
| lib.rs | wasmic |
| version | 0.2.0 |
| created_at | 2025-10-06 17:11:33.597908+00 |
| updated_at | 2025-10-06 19:05:37.090418+00 |
| description | A CLI tool for managing WASI components and running them as MCP servers |
| homepage | https://github.com/dineshdb/wasmic |
| repository | https://github.com/dineshdb/wasmic |
| max_upload_size | |
| id | 1870440 |
| size | 241,490 |
A CLI tool for managing WASI components and running them as MCP (Model Context Protocol) servers. See components for use
Wasic enables you to run WebAssembly components as MCP (Model Context Protocol) servers, giving you access to a wide range of tools and functionality through a unified interface. With wasmic, you can:
Pre-compiled binaries for Linux (x86_64), macOS (x86_64 and ARM64), and Windows
(x86_64) are available on the
GitHub Releases page. This is the
recommended way to install wasmic for most users.
Download the appropriate archive for your system, extract it, and place the
wasmic (or wasmic.exe on Windows) binary in your system's PATH.
For easy installation from crates.io (once published):
cargo binstall wasmic
To install the latest version from source via Cargo:
cargo install wasmic
To install the latest development version from source:
# Clone the repository
git clone https://github.com/dineshdb/wasmic.git
cd wasmic
# Install the CLI tool
just install
Wasic uses a cache folder for storing downloaded OCI artifacts and other temporary files:
~/.cache/wasmic/~/Library/Caches/wasmic/%LOCALAPPDATA%\wasmic\cache\# List available components
wasmic --config config.yaml list
# Call a function on a component
wasmic --config config.yaml call --function "time.get-current-time" --args "{}"
# Call fetch function
wasmic --config config.yaml call --function "fetch.fetch" --args '{"url":"https://httpbin.org/get"}'
The default configuration file is config.yaml in the project root. The wasmic
CLI looks for configuration files in the following order:
--config)WASIC_CONFIG)~/.config/wasmic/config.yaml~/Library/Application Support/wasmic/config.yamlCreate a config.yaml file to define your components:
profiles:
default:
components:
time:
path: target/wasm32-wasip2/release/time.wasm
config:
timezone: "UTC"
fetch:
oci: ghcr.io/dineshdb/wasi-components/fetch:latest
prompts:
research:
name: "Web Research"
description: "Research a topic"
content: |
# Research a topic
Use this workflow to monitor external APIs and track their performance:
## Tools
- brave_search for searching the web. You can do multiple searches on a topic before responding
- fetch.fetch for fetching links directly
Wasmic can run as a standalone MCP server that exposes WASM components as MCP tools and prompts:
# Start MCP server with default config
wasmic mcp
# Start with custom config
wasmic mcp --config /path/to/config.yaml
# Start on specific host and port
wasmic mcp --http 0.0.0.0:8080
For development information, see docs/development.md.
For testing, you can use: ghcr.io/yoshuawuyts/time:latest