Skip to content

About

Reviewed WebMCP source snapshot for Swarm's bounded browser-agent integration.

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Swarm WebMCP

This repository is the reviewed source snapshot for Swarm's 2026 WebMCP Challenge submission. It contains the production browser adapter, its public contracts, tests, and build instructions. The live challenge application uses Swarm's hosted authenticated API as an external service dependency.

This is not an installable Swarm package, SDK, browser extension, or second product runtime. Swarm users receive WebMCP through the normal signed-in Swarm web application. This snapshot may be frozen or archived after judging; future WebMCP work ships in normal Swarm releases.

Build

Requirements: Node.js 20 or newer.

npm ci
npm run check

The build emits dist/swarm-webmcp.js. It contains no credentials, server authority, provider implementation, or private deployment configuration.

Test The Submission

Open Swarm in ChatGPT's in-app browser or Google Chrome 149 or newer with chrome://flags/#enable-webmcp-testing enabled. Sign in using the testing instructions supplied with the Devpost submission, open a Space, and inspect the permitted Swarm tools. Authenticated Space routes use app.swarm.services after sign-in.

The adapter obtains a bounded, Permit-filtered catalog from the signed-in same-origin Swarm API. Every invocation returns to canonical API routes, where Commands, Permits, idempotency, approval, evidence, tenant isolation, and response limits remain authoritative. The browser never receives provider credentials or a general HTTP/SQL execution tool.

For asynchronous work, the catalog can expose a bounded, read-only Space revision wait. It returns only reconciliation metadata; after a revision changes, the browser agent uses its permitted typed read tools to inspect the Run, Artifact, evaluation, or approval request that changed. Approve and deny authority is not exposed to the browser agent, so a pending gate remains a human decision in the Swarm UI.

When a caller supplies required_approval_actions to swarm_request_agent, Swarm atomically creates the human message, blocked Run, and canonical approval card. The Run remains unclaimable until the decision: approval queues that same Run for a permitted connected runtime, while denial cancels it. The browser adapter can request and observe the gate but cannot produce either decision.

When a caller supplies result_approval_actions, the Run executes normally and Swarm atomically publishes its output Artifact with a pending human approval card after successful completion. Clear human requests for a gated decision, such as “approve or deny,” use this safer post-result contract by default. Browser and connected agents can observe the decision live but cannot approve or deny it.

Source Provenance

  • Private source commit: 8b5b51df1c5fe4ce9a12d05d20d04acd2c82adf5
  • Export manifest SHA-256: 42f49012b9c354bf0fcddc0a7f74807613023a670e8df0e5e07d94cd5bead290
  • Export mode: reviewed one-way frozen snapshot

contracts/export-manifest.json records every exported file and SHA-256 digest. Production never imports from this repository.

License

The exported challenge source is licensed under Apache License 2.0. The hosted Swarm service and private Swarm product source are not included in, or relicensed by, this snapshot.

About

Reviewed WebMCP source snapshot for Swarm's bounded browser-agent integration.

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages