{"id":47115444,"url":"https://github.com/pulseengine/wasi-mcp","last_synced_at":"2026-03-12T18:58:26.060Z","repository":{"id":303678877,"uuid":"1016258585","full_name":"pulseengine/wasi-mcp","owner":"pulseengine","description":"Proposed WASI API for Model Context Protocol, targeting WASI 0.3 standardization","archived":false,"fork":false,"pushed_at":"2026-03-01T11:39:27.000Z","size":103,"stargazers_count":0,"open_issues_count":5,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-01T14:58:31.811Z","etag":null,"topics":["mcp","model-context-protocol","pulseengine","wasi","webassembly","wit"],"latest_commit_sha":null,"homepage":null,"language":"Starlark","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pulseengine.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-08T18:19:30.000Z","updated_at":"2026-03-01T12:58:32.000Z","dependencies_parsed_at":"2025-07-08T21:36:54.929Z","dependency_job_id":"111fa68b-b6c1-4bee-8f54-308032d26f19","html_url":"https://github.com/pulseengine/wasi-mcp","commit_stats":null,"previous_names":["pulseengine/wasi-mcp"],"tags_count":0,"template":false,"template_full_name":"WebAssembly/wasi-proposal-template","purl":"pkg:github/pulseengine/wasi-mcp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pulseengine%2Fwasi-mcp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pulseengine%2Fwasi-mcp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pulseengine%2Fwasi-mcp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pulseengine%2Fwasi-mcp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pulseengine","download_url":"https://codeload.github.com/pulseengine/wasi-mcp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pulseengine%2Fwasi-mcp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30439122,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-12T14:34:45.044Z","status":"ssl_error","status_checked_at":"2026-03-12T14:09:33.793Z","response_time":114,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["mcp","model-context-protocol","pulseengine","wasi","webassembly","wit"],"created_at":"2026-03-12T18:58:25.520Z","updated_at":"2026-03-12T18:58:26.055Z","avatar_url":"https://github.com/pulseengine.png","language":"Starlark","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# wasi-mcp\n\n\u003csup\u003eProposed WASI API for Model Context Protocol\u003c/sup\u003e\n\n\u0026nbsp;\n\n![WIT](https://img.shields.io/badge/WIT-654FF0?style=flat-square\u0026labelColor=1a1b27)\n![WebAssembly](https://img.shields.io/badge/WebAssembly-654FF0?style=flat-square\u0026logo=webassembly\u0026logoColor=white\u0026labelColor=1a1b27)\n![License: Apache-2.0](https://img.shields.io/badge/License-Apache--2.0-blue?style=flat-square\u0026labelColor=1a1b27)\n\n\u003c/div\u003e\n\n\u0026nbsp;\n\nA proposed [WebAssembly System Interface](https://github.com/WebAssembly/WASI) API for the Model Context Protocol, providing typed operations for MCP 2025-06-18 with WASI 0.3 async support.\n\n\u003e [!NOTE]\n\u003e Part of the PulseEngine toolchain. Extends WASI standardization for Model Context Protocol interoperability.\n\n### Current Phase\n\n**Phase 0 — Pre-Proposal** (targeting Phase 1)\n\n### Approach\n\n**Protocol-Faithful Design**: This proposal provides typed WIT interfaces that map directly to MCP protocol operations, similar to how wasi-http maps HTTP semantics. Each MCP method has a corresponding typed function with proper async patterns.\n\n## Table of Contents\n\n- [Introduction](#introduction)\n- [Goals](#goals)\n- [Non-goals](#non-goals)\n- [API Overview](#api-overview)\n- [Examples](#examples)\n- [Design Discussion](#design-discussion)\n- [Implementation Status](#implementation-status)\n- [References](#references)\n\n## Introduction\n\nThe Model Context Protocol (MCP) is an open standard that enables AI applications to connect to external data sources, tools, and workflows. This WASI proposal enables WebAssembly components to implement MCP servers and clients with full protocol support.\n\n**Why WASI for MCP?**\n- **Portability**: Run MCP servers across any WASM runtime\n- **Security**: Leverage WebAssembly's capability-based security model\n- **Performance**: Native async operations with WASI 0.3\n- **Composability**: Component Model enables MCP server aggregation\n- **Type Safety**: Strongly-typed WIT interfaces prevent protocol errors\n\n**Protocol Coverage**: This proposal implements the complete MCP 2025-06-18 specification including protocol initialization, resources with templates and subscriptions, tools with annotations, prompts with arguments, pagination, progress tokens, notifications, logging, and streaming support.\n\n## Two Versions: WASI 0.2 + WASI 0.3\n\n| Version | Status | Use Case | Location |\n|---------|--------|----------|----------|\n| **WASI 0.3** | Aspirational | Final standardization with async | `wit/*.wit` |\n| **WASI 0.2** | Available now | Immediate prototyping (blocking ops) | `wit/preview2/*.wit` |\n\n## Goals\n\n1. Complete MCP Protocol Support in WIT\n2. Protocol-Faithful Design with direct mapping of MCP methods\n3. WASI 0.3 async with `future\u003cresult\u003cT, error\u003e\u003e`\n4. Follow WASI Patterns from successful Phase 3 proposals\n5. Clear Path to Phase 1\n\n## Non-goals\n\n- Transport Implementation (handled by hosts)\n- JSON-RPC Layer (implementation detail)\n- AI Model Integration (out of scope)\n- Backward Compatibility (only targeting latest MCP spec)\n\n## API Overview\n\n**Bidirectional Interface Pattern** — Components import runtime capabilities and export handlers:\n\n```wit\n// Component IMPORTS runtime to register and serve\ninterface runtime {\n    register-server: func(info: server-info) -\u003e future\u003cresult\u003c_, error\u003e\u003e;\n    register-tools: func(tools: list\u003ctool-definition\u003e) -\u003e future\u003cresult\u003c_, error\u003e\u003e;\n    serve: func() -\u003e future\u003cresult\u003c_, error\u003e\u003e;\n}\n\n// Component EXPORTS handlers to execute operations\ninterface handlers {\n    call-tool: func(name: string, arguments: list\u003cu8\u003e) -\u003e future\u003cresult\u003ctool-result, error\u003e\u003e;\n    read-resource: func(uri: string) -\u003e future\u003cresult\u003cresource-contents, error\u003e\u003e;\n}\n```\n\n**Interface Structure:**\n```\nwit/\n├── types.wit          # Core MCP types\n├── capabilities.wit   # Server/Client capabilities\n├── content.wit        # Content blocks\n├── runtime.wit        # Runtime API (component imports)\n├── handlers.wit       # Handler interface (component exports)\n├── client.wit         # Client operations\n├── world.wit          # Component worlds\n└── preview2/          # WASI 0.2 for immediate prototyping\n```\n\n## Examples\n\nSee the full [Examples section](https://github.com/pulseengine/wasi-mcp#examples) for MCP backend, client, and streaming usage patterns in Rust.\n\n## Implementation Status\n\n### Completed\n\n- Core types with all MCP protocol types\n- Complete capabilities system\n- Content type system with variants\n- Typed server and client operations\n- Notification system and streaming interface\n- World definitions with deps.toml\n- WASI 0.2 interfaces for immediate prototyping\n\n### Next Steps for Phase 1\n\n1. Create reference implementations (Rust, Go, C++)\n2. Gather stakeholder feedback (Anthropic, WASI Subgroup)\n3. Submit Phase 1 proposal\n\n## References\n\n- [MCP 2025-06-18 Specification](https://github.com/modelcontextprotocol/specification)\n- [wasi-http](https://github.com/WebAssembly/wasi-http) — Protocol-faithful HTTP mapping\n- [Component Model](https://github.com/WebAssembly/component-model)\n- [WASI 0.3](https://github.com/WebAssembly/WASI)\n\n## License\n\nApache-2.0\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n\u003csub\u003ePart of \u003ca href=\"https://github.com/pulseengine\"\u003ePulseEngine\u003c/a\u003e \u0026mdash; formally verified WebAssembly toolchain for safety-critical systems\u003c/sub\u003e\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpulseengine%2Fwasi-mcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpulseengine%2Fwasi-mcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpulseengine%2Fwasi-mcp/lists"}