# Vendor facets — Netlify. A static-and-functions host whose AI features (Agent Runners, AI # Gateway, the Netlify MCP server) all point at building ON Netlify, not at what a customer's # site serves to agents. Hosting earns nothing; what Netlify enables is serving files and a # provider-written MCP function, and those points are the provider's own work. vendor: netlify name: Netlify website: https://www.netlify.com areas: - hosting registry_keys: - netlify rubric_schema_version: 0.22.0 generated: '2026-09-25' features_refreshed: '2026-09-25' basis: measured summary: >- Netlify moves no Kin Score check by itself. A provider can publish its own llms.txt and .well-known documents as files in the publish directory and run an MCP server it writes as a Netlify Function at /mcp on its own domain, and those earn what the provider's work earns. Netlify's AI products (Agent Runners, AI Gateway, its own MCP server) help people build on Netlify and leave nothing on the customer's surface for an agent-readiness check to read. features: - id: mcp-on-functions name: MCP servers on Netlify Functions description: >- A guide for running a provider-written, stateless Streamable HTTP MCP server as a Netlify Function answering at /mcp; auth and discovery are left to the provider. source: https://developers.netlify.com/guides/write-mcps-on-netlify/ tier: all - id: static-files-headers name: Publish-directory files with custom headers description: >- Files in the publish directory are served as-is, and _headers / netlify.toml set response headers (e.g. Content-Type) on any static path. source: https://docs.netlify.com/manage/routing/headers/ tier: all - id: ua-blocker name: User Agent Blocker extension description: >- A Netlify-built edge function that blocks requests from a preset list of AI and SEO crawler user agents. source: https://docs.netlify.com/build/build-with-ai/block-ai-crawlers/ tier: all - id: ai-build-tools name: Agent Runners, AI Gateway and the Netlify MCP server description: >- Tools for building and deploying on Netlify with AI agents and calling model providers from functions without managing keys. source: https://docs.netlify.com/build/build-with-ai/overview.md tier: paid maps: - feature: mcp-on-functions check: mcp_server layer: agent_readiness grade: verified conditional: true condition: >- Only if the provider has an API or data to expose and writes the server itself — Netlify supplies the function runtime, not the tools. note: >- The credit is the provider's — its own server on its own domain reaches `verified` when it answers the probe. points: 12 baseline_pass_rate: 0.22 cohort_pct: 20.0 control_pct: 22.0 delta_pp: -2.0 - feature: static-files-headers check: llms_txt_published layer: composite provider_must: Write the llms.txt and put it in the publish directory; Netlify generates none. catalog_pass_rate: 0.351 facet: discoverability points: 4 baseline_pass_rate: 0.65 cohort_pct: 60.0 control_pct: 65.1 delta_pp: -5.1 - feature: static-files-headers check: well_known_published layer: composite provider_must: >- Author an api-catalog linkset, security.txt or protected-resource document, place it under .well-known/ in the publish directory, and set its Content-Type in _headers. Custom headers apply only to static files, so a dynamic document needs a function that sets its own headers. catalog_pass_rate: 0.005 facet: discoverability points: 6 baseline_pass_rate: 0.018 cohort_pct: 0.0 control_pct: 1.8 delta_pp: -1.8 - feature: static-files-headers check: well_known_catalog layer: agent_readiness provider_must: Publish the documents AND declare them (WellKnown / APICatalog) in common[] of its apis.yml. points: 4 baseline_pass_rate: 0.061 cohort_pct: 4.0 control_pct: 6.1 delta_pp: -2.1 earns_nothing: - feature: ua-blocker check: consent_identity why: >- Blocking crawlers by user-agent string declares no AIPREF / ContentSignal / WebBotAuth posture; the docs name no robots or signed-agent mechanism. - feature: ai-build-tools check: mcp_server why: Netlify's own MCP server manages Netlify projects; it is Netlify's server, not the customer's. out_of_reach: checks: - contract_present - spec_presence - sdk_count_1 - cli_present - protected_resource_metadata - agentic_commerce - agent_card note: >- A host serves what the provider builds; Netlify ships no auth helper, commerce profile or contract tooling for the customer's surface. surface: discoverability: reachable: 10.0 total: 54 agent_readiness: reachable: 16.0 total: 139 hard_rule: >- A model, not a score. Adopting this vendor changes a provider's Kin Score only when the provider publishes the resulting artifacts on its own surface; nothing here writes a score, and no sponsorship or partnership can. method: searched source: - https://developers.netlify.com/guides/write-mcps-on-netlify/ - https://docs.netlify.com/build/build-with-ai/block-ai-crawlers/ - https://docs.netlify.com/build/build-with-ai/overview.md - https://docs.netlify.com/manage/routing/headers/ measured: cohort: method: vendors-catalog.json detections (CNAME / header / URL shape / markup), never a name match detected: 50 in_baseline: 25 control: basis: providers earning contract_present + documentation_present + api_reference_present, minus the cohort n: 5191 metric: >- cohort_pct / control_pct = mean share of the check's points earned (derived and platform credit weighted), x100 measured_on: '2026-09-25' composite_mean: cohort: 50.1 control: 48.0 agent_readiness_mean: cohort: 30.6 control: 32.5 status: measured caveat: >- A cohort delta is association, not cause: customers choose a vendor for reasons that also move their score. Read it beside the capability map, never instead of it. simulation: simulated_on: '2026-09-25' rubric: 0.23.0 population: providers publishing a contract (contract_present earned), replayable exactly providers: 8977 providers_unreplayable: 987 providers_moved: 8920 conditional_rows: excluded (they depend on what the API already does) composite_lift: median: 1.2 p75: 1.8 p90: 1.9 max: 1.9 mean_among_movers: 1.5 agent_readiness_lift: median: 2.9 p75: 2.9 p90: 3.3 max: 3.4 mean_among_movers: 2.9 facet_lift_median_among_movers: discoverability: 11.1 composite_band_moves: thin -> developing: 548 developing -> strong: 243 emerging -> thin: 136 strong -> exemplar: 85 minimal -> emerging: 1 agent_readiness_band_moves: agent-aware -> agent-ready: 1012 agent-ready -> agent-native: 112 method: >- each provider's own kin/checks file, the vendor's maps at their stated credit, the scorer's composite formula; from -> to, nothing written