Discoverable
Bots can find you. Your site exposes the metadata and machine-readable files that let AI agents know you exist.
A /.well-known/llms.txt or /llms.txt file exists with machine-readable site information.
An agent card (/.well-known/agent.json or similar) describes capabilities for AI agents.
An OpenAPI/Swagger specification is publicly accessible.
robots.txt includes directives for AI crawlers and agents.
Developer documentation is publicly accessible without authentication.
CORS headers allow cross-origin API access for browser-based agents.
HTML meta tags (llms:description, llms:url, llms:instructions) help AI agents discover site capabilities.
A /skill.md file provides structured agent instructions with YAML frontmatter.
A /.well-known/ai.json file describes the site name, capabilities, and skill links for agents.
A /.well-known/skills/index.json file lists all available agent skills with id and name.
HTML <link> elements in <head> point to llms.txt, ai.json, or agent-card.json for discovery.
A Model Context Protocol (MCP) server endpoint is discoverable at /.well-known/mcp.json or /mcp.
The homepage HTML is token-efficient — LLMs can extract useful content without excessive overhead from scripts, styles, and boilerplate.
An RSS or Atom feed is available, providing structured content that agents can consume without parsing HTML.
Usable
Your API works for agents. Authentication, error handling, and core operations are agent-compatible.
Read operations (list, get, search) are available via API.
Write operations (create, update, delete) are available via API.
The primary value action of the app is available via API.
API key authentication is supported, not only OAuth browser flows.
API keys can be scoped to specific permissions.
An OpenID Connect discovery document is available.
All API errors return structured JSON with error codes.
Long-running operations return a job ID with pollable status.
Write endpoints support idempotency keys to prevent duplicate operations.
Optimized
Agents can work efficiently. Pagination, filtering, and caching reduce token waste and round-trips.
A fields or select parameter exists to request only needed fields.
List endpoints use cursor-based pagination.
Resources can be filtered by common attributes.
Batch create/update/delete endpoints exist.
Responses include rate limit headers (X-RateLimit-* or similar).
Responses include caching headers (ETag, Cache-Control, Last-Modified).
MCP server exposes well-described tools and resources with input schemas for agent use.
Agent-Native
First-class agent support. Intent endpoints, sessions, scoped tokens, and tool schemas treat agents as primary consumers.
High-level "intent" endpoints exist alongside CRUD (e.g., /send-invoice instead of multiple calls).
Why CLI only: Intent endpoints require deep API exploration and test calls that cannot be determined from external metadata alone.
Agents can create persistent sessions with context that survives across requests.
Why CLI only: Session creation requires authenticated API calls and stateful interaction that web scanning cannot perform.
Agent-specific tokens with hard capability limits and expiration.
Why CLI only: Token scoping requires authenticated access to the token management system.
API actions are logged with agent identifiers for traceability.
Why CLI only: Audit log verification requires authenticated access and test write operations.
A sandbox environment exists for agent testing without real side effects.
Why CLI only: Sandbox detection requires environment probing and authenticated API exploration.
Documentation and API metadata mark consequential or irreversible actions.
Why CLI only: Consequence labels are embedded in API schemas and tool definitions that require deep parsing.
Core API actions are packaged as ready-to-use tool definitions for agent frameworks.
Why CLI only: Tool schema validation requires fetching and parsing platform-specific definition formats.