Describe your website once, make it usable by any AI A developer built AI2Web, an open-source interoperability layer that lets websites describe their capabilities once in a machine-readable manifest and expose them through multiple AI protocols such as MCP, GraphQL, ACP, and OpenAPI. The project aims to reduce fragmentation for AI assistants by providing a single description that generates protocol-specific adapters, avoiding the need to implement and maintain separate integrations for each platform. If you have tried to make a website work with AI assistants recently, you have run into the fragmentation. Depending on the platform, you are looking at MCP, WebMCP, ACP, product feeds, OAuth flows, framework-specific tooling, and whatever ships next. Each solves a real slice of the problem. But a site ends up implementing and maintaining several of them separately, per assistant, and re-doing it every time a new protocol appears. The web was built for humans. Agents should not have to scrape HTML and guess at your forms. So I built AI2Web to test a different approach: describe your site's capabilities once, and expose them through whichever protocol an AI platform speaks. A site publishes a small, machine-readable manifest: GET /.well-known/ai2w discovery anchor GET /ai2w the capability manifest POST /ai2w/negotiate agree a capability set + transport From that one description, you generate MCP, GraphQL, ACP, OpenAPI and feeds. You do not rebuild for each assistant. When a new protocol wins, you add an adapter, not a rewrite. It is explicitly not a replacement for MCP or ACP. It sits above them as an interoperability layer. The bet is that the capability model is the durable part, and the transports are adapters. score any live site's AI readiness npx -p @ai2web/validator ai2web validate https://ai2web.dev or build a manifest in code npm install @ai2web/core js import { ai2web, validateManifest } from "@ai2web/core"; const manifest = ai2web { name: "Acme", url: "https://acme.example", type: "ecommerce" } .capability "content" .capability "commerce", { checkout: true } .build ; console.log validateManifest manifest .score ; // AI Readiness Score /100 @ai2web/core and PHP, Python, Go and .NET I am not trying to win a standards race. I am trying to make the AI-ready web simple enough that developers actually want to build it. Whether that abstraction holds, or leaks so badly you would rather just implement MCP directly, is exactly the question I cannot answer alone. If you build websites, AI agents, or the tools in between, I would value your criticism: It is open source code MIT, spec CC-BY . Describe once. Works everywhere. That is the whole idea.