ekholabs.com
agent readiness score · scanned Aug 18, 2026 · 5s · Data & Analytics
#457 of 979 · #20 in category
Ekho Labs provides prescriptive intelligence for global freight, offering PO-level reroutes, carrier alternatives, and booking windows to freight teams days before disruption hits.
Discovery 13.8/20
Access 21.9/30
Usability 6.7/40
Payments 5/10
Top fixes
- +5.6
MCP server discovery
Publish /.well-known/mcp/server-card.json describing your MCP endpoint so agents can autodiscover it. Evidence found: none.
- +5.6
OpenAPI spec discoverable
Publish your OpenAPI spec at /openapi.json and link it from docs — it's the single highest-leverage artifact for agent integration.
- +5
Machine-readable pricing
Add Offer JSON-LD per plan (name, price, priceCurrency, billing period) to https://ekholabs.com/pricing so pricing parses without inference.
- +4.6
llms.txt
Serve /llms.txt as plain markdown — an HTML page there is a routing catch-all, not an llms.txt.
- +3.8
Developer resource discoverability
Create a crawlable /docs or developers.ekholabs.com hub and link it from your homepage footer so search-grounded agents find your API.
- +3.5
Markdown content negotiation
Serve text/markdown when clients send `Accept: text/markdown` (or expose .md twins of key pages) — agents get far more signal per token.
1.Can an agent discover and trust you?
6/8
1.Can an agent discover and trust you?
Whether agents can crawl you, find you in the registries and searches they check, and trust what they find.
✓Sitemap present & fresh4/4
Sitemap at https://ekholabs.com/sitemap.xml: 4 entries, freshest <lastmod> 2026-07-10 (39 days ago)
Resolved the sitemap from robots.txt or /sitemap.xml, validated XML, and checked lastmod freshness
spec ↗◐Brand search discoverability2/4
Search "Ekho Labs" cited ekholabs.com (https://ekholabs.com/, https://ekholabs.com/blog/hormuz-case-study/), but search "Ekho Labs data analytics" did not cite your domain
fix → Your domain doesn't surface when agents search "Ekho Labs data analytics". Strengthen brand pages, structured data, and third-party citations (docs portals, GitHub, directories).
Ran clean brand-name web searches and checked whether your domain is cited in the results
—MCP registry listingsna
No MCP server detected for this product
Queried the official MCP registry, Smithery, Glama, and PulseMCP for servers matching your domain
spec ↗
2.Do you welcome agents?
11/16
2.Do you welcome agents?
Whether your robots policy, bot protection, and agent guidance actively admit AI agents instead of blocking them.
✓robots.txt present & parseable2/2
/robots.txt parses: 1 User-agent group(s), 1 Sitemap line(s)
Fetched /robots.txt and validated it parses as a robots policy
spec ↗✓AI crawler policy5/5
All 12 AI crawler user-agents (GPTBot, ClaudeBot, PerplexityBot, …) are allowed at / by robots.txt
Evaluated robots.txt groups for the major AI agent user-agents (GPTBot, ClaudeBot, PerplexityBot, …)
✗Content Signals directives0/2
No Content-Signal lines in robots.txt
fix → Declare Content Signals in robots.txt (e.g. `Content-Signal: search=yes, ai-train=no`) to express AI usage preferences machine-readably.
Looked for Content-Signal lines in robots.txt
spec ↗✓Agent user-agent parity4/4
All three UAs get HTTP 200; bot bodies are ClaudeBot 100%, GPTBot 100% of the browser response (24494 bytes)
Compared responses served to browser and AI-agent user-agents (informational while in beta)
✗agents.md0/3
No agents.md: https://ekholabs.com/agents.md → HTTP 200, https://ekholabs.com/AGENTS.md → HTTP 200
fix → Add /agents.md: what agents may do on your site, key URLs, auth, rate limits, and who to contact.
Fetched /agents.md and checked for substantive agent guidance
spec ↗
3.Does an agent understand who you are and what you do?
9/18
3.Does an agent understand who you are and what you do?
Whether your pages carry machine-readable identity: structured data, llms.txt, clear copy an agent can quote.
✓Homepage states what you are3/3
Homepage clarity rated 5/5 — an agent can confidently say what this company does (model's one-sentence read: "Ekho Labs provides prescriptive intelligence for global freight, offering PO-level reroutes, carrier alternatives, and booking windows to freight teams days before disruption hits.")
An LLM read your homepage as an agent would and rated how confidently it could say what you do
✓OpenGraph / social metadata2/2
Homepage has og:title, og:description, and og:image (twitter:card="summary_large_image" present)
Parsed homepage og:title / og:description / og:image and twitter:card meta tags
spec ↗✗llms.txt0/4
/llms.txt returned HTML (content-type text/html), not markdown
fix → Serve /llms.txt as plain markdown — an HTML page there is a routing catch-all, not an llms.txt.
Fetched /llms.txt and validated it against the llmstxt.org shape (H1, summary, curated links)
spec ↗✗llms-full.txt0/2
/llms-full.txt returned HTML (content-type text/html), not markdown
fix → Serve /llms-full.txt as plain markdown, not an HTML page.
Fetched /llms-full.txt and checked for substantial inline markdown content
spec ↗✓JSON-LD structured data4/4
6 JSON-LD block(s) on homepage and pricing page (types: Organization, WebSite, WebPage); Organization block is well-formed
Extracted and validated application/ld+json blocks on the homepage and pricing page
spec ↗✗Markdown content negotiation0/3
GET / with `Accept: text/markdown` returned HTTP 200 text/html; no .md twins found (2 probed)
fix → Serve text/markdown when clients send `Accept: text/markdown` (or expose .md twins of key pages) — agents get far more signal per token.
Requested key pages with Accept: text/markdown and probed .md twin URLs
4.Can an agent integrate with you?
watch →4/21
4.Can an agent integrate with you?
Whether the artifacts an agent needs to build on you — docs, API specs, SDKs, MCP servers — exist and are findable.
✗Developer resource discoverability0/3
Search "Ekho Labs API documentation" cited nothing from ekholabs.com and nothing mentioning "Ekho Labs". Cited: https://www.builtinnyc.com/job/integrations-engineer/9288505, https://linkedin.com/in/jeffsteinmetz, https://smyte.com/software/ekho/, https://www.ycombinator.com/companies/industry/Compliance, https://linkedin.com/in/david-chousal-749010297
fix → Create a crawlable /docs or developers.ekholabs.com hub and link it from your homepage footer so search-grounded agents find your API.
Searched for your brand with developer-keyword suffixes and checked which official resources are cited
✗OpenAPI spec discoverable0/5
No OpenAPI spec found: checked docs-page links and /openapi.json, /openapi.yaml, /swagger.json, /api/openapi.json, /docs/openapi.json, and api-subdomain locations
fix → Publish your OpenAPI spec at /openapi.json and link it from docs — it's the single highest-leverage artifact for agent integration.
Probed standard OpenAPI locations and docs links for a fetchable, parseable spec
spec ↗✓Docs discoverable4/4
Docs found at https://ekholabs.com/docs (via path probe, 4017 chars of readable text)
Followed homepage nav/footer links and probed /docs, /developers, docs.{domain}
✗MCP server discovery0/5
No MCP evidence found: probed /.well-known/mcp/server-card.json, /.well-known/mcp.json, /mcp.json and scanned llms.txt, agents.md, and docs for endpoints or install commands
fix → Publish /.well-known/mcp/server-card.json describing your MCP endpoint so agents can autodiscover it. Evidence found: none.
Probed /.well-known/mcp/server-card.json, mcp.json, and docs mentions for an MCP endpoint
spec ↗✗npm SDK0/2
No official npm SDK found: probed 6 candidate(s) (@ekholabs/sdk, @ekholabs/ekholabs, ekholabs, ekholabs-sdk, ekholabs-api, ekholabs-js)
fix → Publish an official npm SDK (suggest @ekholabs/sdk) with your domain in package.json homepage so agents can verify it's official.
Searched the npm registry for an official, domain-verified SDK package
✗PyPI SDK0/2
No official PyPI SDK found: probed 4 candidate(s) (ekholabs, ekholabs-sdk, ekholabsapi, ekholabs-python)
fix → Publish an official Python SDK (suggest "ekholabs") with your domain in the project URLs so agents can verify it's official.
Searched PyPI for an official, domain-verified SDK package
5.Is your integration well-built?
watch →0/5
5.Is your integration well-built?
Whether your specs, docs, and tools are complete and descriptive enough for an agent to use them without guessing.
—OpenAPI validity & qualityna
No OpenAPI spec found — nothing to lint
Linted the spec: descriptions, operationIds, securitySchemes, servers
✗Docs quality0/3
Docs at https://ekholabs.com/docs scored clarity 3/5, completeness 1/5, runnable examples 0/5, agent-friendliness 1/5 (mean 1.3/5)
fix → Docs scored 0/5 on runnable examples. The documentation provides no actual API reference, endpoints, data models, or authentication details, making integration impossible.
An LLM rated your docs for clarity, completeness, runnable examples, and agent-friendliness
✗Quickstart / getting started0/2
No quickstart/getting-started link or heading found on docs page https://ekholabs.com/docs (searched 21 links)
fix → Add a copy-pasteable quickstart (auth → first API call) — agents follow it literally.
Looked for a quickstart/getting-started guide containing code blocks
—MCP tool qualityna
No MCP endpoint known — tool lint requires a tools/list
Linted listed tools for descriptions, typed input schemas, and naming
6.Can an agent use you reliably in production?
watch →3/4
6.Can an agent use you reliably in production?
Response hygiene, TLS and redirect discipline, and security contact channels agents depend on at runtime.
✓TLS & redirect hygiene2/2
http://ekholabs.com/ upgrades to https in 1 hop(s), 1 redirect(s) total, final HTTP 200; no HSTS header
Checked http→https redirect behavior, chain length, and TLS health
✓Response speed & weight1/1
Homepage TTFB 75ms, payload 24KB, Content-Encoding: br
Measured homepage TTFB, payload size, and compression
✗security.txt0/1
https://ekholabs.com/.well-known/security.txt returned HTML, not a plaintext security.txt
fix → Publish RFC 9116 /.well-known/security.txt with a Contact and a future Expires.
Fetched /.well-known/security.txt and validated Contact + Expires
spec ↗
7.Can an agent authenticate to you?
watch →0/7
7.Can an agent authenticate to you?
Whether agents can discover your auth model machine-readably (OAuth metadata) and follow documented steps to credentials.
✗OAuth authorization server metadata0/3
Neither /.well-known/oauth-authorization-server nor /.well-known/openid-configuration resolved (HTTP 200 / HTTP 200)
fix → Serve RFC 8414 metadata at /.well-known/oauth-authorization-server with PKCE (S256) and a registration_endpoint so agents can self-onboard.
Fetched /.well-known/oauth-authorization-server (and openid-configuration fallback)
spec ↗✗OAuth protected resource metadata0/2
No RFC 9728 metadata: https://ekholabs.com/.well-known/oauth-protected-resource → HTTP 200
fix → Serve RFC 9728 metadata at /.well-known/oauth-protected-resource naming your authorization servers so agents can discover how to authenticate.
Fetched /.well-known/oauth-protected-resource
spec ↗✗Auth documentation0/2
No auth/API-key link found among 21 links on docs page https://ekholabs.com/docs, and /auth.md is absent
fix → Document auth end-to-end (key creation → header format → example call), or ship /auth.md.
Looked for /auth.md or an authentication docs page with code examples
8.Can an agent transact with you?
watch →5/15
8.Can an agent transact with you?
Whether pricing is discoverable and machine-readable, and whether you support agent payment protocols.
✓Pricing discoverable5/5
Pricing page found at https://ekholabs.com/pricing (via path probe) with legible price signals ("$150–500/TEU. Secure container").
Followed nav/footer links and probed /pricing for a page with legible price signals
✗Machine-readable pricing0/5
No pricing plans could be extracted from https://ekholabs.com/pricing (extraction confidence 0.00); no Offer JSON-LD on the page.
fix → Add Offer JSON-LD per plan (name, price, priceCurrency, billing period) to https://ekholabs.com/pricing so pricing parses without inference.
Looked for Offer JSON-LD, then had an LLM attempt structured extraction of your plans
spec ↗✗x402 payment support0/2
/.well-known/x402 returned HTTP 200 but not JSON. No x402 support detected (bonus check — absence costs nothing).
fix → Support x402: serve payment requirements at /.well-known/x402, or answer unauthenticated API calls with HTTP 402 plus an x402 payment-requirements payload (x402Version, accepts[]).
Probed /.well-known/x402 and API endpoints for HTTP 402 payment-required envelopes
spec ↗✗AP2 readiness0/1
No AP2 hints found — scanned llms.txt, agents.md, docs page (https://ekholabs.com/docs); /.well-known/ap2 returned HTTP 200.
fix → Adopt AP2 to accept delegated agent payments — see https://ap2-protocol.org.
Scanned fetched artifacts and well-known paths for AP2 hints
spec ↗✗Agentic Commerce Protocol0/1
No Agentic Commerce Protocol hints found — scanned llms.txt, agents.md, docs page (https://ekholabs.com/docs); /.well-known/acp returned HTTP 200.
fix → Adopt the Agentic Commerce Protocol so agent checkouts can complete against your store — see https://developers.openai.com/commerce.
Scanned docs and specs for agentic checkout endpoints
spec ↗✗Other agent payment protocols0/1
No UCP/MPP hints found — scanned llms.txt, agents.md, docs page (https://ekholabs.com/docs).
fix → Track emerging agent payment protocols (UCP, MPP) and adopt the ones your buyers' agents use.
Scanned fetched artifacts for UCP/MPP protocol hints
9.Can a user act through an agent?
—
9.Can a user act through an agent?
Whether an end user's agent can operate on their behalf: working MCP tools, published skills, agent configs.
—Agent skill publishedna
Requires the analysis phase — not yet evaluated
Checked /skill.md, /.well-known/skills/, and skills.sh for published agent skills
—MCP handshake & tools listna
No MCP endpoint known — nothing to handshake with
Performed a streamable-HTTP initialize + tools/list against the MCP endpoint
spec ↗—Agent configs in public repona
Requires the analysis phase — not yet evaluated
Checked your public GitHub org's main repos for AGENTS.md / .claude / .cursor configs
10.Can an agent operate your website directly?
7/9
10.Can an agent operate your website directly?
Whether the site itself is legible to non-rendering and browser agents: semantic HTML, no JS walls, accessibility.
✗NLWeb endpoint0/1
No NLWeb endpoint detected: /.well-known/nlweb.json returned HTTP 200 (text/html); GET /ask?query=hello returned HTTP 200 (text/html)
fix → Consider exposing an NLWeb /ask endpoint (and /.well-known/nlweb.json) for conversational access to your content.
Probed /.well-known/nlweb.json and the /ask endpoint
spec ↗✓Semantic HTML structure3/3
6/6 semantic signals present on the homepage
Scored landmark elements, heading hierarchy, and text-to-markup ratio on the homepage
✓Content readable without JavaScript2/2
Homepage raw HTML contains 4017 chars of visible text without JavaScript
Measured visible text in the raw, unrendered homepage HTML
✓Accessibility basics2/2
Homepage accessibility: 4/5 checks passed — failing: labeled inputs (1/2 unlabeled)
Static checks: lang attribute, title, alt coverage, labeled inputs, landmarks
✗WebMCP0/1
No WebMCP evidence on homepage: no application/webmcp script and no navigator.modelContext reference
fix → Consider WebMCP to expose page actions as tools to browser agents.
Looked for WebMCP script declarations on the homepage
spec ↗