-
-
Notifications
You must be signed in to change notification settings - Fork 2
Developer Resources
TamTunnel edited this page Oct 29, 2025
·
2 revisions
Everything you need to build with AWAS: tools, examples, libraries, and references.
- Repository: https://github.com/TamTunnel/awas
- Wiki Home: https://github.com/TamTunnel/awas/wiki
- Specification: Specification
- Implementation Guide: Implementation Guide
- Security Practices: Security Practices
- FAQ: FAQ
- Example AI Manifest: Example AI Manifest
AWAS now provides auto-discoverable manifests for Model Context Protocol (MCP) and Agent-to-Agent (A2A) integration, enabling seamless AI agent workflows.
Location: /.well-known/mcp-manifest.json
{
"$schema": "https://modelcontextprotocol.io/schema/manifest.json",
"name": "AWAS - AI-readable Web Actions Standard",
"version": "1.0.0",
"description": "Open-source standard for AI-readable web actions enabling AI browsers to interact with websites efficiently",
"capabilities": ["actions", "resources", "prompts"],
"endpoints": {
"actions": "/.well-known/awas.json",
"schema": "/schema/awas-schema.json"
},
"integration": {
"protocol": "MCP",
"version": "1.0",
"compatibility": ["Anthropic Claude", "OpenAI", "AI browsers"],
"discovery": {
"auto_discoverable": true,
"endpoint_location": "/.well-known/mcp-manifest.json"
}
}
}Location: /.well-known/a2a-manifest.json
{
"$schema": "https://a2a.dev/schema/manifest.json",
"name": "AWAS - AI-readable Web Actions Standard",
"version": "1.0.0",
"protocol": "A2A",
"capabilities": {
"actions": true,
"workflows": true,
"state_management": true,
"authentication": false
},
"endpoints": {
"actions_registry": "/.well-known/awas.json",
"schema_definition": "/schema/awas-schema.json"
},
"interoperability": {
"cross_protocol": true,
"compatible_with": ["MCP", "OpenAPI", "GraphQL"],
"notes": "100% interoperability with MCP and other agent communication protocols"
}
}AI agents and browsers can automatically discover AWAS capabilities by requesting the standard .well-known endpoints:
For MCP Integration:
curl https://your-site.com/.well-known/mcp-manifest.jsonFor A2A Integration:
curl https://your-site.com/.well-known/a2a-manifest.jsonAgent developers can use these manifests to:
- Auto-discover capabilities: Parse the manifest to understand available actions, endpoints, and protocols
- MCP Integration: Use the MCP manifest with Anthropic Claude or other MCP-compatible systems
- A2A Workflows: Implement agent-to-agent communication using the A2A protocol specification
-
Fetch action definitions: Follow the
actionsoractions_registryendpoint to retrieve the full AWAS action catalog -
Validate compatibility: Check the
compatibilityandsupported_agentsfields to ensure your agent is supported
JavaScript/TypeScript:
// Auto-discover and consume MCP manifest
async function discoverMCPCapabilities(baseUrl) {
const response = await fetch(`${baseUrl}/.well-known/mcp-manifest.json`);
const manifest = await response.json();
// Fetch available actions
const actionsResponse = await fetch(`${baseUrl}${manifest.endpoints.actions}`);
const actions = await actionsResponse.json();
return { manifest, actions };
}
// Usage
const { manifest, actions } = await discoverMCPCapabilities('https://example.com');
console.log('Available actions:', actions);Python:
import requests
def discover_a2a_capabilities(base_url):
# Fetch A2A manifest
manifest_url = f"{base_url}/.well-known/a2a-manifest.json"
manifest = requests.get(manifest_url).json()
# Fetch action registry
actions_url = f"{base_url}{manifest['endpoints']['actions_registry']}"
actions = requests.get(actions_url).json()
return manifest, actions
# Usage
manifest, actions = discover_a2a_capabilities('https://example.com')
print(f"Protocol: {manifest['protocol']}")
print(f"Actions available: {len(actions)}")- Cross-Protocol Support: AWAS manifests are designed for 100% interoperability between MCP, A2A, OpenAPI, and GraphQL
- Standard Compliance: Both manifests follow their respective protocol standards while maintaining backward compatibility with core AWAS
- No Vendor Lock-in: Agents can use either protocol or both simultaneously
-
Future-Proof: Extensibility through
x-*fields allows custom metadata without breaking compatibility
- Multi-Protocol Agents: Implement support for both MCP and A2A to maximize compatibility
- Schema Validation: Use the JSON schemas provided in the manifests to validate action definitions
-
State Management: For A2A workflows, implement state management according to the
state_managementcapability -
Custom Extensions: Add your own metadata using
x-*fields in the manifest structure - Rate Limiting: Respect rate limits defined in the AWAS action definitions
- Authentication: If your site requires authentication, implement according to AWAS security best practices
For more details on implementation, see the Specification page.
- Examples directory: /examples (sample manifests, annotated HTML, server stubs)
- Quick-start manifest templates: /examples/manifests
- Headless E2E tests: /examples/tests
- JSON Schema validators: Ajv (Node), jsonschema (Python), serde_json + schemars (Rust)
- DOM selector testing: Playwright, Puppeteer, Selenium
- Linting: ESLint configs for data-awas-* attributes (example in /examples)
- Load testing: k6, Artillery for per-action rate/latency
- JavaScript/TypeScript: awas-client-js (parse manifest, execute actions in browser)
- Python: awas-client-py (requests + Playwright helpers)
- Rust: awas-client-rs (manifest types + fetch)
Note: See the repo Issues for links or status of community libs if not yet published.
- JSON Schema (validation patterns)
- OpenAPI (API documentation style)
- Schema.org (semantic markup you can reuse in selectors)
- robots.txt, sitemap.xml (discovery and access patterns)
- CORS, CSP, HSTS (security headers)
- Use
x-*fields for custom metadata - Reference OpenAPI specs via
x-openapilinks - Cross-link to schema files:
/.well-known/ai-actions.schema.json
- Discussions: GitHub Discussions (open a thread for proposals/questions)
- Issues: create issues for bugs, enhancements, and spec clarifications
- Security: responsible disclosure via SECURITY.md or GitHub Security tab
- Chat: link to community chat (Discord/Slack) if available
- See the project board and open milestones in the repo
- Good first issues are labeled; PRs welcome
- Please add tests and update docs when changing the spec