Describe your website once. AI2Web makes it understandable to every AI.
AI agents are starting to use the web, but the web was built for human eyes. Agents scrape HTML, guess at forms, and render whole pages just to find one price or one button. AI2Web fixes that by publishing a single, structured description of what your site can do, and serving backend-first endpoints agents can call directly. No scraping, no per-vendor rebuild.
AI2Web is a vendor-neutral capability layer. It sits above protocols like MCP and ACP and speaks whichever one an assistant understands, rather than competing with them.
What it serves
On activation the plugin serves, from your own domain:
/.well-known/ai2w– the discovery anchor agents look for/ai2w– your site’s AI2Web manifest: identity, capabilities, transports, declared actions, events, governance/ai2w/mcp– a Model Context Protocol endpoint. Add it to Claude, ChatGPT, Grok or any MCP client and your declared actions become tools the assistant can call/ai2w/content,/ai2w/search,/ai2w/products,/ai2w/events– live, structured content and catalog/ai2w/actions/*– the secure action endpoints/ai2w/negotiate– capability negotiation (agree a capability set and transport)/llms.txt– a plain-text summary and links, projected from the same manifest/.well-known/agent.json– a generic agent-capability document, also projected from the manifest
The last two mean agents that speak llms.txt or a generic agent.json can use your site without understanding AI2Web first, while /ai2w stays the authoritative source.
Agentic checkout (ACP)
With WooCommerce active, AI2Web can expose an Agentic Commerce Protocol (ACP) checkout so a shopper’s AI agent (for example ChatGPT Instant Checkout) can buy from your store. The agent drives a real WooCommerce cart through a checkout session at /ai2w/acp/checkout_sessions – adding items and a chosen variation, setting a shipping address, picking a delivery option, applying a coupon – and sees your live WooCommerce pricing, shipping rates and tax as it goes. A product feed at /ai2w/acp/feed lets agents ingest your catalogue. The same flow is available as MCP tools, so any MCP client can run it.
Payment stays safe by design. Completing a session hands the store a delegated payment token. AI2Web ships a Stripe Shared Payment Token handler: when a Stripe secret key is available (set an AI2WEB_STRIPE_SECRET_KEY constant in wp-config.php, or configure the WooCommerce Stripe gateway), it confirms a Stripe PaymentIntent for the order total and the buyer is charged in-agent. With no key configured, completion creates a pending order and returns that order’s own secure payment link for the customer to pay in the browser. Either way the agent never handles card details, and the whole payment step is filterable (ai2web_acp_complete_payment) if you use a different processor. Turn ACP on under Settings -> AI2Web (it requires Agent checkout).
AP2 (Agent Payments Protocol)
AI2Web can also expose a Google AP2 merchant surface (opt-in). AP2 represents a purchase as signed “mandates”: the store answers a buyer agent’s Intent Mandate with a merchant-signed Cart Mandate that guarantees the items and price for a short window, then settles a user-signed Payment Mandate into a WooCommerce order. It is served at /ai2w/ap2 as a REST binding and a minimal A2A JSON-RPC endpoint, with an agent card and a JWKS that publishes the cart-signing public key so any party can verify the merchant’s signature. Enable it under Settings -> AI2Web (it generates an RSA signing key on first use).
WooCommerce
When WooCommerce is active, AI2Web exposes safe commerce actions:
- search_products – search the catalogue by keyword
- check_stock – availability, price and stock by SKU or id
- track_order – order status, verified by the billing email on the order
- check_return_status – whether a return or refund request already exists
- start_return / request_refund – request only. They log the request as an order note for you to action in WooCommerce and never issue a refund or move money automatically. Approval-gated.
- start_checkout – an agent assembles a cart and the plugin creates a pending order, returning WooCommerce’s own secure payment link for the customer to pay in the browser. The agent never handles payment details, and no money moves until the customer pays.
Contact forms
If Contact Form 7, Gravity Forms, WPForms, Fluent Forms or Elementor Forms is active, AI2Web exposes a single approval-gated submit_contact action. On confirmation the enquiry is emailed to your support address (never an arbitrary recipient, so it is not an open relay) and is rate limited per IP.
WordPress 7.0 AI: Abilities API
On WordPress 6.9+/7.0, AI2Web also registers its actions as native WordPress Abilities, with AI annotations (read vs. write, destructive). This exposes the same ownership-verified, approval-gated actions to WordPress’s own AI Client and MCP Adapter, so a connected assistant can use them through WordPress too. Two surfaces, one definition:
/ai2w– the public, anonymous, open-protocol surface (ownership and approval gated).- WordPress Abilities – the authenticated WordPress-native surface, gated by WordPress’s own auth.
Agent service
If you connect an AI provider in WordPress 7.0’s Connectors hub, AI2Web exposes /ai2w/agent, a natural-language endpoint answered by WordPress’s built-in AI Client using your provider. The plugin never handles an AI key.
OAuth2 (PKCE)
Agents can authenticate via an OAuth2 authorization-code + PKCE flow, where a logged-in user approves access on a consent screen. Codes are single-use and short-lived, tokens are stored hashed, PKCE uses S256, and the flow is served over HTTPS. Anonymous, ownership-gated access remains the fallback, so a token is never required. OAuth is a security-sensitive feature; review it for your threat model before relying on it, and it can be turned off on the settings page.
AI Readiness Score
A settings page (Settings -> AI2Web) shows a live AI Readiness Score out of 100 and a compliance tier, lets you toggle each feature (MCP, agent service, OAuth2, WooCommerce actions, returns/refunds, agent checkout, ACP, AP2), and set a public support email.
Agent Sales dashboard
A separate Agent Sales screen (Settings -> AI2Web Agent Sales) tracks what AI agents actually do on your store, computed entirely from local data – no external service and nothing to set up. It attributes every order an agent created (through agent checkout, ACP or AP2) and shows agent-driven revenue, order count, average order value and pending value for a period you choose, broken down by protocol, with a recent-orders table. It also surfaces engagement from the AI2Web events table: discovery hits, queries, action calls, and query “misses” – searches an agent ran that returned nothing, i.e. demand you are not yet meeting, which a read-only crawl of your site could never reveal.
Safe by design
The most important part is what an agent cannot do without asking. See the security section below.
AI2Web is backend-first and API-driven. It does not scrape your frontend or rely on browser tools.
How it works
- Discovery. An agent fetches
/.well-known/ai2w, which points to/ai2w. Reading the manifest never changes anything. - Understanding. The manifest declares your identity, capabilities, transports, and each action’s input schema, risk level and whether it needs approval.
- Negotiation. The agent can
POST /ai2w/negotiateto agree a capability set and a transport (REST or MCP). - Acting. The agent calls an action over REST (
/ai2w/actions/{name}) or as an MCP tool. Requests are validated against the declared schema. Sensitive actions return a preview and require explicit confirmation.
Everything is generated from your live site and detected integrations, and the manifest is filterable so themes and plugins can extend it.
Privacy and security
- Discovery and the manifest expose only public metadata. Your admin email is never published; a support contact appears only if you set one.
- Ownership before private data. Order actions never trust an order number alone. The caller must also provide the billing email, and it must match the order. A wrong email and a nonexistent order return the identical “not found” response, so agents cannot enumerate which orders exist.
- Approval before money or commitment. Refunds, returns, checkout and contact enquiries return a preview first and only proceed on explicit confirmation.
- Request only for money. Refund and return actions add an order note for you to review and never call WooCommerce’s refund process. Checkout creates a pending order and hands the customer a payment link; the agent never handles payment.
- Rate limited. Order lookups, checkout and enquiries are throttled per IP.
- The WordPress Abilities surface requires an authenticated WordPress user; it is gated by WordPress’s own permissions.
- OAuth2 (PKCE) is served over HTTPS, uses S256, issues single-use short-lived codes, stores tokens hashed, and only issues them after a logged-in user approves on a consent screen. A bearer token authenticates a request but does not elevate its WordPress capabilities.
External services
This plugin does not send any data to an external service by default. One optional feature relies on a third party:
Stripe (agent-completed payments)
When, and only when, you (a) enable ACP checkout, (b) enter your own Stripe secret key in Settings -> AI2Web, and (c) a shopper’s agent completes an order using a delegated Stripe payment token, the plugin sends a single request to the Stripe API (https://api.stripe.com/v1/payment_intents) to charge that order. If you do not enter a Stripe key, no request is ever made and no data leaves your site.
Data sent to Stripe with that request: the order amount and currency, an order description, the delegated payment token supplied by the agent, the order ID and checkout-session ID, and (if present) the customer’s billing email as the receipt address. It is sent over HTTPS at the moment the agent completes payment. No data is sent at any other time.
Stripe is a service provided by Stripe, Inc. Please review their terms and privacy policy:
- Terms: https://stripe.com/legal/ssa
- Privacy policy: https://stripe.com/privacy
