You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/blog/mcp-with-wasmcp.md
+9-9Lines changed: 9 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,14 +10,14 @@ author = "Ian McDonald"
10
10
11
11
---
12
12
13
-
[Wasmcp](https://github.com/wasmcp/wasmcp) is a [WebAssembly Component](https://component-model.bytecodealliance.org/)Development Kit for the [Model Context Protocol](https://modelcontextprotocol.io/docs/getting-started/intro).
13
+
[Wasmcp](https://github.com/wasmcp/wasmcp) is a [WebAssembly component](https://component-model.bytecodealliance.org/)development kit for the [Model Context Protocol](https://modelcontextprotocol.io/docs/getting-started/intro).
14
14
15
15
It works with [Spin](https://github.com/spinframework/spin) to let you:
16
16
17
17
* Build composable MCP servers as WebAssembly components.
18
18
* Mix tools and features written in Rust, Python, TypeScript, etc. in a single server binary.
19
19
* Plug in shared components for authorization, sessions, logging, and more across multiple MCP servers.
20
-
* Run the same sandboxed MCP server binary locally, on [Fermyon Wasm Functions](https://www.fermyon.com/wasm-functions), on Kubernetes clusters (e.g. via [SpinKube](https://www.spinkube.dev/)), or on any runtime that speaks WASI + components.
20
+
* Run the same sandboxed MCP server binary locally, on the network edge via [Fermyon Wasm Functions](https://www.fermyon.com/wasm-functions), on Kubernetes clusters (e.g. via [SpinKube](https://www.spinkube.dev/)), or on any runtime that speaks WASI + components.
21
21
* Expose both stdio and Streamable HTTP transports via standard [WASI](https://wasi.dev/) exports.
22
22
23
23
See the [quickstart](#quickstart) or read on for some context.
@@ -38,7 +38,7 @@ Large language models (LLMs) are trained on vast heaps of data that they use to
38
38
39
39
All LLMs depend on calling external [functions](https://gorilla.cs.berkeley.edu/leaderboard.html), also called tools, to interact with the outside world beyond the prompt and to perform deterministic actions. Just like you might use a calculator to accurately crunch numbers, or a web browser to explore the internet, an LLM might use its own calculator and HTTP fetch tools in the same way. Even basic capabilities like reading a file from disk are implemented via tools.
40
40
41
-
Without tools a language model is like someone sitting in an empty, windowless box with only their memories from an array of random encyclopedias, books, and other training data to pull from. Our interactions with them are something along the lines of: A human slips a question written on a piece of paper under the door for the model to read, and the model slips back a response using only their prior knowledge and imagination.
41
+
Without tools, a language model is like someone sitting in an empty, windowless box with only their memories from an array of random encyclopedias, books, and other training data to pull from. Our interactions with them are something along the lines of: A human slips a question written on a piece of paper under the door for the model to read, and the model slips back a response using only their prior knowledge and imagination.
42
42
43
43
That's a long way from the promise of autonomous systems that understand and act on the world in realtime, let alone transform it.
44
44
@@ -70,7 +70,7 @@ We need a layer of indirection between models and their tools.
70
70
71
71
In November 2024, Anthropic suggested an open-source standard for connecting AI applications to external systems: The [Model Context Protocol (MCP)](https://modelcontextprotocol.io/docs/getting-started/intro). It aims to be the USB-C for tool calling, and more.
72
72
73
-
MCP defines a set of context [primitives](https://modelcontextprotocol.io/specification/draft/server) that are implemented as server features.
73
+
MCP defines a set of context [primitives](https://modelcontextprotocol.io/specification/draft/server) that are implemented as server features. The following table from [MCP's documentation](https://modelcontextprotocol.io/specification/draft/server) summarizes the scope of each primitive.
@@ -108,12 +108,12 @@ While WebAssembly (Wasm) is commonly thought of as a browser technology, it has
108
108
109
109
The Wasm [component model](https://component-model.bytecodealliance.org/) builds on these strengths to implement a broad-reaching architecture for building interoperable WebAssembly libraries, applications, and environments. Wasm components within a single sandboxed process are further isolated from each other and interop only through explicit interfaces. A visual analogy for this idea might look like a bento box (independent compartments sharing a box but not contents unless you decide to mix them).
110
110
111
-
The component model shares architectural similarities with MCP’s [server design principles](https://modelcontextprotocol.io/specification/2025-06-18/architecture#design-principles):
111
+
The component model shares architectural similarities with MCP’s [server design principles](https://modelcontextprotocol.io/specification/2025-06-18/architecture#design-principles), which are quoted below.
112
112
113
-
> 1. Servers should be extremely easy to build
114
-
> 2. Servers should be highly composable
115
-
> 3. Servers should not be able to read the whole conversation, nor “see into” other servers
116
-
> 4. Features can be added to servers and clients progressively
113
+
1. Servers should be extremely easy to build
114
+
2. Servers should be highly composable
115
+
3. Servers should not be able to read the whole conversation, nor “see into” other servers
116
+
4. Features can be added to servers and clients progressively
117
117
118
118
Imagine mapping individual MCP features to Wasm components, which can be composed together to form a complete MCP server component.
0 commit comments