---
title: "Agent readiness score for outserp.ai: 83/100 (B, Competitive)"
description: "outserp.ai scores 83/100 (Competitive). Strongest layer: Access at 98%; weakest: Discovery at 51%. Biggest single fix: wikipedia / wikidata entity presence (about +6.3 points)."
canonical: https://outserp.ai/agent-ready/outserp.ai
markdown: https://outserp.ai/api/machine-content?path=%2Fagent-ready%2Foutserp.ai
site: Outserp
---
# Agent readiness score for outserp.ai: 83/100 (B, Competitive)

> outserp.ai scores 83/100 (Competitive). Strongest layer: Access at 98%; weakest: Discovery at 51%. Biggest single fix: wikipedia / wikidata entity presence (about +6.3 points).

Scanned: 2026-09-07 · rank 1 of 2 · JSON: https://outserp.ai/api/agent-ready/outserp.ai · Badge: https://outserp.ai/api/agent-ready/badge/outserp.ai.svg

## Layers

- Discovery (weight 20): 51% — 3.6/7 points
- Access (weight 30): 98% — 74.24/76 points
- Usability (weight 40): 88% — 94.56/107 points
- Payments (weight 10): n/a — 0/0 points

## Surfaces

- website: 95% (43/49 checks)
- api: 66% (6/10 checks) — https://outserp.ai/openapi.json
- auth: 96% (8/9 checks) — https://outserp.ai/.well-known/oauth-authorization-server
- mcp: 91% (12/15 checks) — https://mcp.outserp.ai/mcp

## Fix these first

1. **Wikipedia / Wikidata entity presence** (`wikipedia-presence`, ≈ +6.3): Create a Wikidata item with official website (P856) = your domain; pursue a Wikipedia article once independent coverage exists.
2. **robots.txt AI crawler policy** (`robots-ai-policy-quality`, ≈ +3.2): Add named User-agent groups for GPTBot, ClaudeBot, PerplexityBot and Google-Extended (Allow), decide explicitly about CCBot / Bytespider, and optionally add Content-Signal.
3. **JSON error responses** (`json-error-responses`, ≈ +1.7): Return { error: { message, status, code } } on every API error, including 401 and 404.
4. **Listed in MCP registries** (`mcp-registry-listed`, ≈ +1.3): Publish server.json to the official MCP registry and an npm package under your scope with the homepage set to your domain.
5. **Multi-language SDK packages** (`rest-sdk-packages`, ≈ +0.8): Generate SDKs from the OpenAPI spec for at least npm and PyPI and link them from the docs.
6. **REST pagination pattern** (`pagination-shape`, ≈ +0.6): Document limit/offset or cursor parameters on every list endpoint and say how to fetch the next page.
7. **Schema type breadth** (`schema-type-breadth`, ≈ +0.4): Add FAQPage for common questions, Product or Service for offerings and BreadcrumbList for navigation context.
8. **Rate limit response headers** (`rate-limit-headers`, ≈ +0.4): Send RateLimit / X-RateLimit-Remaining headers on API responses and document them in the spec.

## Every check

| Status | Check | Points | Evidence |
| --- | --- | --- | --- |
| PARTIAL | robots.txt AI crawler policy (`robots-ai-policy-quality`) | 1/2 | Partial AI policy: one named crawler group or Content-Signal only. |
| PASS | ARD discovery catalog (`ard-catalog`) | 1/1 | 5 typed entries with trust manifests. |
| N/A | Brand name discoverability (`brand-search-accuracy`) | — | Search-based check; runs in the full audit. |
| N/A | Developer resource discoverability (`agentic-search-specific`) | — | Search-based check; runs in the full audit. |
| FAIL | Wikipedia / Wikidata entity presence (`wikipedia-presence`) | 0/2 | No Wikidata item mentions outserp.ai. |
| PASS | NPM/PyPI SDK package (`npm-sdk-package`) | 1/1 | Official package: npm @outserp/mcp-server ("MCP server for Outserp - AI SEO & AEO content platform"). |
| PARTIAL | Listed in MCP registries (`mcp-registry-listed`) | 0.6/1 | MCP package @outserp/mcp-server on npm links to the domain, but no official registry entry. |
| PASS | Content without JavaScript (`content-no-js`) | 3/3 | 13320 chars of raw-HTML text, 1 H1 + 49 other headings, 5.2% content ratio. |
| PASS | Not blocked by bot detection (`bot-detection`) | 2/2 | Homepage reachable for 6 AI User-Agents. |
| PASS | Agent crawler reachability (`agent-crawler-reachability`) | 2/2 | No AI crawler is disallowed in robots.txt (6 checked). |
| PASS | robots.txt agent-user policy (`robots-agent-user-policy`) | 2/2 | User-triggered agents are allowed. |
| PASS | Redirect hygiene (`redirect-hygiene`) | 1/1 | No meta-refresh, JS-redirect stubs or cross-domain hops across 6 pages. |
| PASS | Content behind auth (`docs-auth-gate`) | 2/2 | All 6 sampled pages are publicly readable. |
| PASS | Page token budget (`page-token-budget`) | 1/1 | All 6 measured pages fit (largest ~9K tokens). |
| PASS | Sitemap exists (`sitemap`) | 2/2 | Valid sitemap at https://outserp.ai/sitemap.xml with 131 entries. |
| PASS | Sitemap freshness (lastmod) (`sitemap-lastmod`) | 1/1 | 100% of entries carry lastmod; newest is 0 day(s) old. |
| PASS | llms.txt exists (`llms-txt-exists`) | 1/1 | Found https://outserp.ai/llms.txt (7451 characters). |
| PASS | llms.txt formatting (`llms-txt-formatting`) | 2/2 | Starts with a heading, 60 markdown links, 112 lines. |
| PARTIAL | llms.txt links resolve (`llms-txt-links-resolve`) | 1.91/2 | 1 of 23 links fail: https://outserp.ai/api/agent-ready/outserp.ai (404). |
| PASS | Agent instruction / when-to-use (`agent-instruction`) | 3/3 | When-to-use guidance and calling instructions found. |
| PASS | Agent discovery file (`agent-discovery-file`) | 2/2 | Found /.well-known/ard.json, /.well-known/mcp/server-card.json, /.well-known/agent-skills/index.json. |
| FAIL | A2A agent card (`a2a-agent-card`) | 0/2 | No A2A agent card at /.well-known/agent-card.json. |
| PASS | Agent Skills index (`agent-skills-index`) | 2/2 | 1 skill(s), all typed with digests and resolving. |
| PASS | Pricing info accessible (`pricing-info`) | 3/3 | https://outserp.ai/pricing exposes 14 price signals in raw HTML. |
| PASS | pricing.md exists (`pricing-md`) | 2/2 | /pricing.md with 12 price signal(s). |
| PASS | JSON-LD structured data (`json-ld`) | 4/4 | Organization with name, description, url + sameAs/logo/address/contactPoint (5 block(s)). |
| PASS | Organization schema completeness (`org-schema-completeness`) | 2/2 | Organization schema has contactPoint and address. |
| PASS | JSON-LD entity linking (sameAs) (`json-ld-entity-linking`) | 2/2 | sameAs links to 4 authority profiles. |
| PARTIAL | Schema type breadth (`schema-type-breadth`) | 1/2 | Some extended types found: FAQPage, BreadcrumbList. |
| PASS | Metadata completeness (`metadata-completeness`) | 2/2 | All four metadata signals present. |
| PARTIAL | Trust anchor pages (`trust-anchors`) | 1.33/2 | Missing or thin: about. |
| PASS | Markdown agent docs (`markdown-negotiation`) | 1/1 | Homepage serves text/markdown; charset=utf-8 for Accept: text/markdown. |
| PASS | Markdown content negotiation (Vary) (`markdown-negotiation-vary`) | 1/1 | Vary: rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch, Accept, Accept-Encoding. |
| PASS | Markdown URL fallback (.md) (`markdown-url-fallback`) | 2/2 | /index.md and a content page .md twin both serve markdown. |
| PASS | Markdown alternate link (`markdown-link-alternate`) | 1/1 | Markdown alternate advertised and verified: https://outserp.ai/api/machine-content?path=%2F. |
| PASS | Markdown frontmatter metadata (`markdown-frontmatter`) | 1/1 | Frontmatter with title, description, canonical. |
| PASS | Bot-UA markdown serving (`agent-ua-markdown`) | 1/1 | ChatGPT-User receives markdown on the homepage. |
| PASS | Code fence validity (`code-fence-validity`) | 1/1 | Code fences balanced across 3 markdown document(s). |
| PASS | HTTP Link headers (RFC 8288) (`link-headers-discovery`) | 1/1 | Link header rels: sitemap, describedby, service-desc, https://www.rfc-editor.org/info/rfc9727, ard. |
| PASS | OpenAPI spec published (`openapi-spec`) | 7/7 | OpenAPI 3.1.0 at https://outserp.ai/openapi.json with 24 operations. |
| PASS | API catalog (RFC 9727) (`api-catalog-rfc9727`) | 2/2 | 2 linkset entries with service descriptions. |
| PASS | Public API/docs linked from homepage (`public-api-docs`) | 3/3 | Docs link found on the homepage and resolves: /api-docs. |
| PASS | Developer portal (`developer-portal`) | 6/6 | Developer portal at /api-docs (6 developer signals). |
| PASS | MCP well-known discovery (`mcp-well-known-discovery`) | 2/2 | Discoverable via server-card.json, /.well-known/mcp, llms.txt, oauth-protected-resource. |
| PARTIAL | Agent-friendly 404s (`agent-friendly-404`) | 1.5/2 | Real 404 whose HTML body links to the sitemap / llms.txt / docs; no markdown variant. |
| FAIL | Web Bot Auth directory (`web-bot-auth-directory`) | 0/2 | No /.well-known/http-message-signatures-directory. |
| FAIL | JSON error responses (`json-error-responses`) | 0/4 | API error at https://outserp.ai/api/v1 is text/html; charset=utf-8 (404). |
| PASS | API schema completeness (`api-schema-analysis`) | 2/2 | 24/24 operationIds, 24/24 described, 24/24 with response schemas. |
| PASS | Function calling compatibility (`function-calling-compat`) | 2/2 | 22/24 operations are tool-ready. |
| PASS | REST typed error model (`api-error-model`) | 3/3 | Error schema "ApiError" and 4xx responses on 24/24 operations. |
| PASS | REST versioning / deprecation policy (`api-versioning-policy`) | 3/3 | Versioned API with a documented deprecation policy. |
| PARTIAL | REST pagination pattern (`pagination-shape`) | 0.6/2 | 4/12 list endpoints expose pagination parameters. |
| PASS | REST async-job pattern (`async-job-pattern`) | 2/2 | 202 responses and a job-status endpoint plus webhooks. |
| PASS | REST response schema coverage (`response-schema-coverage`) | 2/2 | 24/24 success responses have schemas. |
| PARTIAL | Rate limit response headers (`rate-limit-headers`) | 1/2 | Rate limits documented but no headers on an unauthenticated probe (may appear only when authenticated). |
| FAIL | REST batch / bulk endpoint (`batch-endpoints`) | 0/2 | No batch or bulk endpoint. |
| FAIL | Idempotency-Key support (`idempotency-key-support`) | 0/3 | No Idempotency-Key support documented. |
| FAIL | Sandbox / test environment (`sandbox-environment`) | 0/2 | No sandbox, test mode or free tier documented. |
| PASS | OAuth 2.0 support (`oauth-support`) | 5/5 | OAuth authorization server metadata at https://outserp.ai/.well-known/oauth-authorization-server (issuer https://outserp.ai). |
| PASS | OAuth Protected Resource metadata (RFC 9728) (`oauth-protected-resource`) | 2/2 | PRM for https://mcp.outserp.ai/mcp with authorization_servers, scopes_supported, bearer_methods_supported. |
| PASS | Scoped permissions (`scoped-permissions`) | 5/5 | 4 scope(s) declared (read, write, generate, publish). |
| PASS | auth.md exists (`auth-md-exists`) | 2/2 | /auth.md found (5482 characters). |
| PASS | auth.md structure (`auth-md-structure`) | 2/2 | Sections: discover, pick a method, register, use, revoke; concrete endpoints and headers included. |
| PASS | Agent auth discovery metadata (`agent-auth-discovery-metadata`) | 3/3 | PRM → AS cross-linked and agent_auth block present. |
| PASS | Agent auth WWW-Authenticate hint (`agent-auth-www-authenticate`) | 1/1 | 401 with WWW-Authenticate resource_metadata at https://outserp.ai/api/v1. |
| PASS | agent_auth endpoints reachable (`agent-auth-endpoints-reachable`) | 2/2 | 4 agent_auth URI(s) reachable. |
| PARTIAL | Agent onboarding friction (`onboarding-friction`) | 1/2 | Onboarding signals described but not verified live: free tier or trial, self-serve keys, no sales wall. |
| PASS | MCP server / manifest (`mcp-server`) | 6/6 | MCP server at https://mcp.outserp.ai/mcp (streamable-http, 59 tools listed, found via server-card.json). |
| PASS | MCP server card (`mcp-server-card`) | 2/2 | Server card with name, description, url, transport, instructions, auth. |
| PASS | MCP server identity (`mcp-server-identity`) | 1/1 | serverInfo: outserp 1.0.0. |
| PASS | MCP modern transport (`mcp-transport-modern`) | 1/1 | Streamable HTTP, protocol 2025-06-18. |
| PASS | MCP tool listing (`mcp-tool-listing`) | 3/3 | 59 tools listed. |
| PARTIAL | MCP tool descriptions (`mcp-tool-descriptions`) | 0.98/3 | 24/59 descriptions are complete; too short: list_keywords. |
| PASS | MCP tool naming (`mcp-tool-naming`) | 2/2 | All 59 tool names are verb-first snake_case. |
| PARTIAL | MCP parameter schemas (`mcp-param-schemas`) | 1.49/2 | 59/59 tools have object schemas; 56/153 parameters described. |
| PASS | MCP tool annotations (`mcp-tool-annotations`) | 2/2 | 59/59 tools annotated. |
| PASS | MCP error handling (`mcp-error-handling`) | 2/2 | Unknown method answered with JSON-RPC -32601. |
| PASS | MCP resources exposed (`mcp-resource-listing`) | 3/3 | 5 resource(s) listed. |
| PASS | MCP resource quality (`mcp-resource-quality`) | 3/3 | 3/3 sampled resources read cleanly with a mimeType. |
| PASS | MCP auth mechanism (`mcp-auth-mechanism`) | 2/2 | tools/call requires a bearer token and points at the protected-resource metadata. |
| PASS | MCP OAuth metadata (`mcp-oauth-metadata`) | 2/2 | PRM names https://mcp.outserp.ai/mcp with 1 authorization server(s). |
| PASS | MCP PKCE S256 support (`mcp-pkce-s256`) | 2/2 | PKCE S256 supported. |
| PASS | CLI tool available (`cli-tool`) | 3/3 | CLI package: npm @outserp/cli. |
| PARTIAL | Multi-language SDK packages (`rest-sdk-packages`) | 0.99/3 | SDK package found only on npm. |
| PASS | Accessible document structure (`ax-document-structure`) | 3/3 | main=true, landmarks=3/4, h1=1, maxHeadingSkip=1. |
| PASS | Native interactive controls (`ax-native-controls`) | 3/3 | 62 native controls, 0 non-native div/span affordances (100% native). |
| PASS | Accessible names on controls (`ax-accessible-names`) | 2/2 | 62/62 interactive elements have a computable accessible name (100%). |
| PASS | Form control labeling (`ax-form-labeling`) | 2/2 | 1/1 form controls have an associated label. |
| PASS | Accessibility-tree injection safety (`ax-tree-injection-safe`) | 2/2 | No hidden instruction text detected in accessibility-tree attributes or off-screen content. |
| PASS | WebMCP support (`webmcp`) | 5/5 | WebMCP detected via inline script; tools: get_product_overview, get_pricing_plans, find_pages, open_page, start_free_ai_visibility_audit; readOnlyHint used. |

Full audit with agent journeys and model-graded checks: https://outserp.ai/agent-ready/outserp.ai
