Open Standard · v0.1

The Agent-First Web

A standard for websites that work as well for AI agents as they do for humans.

The web wasn't built for agents

Today's web is designed for browsers. AI agents have to scrape, guess, and hack their way through login flows, CAPTCHAs, and unstructured HTML. It doesn't have to be this way.

Traditional Web

Built for Browsers Only

  • No machine-readable site description
  • Registration requires a browser and email verification
  • APIs hidden behind docs portals and waitlists
  • Errors returned as HTML error pages
  • No way for agents to discover capabilities
  • "Contact sales" as the integration strategy
Agent-First Web

Built for Humans and Agents

  • llms.txt describes the site for any agent
  • Programmatic registration in one API call
  • OpenAPI spec or MCP server auto-discoverable
  • Structured JSON errors with actionable details
  • Agents can browse, create, and transact
  • "Open in your agent" as the integration strategy

Three tiers of agent readiness

Not every site needs to go full agent-native on day one. The standard defines three progressive tiers so you can start where you are and level up over time.

I

Bronze: Discoverable

Agents can find and understand your site
  • llms.txt at root describing the site, its purpose, and available endpoints
  • Structured API documentation (OpenAPI, AsyncAPI, or equivalent)
  • JSON error responses with error codes and human-readable messages
  • Semantic HTML with meaningful headings and landmarks
II

Silver: Self-Service

Agents can sign up and use your service without a browser
  • Programmatic registration — no browser, no CAPTCHA, no email verification loop
  • API key or token issued in a single call
  • Full OpenAPI spec advertised via .well-known/openapi.json
  • MCP server endpoint for Claude Desktop / Cursor / persistent tool stacks
  • Rate limiting with clear Retry-After headers
  • Webhook support for async events
III

Gold: Agent-Native

Your UI is designed with agents as first-class users
  • WebMCP support — tools registered via navigator.modelContext.registerTool() on every page so browser agents can call them directly
  • Page-context tools that auto-register based on the current URL (e.g. "save this item")
  • Tools inherit the user's existing browser session — no API key handoff
  • Optional in-site agent bar or sidebar for users who don't yet have a personal agent
  • Context-aware agent suggestions based on current page and user state
  • "Open in your agent" buttons for cross-application workflows
  • Agent identity system — agents act on behalf of users with scoped permissions
  • Sets data-agent-first="ready" on the <html> element so agents can probe

WebMCP — the missing layer

Google and Microsoft are co-shipping WebMCP as a W3C standard. It lets a website declare callable tools that any browser-based AI agent can invoke via navigator.modelContext. This is the breakthrough that makes agent-first sites actually work without an API-key handoff.

Why it matters

  • No auth handoff. The tool runs in the tab the user is already logged into. The browser session IS the auth.
  • No separate server. Unlike traditional MCP, you don't run a tool server — the page IS the tool surface.
  • 89% more efficient than screenshots. Agents call typed tools instead of guessing at DOM elements.
  • Works with any browser session. Google OAuth, username/password, magic link, Auth0 — whatever you use, WebMCP inherits it.
  • Future browser default. In Chrome 146+ today; Safari and Firefox in the W3C working group.

Minimal implementation

<script defer>
if ("modelContext" in window.navigator) {
  window.navigator.modelContext.registerTool({
    name: "create_note",
    description: "Save a new note for the logged-in user",
    inputSchema: {
      type: "object",
      properties: {
        title: { type: "string" },
        content: { type: "string" }
      },
      required: ["title"]
    },
    execute: async ({ title, content }) => {
      const r = await fetch("/api/v1/notes", {
        method: "POST",
        credentials: "include",
        headers: { "Content-Type": "application/json" },
        body: JSON.stringify({ title, content })
      });
      const note = await r.json();
      return { content: [{ type: "text", text: "Saved as " + note.id }] };
    }
  });
}
</script>

That's the whole pattern. Wrap your existing REST endpoints. The browser handles auth.

Live example

ListHub registers 9 WebMCP tools on every page (search, get, list, create, append, upsert, set-visibility, plus page-context tools). Source: /static/webmcp.js.

Enable in Chrome: chrome://flags/#enable-webmcp-testing → install Model Context Tool Inspector → visit any ListHub page → tools auto-register.

See it in action

Real sites implementing the Agent-First Web standard, from basic discoverability to full agent-native experiences.

How to make your site agent-first

Four steps from zero to Gold. Each step is independently useful — you don't need to do them all at once.

Add llms.txt

Place a plain-text file at your site root that tells agents what your site is, what it does, and where to find the API. Think of it as robots.txt for AI.

# /llms.txt

name: YourApp
description: A brief description of what your site does
url: https://yourapp.com

api_base: https://yourapp.com/api/v1
api_docs: https://yourapp.com/docs/api
openapi: https://yourapp.com/openapi.json

registration: POST https://yourapp.com/api/v1/register
authentication: Bearer token via API key

capabilities:
  - Create and manage items
  - Search across all public content
  - Webhooks for real-time updates

Add a registration API

Let agents create accounts programmatically. No browser, no CAPTCHA, no email verification loop. Return an API key in the response.

# Agent registers and gets an API key in one call

curl -X POST https://yourapp.com/api/v1/register \
  -H "Content-Type: application/json" \
  -d '{
    "username": "jacob-agent",
    "agent_name": "Claude Code",
    "owner_email": "[email protected]"
  }'

# Response:
{
  "api_key": "afk_live_abc123...",
  "username": "jacob-agent",
  "endpoints": "https://yourapp.com/openapi.json"
}

Add an MCP server

The Model Context Protocol lets AI agents connect to your service as a tool provider. Agents discover your capabilities and call them directly, with typed inputs and outputs.

# Your MCP server exposes tools that agents can call

tools:
  - name: search
    description: Search all public content
    parameters:
      query: string (required)
      limit: number (default: 10)

  - name: create_item
    description: Create a new item
    parameters:
      title: string (required)
      content: string (required)
      visibility: "public" | "unlisted" | "private"

# Agents connect via:
claude mcp add yourapp -- npx @yourapp/mcp-server

Add the agent bar

The agent bar is a UI element — a sidebar, floating panel, or command palette — that lets users interact with your site through their personal AI agent. It bridges the GUI and the API.

YourApp
DashboardExploreSettings
My Reading List
@jacob · list · 5 items · public
• The Dispossessed — Ursula K. Le Guin
• Godel, Escher, Bach — Douglas Hofstadter
• Thinking in Systems — Donella Meadows
• The Beginning of Infinity — David Deutsch
• Sapiens — Yuval Noah Harari
Agent Ready
Add Dune by Frank Herbert
Added! Your list now has 6 items. View →
Suggested:
Share this list publicly
Find similar books
Export as markdown
🛡️
Agent-First Certified
GOLD · 2026

Add the Agent-First badge to your site to signal to agents (and humans) that your service is ready for the agentic web.

<a href="https://agentfirst.web"><img src="badge-gold.svg" alt="Agent-First Gold"></a>

Install your agent

To use agent-first sites, you need a personal AI agent. Here are the best ways to get one running today.

💻

Claude Code

Available now

Anthropic's official CLI agent. Runs in your terminal with full tool access. Connect MCP servers, browse the web, manage files.

npm install -g @anthropic-ai/claude-code
☁️

Cortex

Available now

Cloud workspace for agents. Persistent sessions, shared memory, and pre-configured MCP connections to agent-first sites.

cortex.sh
🌐

Browser Extension

Coming soon

An extension that detects agent-first sites and lets you interact with them through your preferred agent, right from the browser.

Notify me when it ships

What we believe

Agents are users, not scrapers

Treat AI agents as legitimate users of your platform. Give them APIs, not obstacles. The sites that welcome agents will win the next era of the web.

Progressive enhancement

Start with llms.txt. Add a registration endpoint when you're ready. Go agent-native when it makes sense. Each tier delivers value independently.

Humans stay in control

Agents act on behalf of users, with scoped permissions and clear audit trails. The standard requires agent identity, not agent anonymity.

Open by default

This is an open standard. No vendor lock-in. No proprietary protocols. Build on MCP, OpenAPI, and plain text. Anyone can implement it.