Results for https://aiscore.getbags.app/ LEVEL 5 Scanned just now
Agent-Native
Discoverability
100
4 pass · 0 fail
Content Accessibility
100
1 pass · 0 fail
Bot Access Control
100
2 pass · 0 fail
Discovery
71
5 pass · 2 fail
Commerce
Not checked
04 / 04 pass
Discoverability
- fetch GET /robots.txt 200
# AI Score — https://aiscore.getbags.app # # /leaderboard lists third-party domains; keep it out of general crawl indexes. # Domains that do not want to appear there can opt out in their own robots.txt: # User-agent: aiscore-leaderboard # Disallow: / User-agent: * Allow: / Disallow: /leaderboard User-agent: GPTBot Allow: / Disallow: /leaderboard User-agent: ChatGPT-User Allow: / Disallow: /leaderboard User-agent: Google-Extended Allow: /
- conclude robots.txt present with User-agent directive
{"contentType":"text/plain"}
- fetch GET /sitemap.xml 200
<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>https://aiscore.getbags.app/</loc> <changefreq>weekly</changefreq> <priority>1.0</priority> </url> <url> <loc>https://aiscore.getbags.app/leaderboard</loc> <changefreq>daily</changefreq> <priority>0.8</priority> </url> <url> <loc>https://aiscore.getbags.app/llms.txt</loc> <changefreq>monthly</changefreq> <priority>0.6</priority> </url> <… - parse Valid XML sitemap structure detected
- conclude Sitemap OK at https://aiscore.getbags.app/sitemap.xml
{"url":"https://aiscore.getbags.app/sitemap.xml"}
- fetch GET / 200
- parse Parsed 11 Link entries
- conclude Found agent-useful rels: api-catalog, service-desc, describedby, describedby, describedby, describedby, describedby, describedby, status
{"links":[{"rel":"api-catalog","href":"/.well-known/api-catalog"},{"rel":"service-desc","href":"/openapi.json"},{"rel":"describedby","href":"/.well-known/agent-skills/index.json"},{"rel":"describedby","href":"/.well-known/mcp/server-card.json"},{"rel":"describedby","href":"/.well-known/agent-card.json"},{"rel":"describedby","href":"/auth.md"},{"rel":"describedby","href":"/llms.txt"},{"rel":"describedby","href":"/llms-full.txt"},{"rel":"status","href":"/api/health"}]}
- dns AD=true status=0 answers=2
- dns AD=true status=0 answers=0
- dns AD=true status=0 answers=0
- dns AD=true status=0 answers=0
- dns AD=true status=0 answers=0
- dns AD=true status=0 answers=0
- dns AD=true status=0 answers=2
- dns AD=true status=0 answers=0
- dns AD=true status=0 answers=0
- dns AD=true status=0 answers=0
- dns AD=true status=0 answers=0
- dns AD=true status=0 answers=0
- dns AD=true status=0 answers=0
- dns AD=true status=0 answers=0
- dns AD=true status=0 answers=0
- dns AD=true status=0 answers=0
- dns AD=true status=0 answers=0
- dns AD=true status=0 answers=0
- conclude DNSSEC-validated ServiceMode record(s): _index._agents.aiscore.getbags.app/SVCB, _mcp._agents.aiscore.getbags.app/SVCB
{"hits":["_index._agents.aiscore.getbags.app/SVCB","_mcp._agents.aiscore.getbags.app/SVCB"]}
01 / 01 pass
Content Accessibility
- fetch GET / 200
# AI Score > Agent-readiness scanner by BAGS. Scan any domain for Level 0–5 + a 0–100 score across discoverability, content accessibility, bot access control, and discovery surfaces. Host: https://aiscore.getbags.app ## Levels (gated ladder) | Level | Name | Gate | |---:|---|---| | 0 | Not Ready | fails L1 | | 1 | Basic Web Presence | pass 2 of 3: robotsTxt, sitemap, linkHeaders | | 2 | Bot-Aware | + robotsTxtAiRules and contentSignals | | 3 | Agent-Readable | + markdownNegotiation | | 4 | A…
- conclude Content-Type includes text/markdown
{"contentType":"text/markdown; charset=utf-8"}
02 / 03 pass
Bot Access Control
- parse Parsed 21 user-agent group(s)
- conclude Found AI crawler rules or User-agent: * policy
- parse Content-Signal lines: 1
- conclude Found ai-train / search / ai-input directives
{"signals":["search=yes, ai-input=yes, ai-train=yes"]}
- fetch GET /.well-known/http-message-signatures-directory 404
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>404: Not Found</title> <style> :root { --gray-10: hsl(258, 7%, 10%); --gray-20: hsl(258, 7%, 20%); --gray-30: hsl(258, 7%, 30%); --gray-40: hsl(258, 7%, 40%); --gray-50: hsl(258, 7%, 50%); --gray-60: hsl(258, 7%, 60%); --gray-70: hsl(258, 7%, 70%); --gray-80: hsl(258, 7%, 80%); --gray-90: hsl(258, 7%, 90%); --black: #13151A; --accent-light: #E0CCFA; } - conclude Directory missing or invalid — reporting neutral
{"status":404}
05 / 08 pass
Discovery
- fetch GET /.well-known/api-catalog 200
{"linkset":[{"anchor":"https://aiscore.getbags.app/api/scan","service-desc":[{"href":"https://aiscore.getbags.app/openapi.json","type":"application/json"},{"href":"https://aiscore.getbags.app/llms-full.txt","type":"text/plain"}],"service-doc":[{"href":"https://aiscore.getbags.app/llms.txt","type":"text/plain"}],"status":[{"href":"https://aiscore.getbags.app/api/health"}],"describedby":[{"href":"https://aiscore.getbags.app/openapi.json","type":"application/json"},{"href":"https://aiscore.getbags.… - parse linkset length 4
- conclude Valid linkset catalog
{"linksetCount":4}
- fetch GET /.well-known/openid-configuration 404
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>404: Not Found</title> <style> :root { --gray-10: hsl(258, 7%, 10%); --gray-20: hsl(258, 7%, 20%); --gray-30: hsl(258, 7%, 30%); --gray-40: hsl(258, 7%, 40%); --gray-50: hsl(258, 7%, 50%); --gray-60: hsl(258, 7%, 60%); --gray-70: hsl(258, 7%, 70%); --gray-80: hsl(258, 7%, 80%); --gray-90: hsl(258, 7%, 90%); --black: #13151A; --accent-light: #E0CCFA; } - fetch GET /.well-known/oauth-authorization-server 404
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>404: Not Found</title> <style> :root { --gray-10: hsl(258, 7%, 10%); --gray-20: hsl(258, 7%, 20%); --gray-30: hsl(258, 7%, 30%); --gray-40: hsl(258, 7%, 40%); --gray-50: hsl(258, 7%, 50%); --gray-60: hsl(258, 7%, 60%); --gray-70: hsl(258, 7%, 70%); --gray-80: hsl(258, 7%, 80%); --gray-90: hsl(258, 7%, 90%); --black: #13151A; --accent-light: #E0CCFA; } - conclude No valid OAuth/OIDC discovery document
- fetch GET /.well-known/oauth-protected-resource 200
{ "resource": "https://aiscore.getbags.app/api/scan", "authorization_servers": [], "bearer_methods_supported": [], "resource_documentation": "https://aiscore.getbags.app/auth.md", "resource_policy_uri": "https://aiscore.getbags.app/llms-full.txt" } - parse resource=https://aiscore.getbags.app/api/scan servers=0
- conclude PRM missing or incomplete
- fetch GET /auth.md 200
# AI Score auth.md > Agent authentication guide for the AI Score scan API > (https://aiscore.getbags.app/api/scan). ## Who this is for AI agents that want to scan a site for agent-readiness. The free tier needs **no API keys, OAuth, signup, or registration**. ## Free tier (no credentials) `POST /api/scan` ```json { "url": "https://www.getbags.app", "format": "json", "fresh": false } - fetch GET /.well-known/oauth-protected-resource 200
{ "resource": "https://aiscore.getbags.app/api/scan", "authorization_servers": [], "bearer_methods_supported": [], "resource_documentation": "https://aiscore.getbags.app/auth.md", "resource_… - parse authMd=true prm=true agent_auth=false registrationDocs=true
- conclude auth.md + discoverable PRM/agent_auth + registration guidance
{"prmOk":true,"agentAuth":false}
- fetch GET /.well-known/mcp.json 404
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>404: Not Found</title> <style> :root { --gray-10: hsl(258, 7%, 10%); --gray-20: hsl(258, 7%, 20%); --gray-30: hsl(258, 7%, 30%); --gray-40: hsl(258, 7%, 40%); --gray-50: hsl(258, 7%, 50%); --gray-60: hsl(258, 7%, 60%); --gray-70: hsl(258, 7%, 70%); --gray-80: hsl(258, 7%, 80%); --gray-90: hsl(258, 7%, 90%); --black: #13151A; --accent-light: #E0CCFA; } - fetch GET /.well-known/mcp/server-cards.json 404
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>404: Not Found</title> <style> :root { --gray-10: hsl(258, 7%, 10%); --gray-20: hsl(258, 7%, 20%); --gray-30: hsl(258, 7%, 30%); --gray-40: hsl(258, 7%, 40%); --gray-50: hsl(258, 7%, 50%); --gray-60: hsl(258, 7%, 60%); --gray-70: hsl(258, 7%, 70%); --gray-80: hsl(258, 7%, 80%); --gray-90: hsl(258, 7%, 90%); --black: #13151A; --accent-light: #E0CCFA; } - fetch GET /.well-known/mcp/server-card.json 200
{ "name": "aiscore", "serverInfo": { "name": "aiscore", "version": "1.0.0" }, "title": "AI Score", "description": "Agent-readiness scanner: Level 0–5 + 0–100 score with per-check evidence. One MCP tool: scan_site.", "version": "1.0.0", "websiteUrl": "https://aiscore.getbags.app", "supportedProtocolVersions": ["2025-11-25", "2025-03-26"], "capabilities": { "tools": { "listChanged": false } }, "url": "https://aiscore.getbags.app/mcp", "remotes": [ { "t… - parse Card name=aiscore
- fetch POST /mcp 200
{"jsonrpc":"2.0","id":1,"result":{"protocolVersion":"2025-11-25","capabilities":{"tools":{}},"serverInfo":{"name":"aiscore","version":"1.0.0"}}} - fetch tools/list 200
{"jsonrpc":"2.0","id":2,"result":{"tools":[{"name":"scan_site","description":"Scan a URL for agent-readiness. Returns Level 0–5, 0–100 score, and per-check evidence across discoverability, content accessibility, bot access control, and discovery surfaces. Free tier: 10/min/IP; over limit, retry with x402 PAYMENT-SIGNATURE ($0.01 USDC on Base).","inputSchema":{"type":"object","properties":{"url":{"type":"string","description":"Absolute http(s) URL or hostname to scan (e.g. https://www.getbags.app… - conclude MCP card OK (name=aiscore), deepProbe=true
{"name":"aiscore","deepProbeOk":true,"endpoint":"https://aiscore.getbags.app/mcp"}
- conclude Check disabled for this scan
- fetch GET /.well-known/agent-skills/index.json 200
{ "$schema": "https://schemas.agentskills.io/discovery/0.2.0/schema.json", "skills": [ { "name": "robots-txt", "type": "skill-md", "description": "Publish robots.txt with User-agent rules so agents can discover crawl policy.", "url": "https://aiscore.getbags.app/.well-known/agent-skills/robots-txt/SKILL.md", "digest": "sha256:808a1e97e5d5d576fbbed2a3ace11a52cd2a8d7c170b51bfb287f59a058e9203" }, { "name": "sitemap", "type": "skill-md", … - parse skills array length 21
- conclude Valid skills index at /.well-known/agent-skills/index.json
{"path":"/.well-known/agent-skills/index.json","count":21}
- fetch Launching Browser Rendering session for WebMCP inspection
- parse Captured 1 WebMCP tool registration(s)
- conclude Pass: found 1 tool(s) on navigator.modelContext
{"tools":[{"source":"provideContext","name":"scan_site"}]}
00 / 05 pass
Commerce
- conclude Coinbase Bazaar discovery not queried (skipped in v1 scanner)
- fetch GET / 200
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><meta name="color-scheme" content="dark"><title>AI Score — Agent readiness, scored</title><meta name="description" content="Scan any domain. Get a 0–100 score, a Level 0–5 badge, and a per-check breakdown with evidence."><link rel="canonical" href="https://aiscore.getbags.app/"><link rel="icon" href="/baglogo.png" type="image/png"><link rel="icon" href="/favicon.ico" siz…
- fetch GET /api 404
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><meta name="color-scheme" content="dark"><title>AI Score — api</title><meta name="description" content="Agent readiness scan for api."><link rel="canonical" href="/api"><link rel="icon" href="/baglogo.png" type="image/png"><link rel="icon" href="/favicon.ico" sizes="any"><link rel="apple-touch-icon" href="/apple-touch-icon.png"><meta property="og:type" content="website">…
- fetch GET /api/v1 404
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>404: Not Found</title> <style> :root { --gray-10: hsl(258, 7%, 10%); --gray-20: hsl(258, 7%, 20%); --gray-30: hsl(258, 7%, 30%); --gray-40: hsl(258, 7%, 40%); --gray-50: hsl(258, 7%, 50%); --gray-60: hsl(258, 7%, 60%); --gray-70: hsl(258, 7%, 70%); --gray-80: hsl(258, 7%, 80%); --gray-90: hsl(258, 7%, 90%); --black: #13151A; --accent-light: #E0CCFA; } - conclude No 402 x402 challenge found
- fetch GET /openapi.json 200
{ "openapi": "3.1.0", "info": { "title": "AI Score API", "version": "1.0.0", "description": "Agent-readiness scanner by BAGS. Scan any origin for Level 0–5 and a 0–100 score across discoverability, content accessibility, bot access control, discovery surfaces, and (when commercial) commerce checks.\n\n## Rate limit and paid tier\n\nFree tier: 10 scans/min/IP (`X-RateLimit-*` headers).\n\n**Dual over-limit behaviour** (same gate on `POST /api/scan` and `POST /mcp`):\n\n1. **x402 d… - parse x-payment-info present=false
- conclude No x-payment-info
- fetch GET /.well-known/ucp 404
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>404: Not Found</title> <style> :root { --gray-10: hsl(258, 7%, 10%); --gray-20: hsl(258, 7%, 20%); --gray-30: hsl(258, 7%, 30%); --gray-40: hsl(258, 7%, 40%); --gray-50: hsl(258, 7%, 50%); --gray-60: hsl(258, 7%, 60%); --gray-70: hsl(258, 7%, 70%); --gray-80: hsl(258, 7%, 80%); --gray-90: hsl(258, 7%, 90%); --black: #13151A; --accent-light: #E0CCFA; } - conclude HTTP 404
- fetch GET /.well-known/acp.json 404
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>404: Not Found</title> <style> :root { --gray-10: hsl(258, 7%, 10%); --gray-20: hsl(258, 7%, 20%); --gray-30: hsl(258, 7%, 30%); --gray-40: hsl(258, 7%, 40%); --gray-50: hsl(258, 7%, 50%); --gray-60: hsl(258, 7%, 60%); --gray-70: hsl(258, 7%, 70%); --gray-80: hsl(258, 7%, 80%); --gray-90: hsl(258, 7%, 90%); --black: #13151A; --accent-light: #E0CCFA; } - conclude HTTP 404
- conclude Check disabled for this scan
Max level
You’re at Level 5 — Agent-Native.