Beta-ready retrofit surface

Retrofit the product you already have into one agents can reliably call.

For AI product teams, platform teams, and SaaS operators who need stable execution — not brittle browser automation.

FastWebMCP turns real product routes, dialogs, uploads, callbacks, and job flows into agent-usable capabilities without forcing a product rewrite or raw source exposure.

Built from real reference pressure: melogen-web, redol-style admin flows, GitHub Packages release artifacts, and CI-safe consumer templates.

5
publishable SDK packages
core, browser, react, contracts, adapters
6
default adapter templates
form, dialog, file import, callback, async job, multi-output
3
bridge execution modes
markup, callback, endpoint
Best fit
  • Teams retrofitting an existing product instead of starting from a blank-slate agent app
  • Platform owners who need rollout control, telemetry, and route-level capability mapping
  • Operators who must ship through CI/CD, Docker, and remote deploy environments
Why this is safer
  • Expose constrained product capabilities instead of raw DOM automation
  • Keep rollout tied to route config, bridge choice, and adapter boundaries
  • Publish and consume through GitHub Packages instead of local sibling coupling
Why this exists

Official MCP is not the hardest part. Retrofitting an existing product is.

Most teams already have a real product. The hard problem is exposing the right product capabilities to agents without turning every important workflow into brittle browser choreography.

The product problem

Browser automation fails exactly where the business logic matters.

Dialogs, file uploads, session-bound mutations, async generation, and payment-state polling are fragile if the integration surface is only “click these selectors in order.”

The FastWebMCP answer

Expose capability contracts over real product flows.

FastWebMCP gives teams a route-aware runtime, bridge contracts, browser execution helpers, and adapter templates so the stable unit of integration becomes a capability boundary — not a lucky DOM script.

Key insightThe durable integration surface is not “the DOM.” It is a constrained capability contract layered over real product routes and protected business flows.
Why WebMCP matters

WebMCP explains the interface model. FastWebMCP explains how to ship it in a real product.

Use the dedicated WebMCP page when you need the precise distinction between in-page tools, backend MCP, and raw browser automation.

Current beta surface

This is already a beta product surface, not just an architecture sketch.

The repo is credible because the beta already covers runtime orchestration, browser execution, React integration, bridge contracts, adapter defaults, release artifacts, and consumer install guidance.

What you get in one surface

FastWebMCP is strongest when teams need to move from “can an agent theoretically use this?” to “can we ship this safely inside a real product?”

  • Route inventory + config hydration so capabilities are attached where the product actually lives
  • Bridge execution helpers that understand dialogs, callbacks, files, and polling-heavy jobs
  • Release + consumption path that works in remote CI/CD and deployment pipelines
@fastwebmcp/core

Runtime + route telemetry

The runtime is what turns product routes into manageable rollout surfaces instead of ad-hoc per-page scripts.

  • Observe routes, hydrate config, mount adapters, and flush telemetry safely
  • Give platform teams one place to reason about route coverage and execution behavior
@fastwebmcp/react

Provider + hooks for app teams

React teams don’t need to hand-wire runtime state into every page. The provider layer makes registration and readiness manageable.

  • Register tools only when the product context is ready
  • Reuse hooks instead of re-implementing product/agent glue code
browser + contracts + adapters

Bridge execution that matches real UI complexity

This is where FastWebMCP starts paying for itself: dialog forms, file import, callbacks, async jobs, and polling-heavy routes already have reusable defaults.

  • Support stable markup flows, explicit callback registries, and endpoint-driven jobs
  • Reduce one-off site glue with reusable adapter templates and shared contract semantics
publish + consume

Release path for real deployment teams

The product isn’t credible if it only works in a sibling checkout. FastWebMCP already includes a path for publishing and consuming the SDK in remote build environments.

  • GitHub Packages publishing workflow for the SDK package set
  • Consumer templates for GitHub Actions + Docker BuildKit installs
Execution path

From product route to agent-ready capability in four controlled steps.

The delivery motion should mirror how real teams ship: identify the route, select the bridge mode, wrap it as an adapter, then verify and release.

  1. 011

    Map the route

    Identify the real product surface: a form, dialog, upload, async job, or high-value mutation path.

  2. 022

    Select the bridge

    Choose the smallest stable execution surface: markup for UI flows, callback for product-owned client logic, endpoint for protected jobs and mutations.

  3. 033

    Wrap it as an adapter

    Use the default templates or define a custom adapter so the capability lives behind a stable contract.

  4. 044

    Verify and release

    Typecheck, test, build, package, and then roll the published SDK into consumer apps and deploy pipelines.

Bridge model

Choose the bridge based on execution stability, not ideology.

The important question is not which bridge sounds elegant. It is which bridge leaves the smallest and safest surface area for this product behavior.

Markup bridge

Stable UI flows and dialog forms

Use selectors and field kinds when the product already has a stable form surface and you want the lowest integration overhead.

Best for

Admin forms, modal submissions, checkbox toggles, file inputs, and page-scoped actions with predictable UI state.

Avoid when

The page logic already lives in client callbacks or server-side jobs with richer status semantics.

  • Feed creation dialogs and import forms
  • Simple configuration pages and approval forms
Callback bridge

Controlled client-owned capability

Use callback bridges when the product already owns a meaningful client-side function and you want to expose that function directly.

Best for

Generation tasks, upload processing, and flows with product-specific client logic that should not be re-encoded as DOM actions.

Avoid when

You actually need a protected server mutation with pending/success/failure state tracking.

  • Client-owned generate actions
  • Upload preprocessing and rich front-end task launchers
Endpoint bridge

Protected mutation and polling-heavy workflows

Use endpoint bridges when the capability is really a server-side job or mutation that must expose durable status semantics.

Best for

Payments, publishing, background jobs, report generation, and long-running tasks with explicit lifecycle states.

Avoid when

The flow is actually just a stable local form and would be over-engineered as a job endpoint.

  • Payment result and order-status polling
  • Async content generation and report pipelines
Reference pressure

The best product decisions here came from real integration pressure, not abstract diagrams.

These examples matter because they forced the SDK to support the awkward edges that real products actually have.

Complex generation product

Melogen-style generation surfaces

Problem

Generation-heavy products need more than one submit button. They have uploads, callbacks, async jobs, and multi-output delivery.

Bridge choice

Blend callback and async job patterns so the agent sees a stable capability boundary instead of hidden page choreography.

Outcome

The SDK improved its callback and multi-output posture because these flows demanded it.

Admin + feed workflows

Redol-style admin dialogs and imports

Problem

Admin tools often hide critical flows in dialogs, file imports, and stateful result pages that are easy to break with browser-only automation.

Bridge choice

Use dialog-form, file-import, and endpoint polling patterns to match how the product really works.

Outcome

The SDK now supports dialog openers, file fields, and richer endpoint status semantics because this category forced the issue.

Rollout + deployment path

Teams shipping through CI/CD

Problem

A local-only SDK does not count as a product if downstream teams deploy from remote GitHub Actions and Docker builds.

Bridge choice

Ship the SDK through GitHub Packages and consume it through reproducible install templates.

Outcome

FastWebMCP now has a credible publish-and-consume path instead of depending on sibling checkouts.

Developer entry

Make the package roles obvious before asking a team to integrate anything.

A strong landing page should answer two questions fast: which packages matter for my case, and what is the shortest path from install to route-level rollout?

Install the core integration path

npm install @fastwebmcp/core @fastwebmcp/browser @fastwebmcp/react

Bootstrap the runtime

import { createFastWebMCPClient } from '@fastwebmcp/core'
void createFastWebMCPClient({
controlPlaneBaseUrl: 'https://control.example.com',
siteId: 'site_xxx',
environment: 'prod',
apiKey: 'fwmcp_site_xxx_prod_xxx',
autoObserveRoutes: true,
})
Package roles
@fastwebmcp/core
Control plane runtime

Hydrates config, tracks routes, mounts adapters, and emits telemetry.

@fastwebmcp/browser
Browser execution layer

Runs markup, callback, and endpoint bridge helpers in the product environment.

@fastwebmcp/react
App-facing integration layer

Adds provider + hooks so React teams can register tools and react to readiness cleanly.

@fastwebmcp/adapters
Reusable route templates

Provides dialog form, file import, callback task, async job, and multi-output defaults.

Shortest path
  1. 1Install the runtime surface and wire the route-aware client
  2. 2Choose the bridge mode that matches the real product behavior
  3. 3Verify, package, and roll the SDK into the consumer app through CI-safe delivery
  • Use @fastwebmcp/core for runtime, route inventory, telemetry, and adapter dispatch.
  • Add @fastwebmcp/browser and @fastwebmcp/react when the product needs browser execution helpers and provider/hooks integration.
  • For remote deploys, consume published packages through GitHub Packages instead of local file: dependencies.
Why this is credible now

Proof should read like a delivery chain, not a fake dashboard.

The trust argument is simple: ship the package set, prove the bridge defaults, show the consumer path, and then connect all of it to how downstream teams actually deploy.

delivery proof panel
Delivery chain
01
Repo pressure becomes package boundaries
The SDK is now split into runtime, browser, React, contracts, and adapters because real integration pressure demanded that separation.
02
Package boundaries become release artifacts
The release tarballs, sizes, and sha identifiers prove the package set can be built and verified as actual distributable units.
03
Release artifacts become deployable consumer paths
GitHub Packages publishing plus consumer templates make the SDK usable from remote CI/CD instead of only in local sibling checkouts.
5
SDK packages in release scope
verified build + pack outputs
docs + templates
deployment-ready docs/templates
publish + consume path
melogen + redol
reference integration patterns
melogen + redol pressure tests
The strongest proof here is not a vanity metric. It is a chain: product pressure shaped the SDK, the SDK ships as real artifacts, and the artifacts can be consumed through a real deployment path.
Release artifacts
@fastwebmcp/core13.2 kB
b387ac36…8560
@fastwebmcp/browser13.5 kB
8c624a5c…884d
@fastwebmcp/react5.1 kB
48cd348a…586a
@fastwebmcp/bridge-contracts5.3 kB
2e87bf70…b42f
@fastwebmcp/adapters4.9 kB
00a9a081…bdd4
Operational assets
  • GitHub Packages publish workflow for five SDK packages
  • Consumer templates for GitHub Actions + Docker BuildKit installs
  • Reference-app-driven bridge support from melogen-web and redol.ai patterns
01

Publishable SDK packages

Core, browser, React, bridge-contracts, and adapters all build, typecheck, test, and pack as release artifacts.

02

Bridge defaults informed by real product pressure

Dialog openers, checkbox/file fields, callback registries, async jobs, and custom polling states are already implemented and unit-tested.

03

Consumer install path

The repo already includes GitHub Packages publishing flow plus Docker/GitHub Actions consumer templates for remote deployment.

Evaluator questions

Answer the questions a serious adopter will ask before rollout.

A strong landing page should remove doubts for engineering leads, platform owners, and product evaluators — not just explain the protocol vocabulary.

01
How invasive is this inside an existing product?
+

The goal is constrained retrofitting, not product rewrite. Teams attach runtime, choose a bridge mode per route, and expose capability boundaries where needed.

02
How do we decide between markup, callback, and endpoint?
+

Pick the smallest stable execution surface: markup for stable UI flows, callback when product-owned client logic already exists, and endpoint for protected or polling-heavy mutations.

03
Can this ship through remote CI/CD and Docker builds?
+

Yes. The current beta already includes GitHub Packages publishing and consumer templates for GitHub Actions plus Docker BuildKit secret installation.

04
Why is this beta meaningful instead of just a prototype?
+

Because the package set, bridge defaults, adapter templates, tests, pack artifacts, and reference-app-driven improvements are already in place and verifiable.

05
What is the relationship between WebMCP and FastWebMCP?
+

WebMCP is the page-level capability model: websites expose JavaScript tools inside shared UI context. FastWebMCP is the product and SDK layer that helps teams retrofit real routes, bridges, adapters, and release workflows around that model.

FastWebMCP — retrofit existing products into reliable agent-callable systems