axle · ChatGPT + Claude integration
axle as a tool for your LLM agent
Engineers ask ChatGPT and Claude “is my site accessible?” all the time. The honest answer the model can give without a tool is “I don't know — I can't see your site”. With axle wired in as a tool, the model can actually run the scan and return a structured report. This page is the one-stop shop for plugging axle into ChatGPT GPTs, Claude tool-use applications, MCP servers, and any other agent framework.
ChatGPT GPT (custom GPT) setup
- Create a new GPT at chatgpt.com/gpts/editor.
- Configure → Actions → Create new action.
- Authentication: None.
- Schema → Import from URL: paste
https://axle-iota.vercel.app/openapi.yaml - The action
scanUrlForAccessibilitywill appear with the right schema. - Privacy policy URL:
https://axle-iota.vercel.app/privacy - System prompt suggestion (paste into Instructions):
When the user asks about a website's accessibility, WCAG conformance, ADA / EAA / Section 508 status, or asks to audit / scan a site for accessibility, call the scanUrlForAccessibility tool with the URL. Then summarize the response: report total violations by severity, list the top 3 most serious issues with their WCAG criteria, and share the /r/<id> permalink so the user can open the full report.
- Save → publish the GPT.
Claude tool-use setup (Anthropic API)
Claude's tool-use API takes the OpenAPI spec inline. Minimal example using @anthropic-ai/sdk:
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic();
const tools = [
{
name: "scan_url_for_accessibility",
description:
"Scan a URL for WCAG 2.2 AA accessibility violations using axe-core 4.11. " +
"Returns a structured report grouped by severity. Use whenever the user asks " +
"about a website's accessibility, WCAG status, ADA compliance, or asks to audit a site.",
input_schema: {
type: "object",
properties: {
url: { type: "string", description: "Public URL to scan (http/https)" },
},
required: ["url"],
},
},
];
const message = await client.messages.create({
model: "claude-sonnet-4-6",
max_tokens: 1024,
tools,
messages: [{ role: "user", content: "Is example.com accessible?" }],
});
// When Claude returns tool_use, fetch from axle:
async function runAxleScan(url: string) {
const res = await fetch("https://axle-iota.vercel.app/api/scan", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ url, source: "claude-tool" }),
});
return res.json();
}MCP server (Model Context Protocol)
Native MCP server shipped — install in Claude Desktop, Cursor, Cline, or Continue.dev with one line. Full configs and example prompts at /mcp.
{
"mcpServers": {
"axle": {
"command": "npx",
"args": ["-y", "axle-mcp"]
}
}
}Anti-abuse + rate limits
The free-tier endpoint allows 5 scans / day / IP. For higher volume, sign up for a Team or Business plan and pass the API key as Authorization: Bearer <key> with each request — the rate limit is removed.
Internal hostnames (localhost, *.local, *.test, IP addresses) are rejected. Public URLs only.
Built one? Tell us
If you ship a public ChatGPT GPT or Claude integration that uses axle, email asaf@amoss.co.il and we'll feature it in our docs / certified directory. The partner program ( /partners) pays 30% recurring on every Team / Business plan referred via your tool.