{"tool1":{"_id":"69b2da6867df398baec12f72","name":"Ahrefs","slug":"ahrefs","url":"https://ahrefs.com","description":"","logo":"","category":"Marketing","tags":[],"pricingModel":"unknown","scores":{"tokenEfficiency":{"score":6,"confidence":"scanner","evidence":"Ahrefs API likely returns comprehensive SEO data objects without granular field selection, typical for data-rich SEO platforms, requiring agents to parse large responses for specific metrics.","na":false},"access":{"score":7,"confidence":"scanner","evidence":"Multiple access methods available including REST API, Node.js SDK, MCP server (@ahrefs/mcp), and CLI tooling, though MCP server is early-stage (v0.0.11) and not documented as production-ready.","na":false},"auth":{"score":7,"confidence":"scanner","evidence":"API key-based authentication is standard for Ahrefs and enables autonomous agent auth without human intervention, though specific permission scoping details are not documented in available signals.","na":false},"speed":{"score":5,"confidence":"scanner","evidence":"No response time data collected, and SEO data APIs typically have moderate latency; rate limiting details are unknown, creating uncertainty about concurrent agent throughput.","na":false},"discoverability":{"score":5,"confidence":"scanner","evidence":"No OpenAPI spec found, no llms.txt or agents.json published, and developer documentation exists but completeness is unclear; agents must rely on external documentation and SDK examples.","na":false},"reliability":{"score":6,"confidence":"scanner","evidence":"Structured data present on homepage and multiple SDK/MCP implementations suggest stable API schemas, but no explicit versioning, idempotency, or status page signals detected.","na":false},"safety":{"score":4,"confidence":"scanner","evidence":"No sandbox/test mode, dry-run capabilities, or explicit scoped token support documented; robots.txt blocks agents entirely, suggesting the platform discourages autonomous access at scale.","na":false},"reactivity":{"score":3,"confidence":"scanner","evidence":"No webhook, streaming, or SSE capabilities mentioned; agents must rely on polling for real-time data, which is inefficient for continuous monitoring use cases.","na":false}},"agentGrade":"C+","agentScore":5.82,"accessMethods":{"restApi":true,"graphql":false,"cli":true,"sdk":["Node (@pipedream/ahrefs)"],"mcpServer":"none","openApiSpec":"","llmsTxt":false,"agentsJson":false},"authInfo":{"methods":["unknown"],"scopedPermissions":false,"humanRequired":true},"reviewCount":0,"avgReviewScore":0,"viewCount":52,"badgeEmbedCount":7,"agentSkillSlugs":[],"alternatives":[],"claimed":false,"status":"graded","createdAt":"2026-03-12T15:23:20.763Z","updatedAt":"2026-05-19T09:26:44.535Z","__v":0,"scannerData":{"lastScannedAt":"2026-03-12T19:47:56.129Z","scanVersion":1,"rawSignals":{"homepage":{"status":200,"contentLength":538032,"hasStructuredData":true,"hasDeveloperDocs":true,"hasAgentMentions":true,"responseTimeMs":null},"openapi":{"found":false},"wellKnown":{"llmsTxt":{"found":false},"agentsJson":{"found":false},"robotsTxt":{"found":true,"blocksAgents":true,"hasSitemap":false}},"packages":{"npm":[{"name":"@ahrefs/mcp","description":"Ahrefs MCP server","version":"0.0.11"},{"name":"@adobe/spacecat-shared-ahrefs-client","description":"Shared modules of the Spacecat Services - Ahrefs Client","version":"1.10.7"},{"name":"@power-seo/integrations","description":"Third-party SEO tool API clients for Semrush and Ahrefs with shared HTTP client","version":"1.0.12"},{"name":"@pipedream/ahrefs","description":"Pipedream Ahrefs Components","version":"0.1.0"},{"name":"ahrefs","description":"Ahrefs API Nodejs client","version":"0.1.0"},{"name":"firebase-tools","description":"Command-Line Interface for Firebase","version":"15.9.1"},{"name":"@playwright/mcp","description":"Playwright Tools for MCP","version":"0.0.68"},{"name":"mcp-framework","description":"Framework for building Model Context Protocol (MCP) servers in Typescript","version":"0.2.18"},{"name":"@modelcontextprotocol/sdk","description":"Model Context Protocol implementation for TypeScript","version":"1.27.1"}],"pypi":[],"cli":true,"sdks":["Node (@pipedream/ahrefs)"]},"mcp":{"found":false,"type":"none","servers":[]}},"biggestFriction":"robots.txt explicitly blocks agents, and the absence of an official OpenAPI spec, sandbox mode, or agent-specific endpoints creates friction for autonomous AI use and discourages agent-at-scale deployments.","agentSummary":"Ahrefs is moderately agent-ready with a REST API, MCP server, and Node.js SDK, but lacks formal agent support signals (no llms.txt/agents.json), token-efficient field selection, and explicit sandbox/test modes. The platform's robots.txt blocking agents and lack of OpenAPI documentation suggest it was not designed with autonomous agent access as a primary use case."}},"tool2":{"_id":"69b2da6867df398baec12f75","name":"SEMrush","slug":"semrush","url":"https://semrush.com","description":"","logo":"","category":"Marketing","tags":[],"pricingModel":"unknown","scores":{"tokenEfficiency":{"score":5,"confidence":"scanner","evidence":"No OpenAPI spec or documented API response schemas available; without field selection or pagination details, response efficiency cannot be verified and likely includes verbose marketing/navigation data.","na":false},"access":{"score":3,"confidence":"scanner","evidence":"No REST API, GraphQL, OpenAPI spec, MCP server, or CLI found; only NPM packages for internal UI components and third-party tools (Playwright, Firebase) suggest limited programmatic access to core SEMrush functionality.","na":false},"auth":{"score":4,"confidence":"scanner","evidence":"While SEMrush likely supports API keys for authenticated access (standard for SaaS tools), no evidence of scoped permissions, test/sandbox keys, or autonomous auth mechanisms is present in the collected signals.","na":false},"speed":{"score":4,"confidence":"scanner","evidence":"Response time data was not collected; no documented rate limits, pagination strategy, ETags, or concurrent request support found; robots.txt blocks agents, suggesting potential latency concerns.","na":false},"discoverability":{"score":3,"confidence":"scanner","evidence":"No OpenAPI spec, llms.txt, or agents.json file found; developer docs exist but likely require manual navigation; robots.txt explicitly blocks agents, making automatic discovery impossible.","na":false},"reliability":{"score":4,"confidence":"scanner","evidence":"No evidence of idempotency keys, API versioning, consistent response schemas, or status page in collected signals; homepage status is 200 but no deeper reliability signals present.","na":false},"safety":{"score":3,"confidence":"scanner","evidence":"No sandbox/test mode, dry-run capabilities, or evidence of granular access control found; robots.txt blocking suggests a defensive posture toward automated access rather than safe agent design.","na":false},"reactivity":{"score":2,"confidence":"scanner","evidence":"No evidence of webhooks, streaming, SSE, or documented polling patterns; robots.txt blocks agents, making reactive integrations difficult to establish.","na":false}},"agentGrade":"D","agentScore":3.74,"accessMethods":{"restApi":true,"graphql":false,"cli":false,"sdk":[],"mcpServer":"none","openApiSpec":"","llmsTxt":false,"agentsJson":false},"authInfo":{"methods":["unknown"],"scopedPermissions":false,"humanRequired":true},"reviewCount":0,"avgReviewScore":0,"viewCount":41,"badgeEmbedCount":8,"agentSkillSlugs":[],"alternatives":[],"claimed":false,"status":"graded","createdAt":"2026-03-12T15:23:20.764Z","updatedAt":"2026-05-11T13:22:04.980Z","__v":0,"scannerData":{"lastScannedAt":"2026-03-12T19:55:17.912Z","scanVersion":1,"rawSignals":{"homepage":{"status":200,"contentLength":231490,"hasStructuredData":true,"hasDeveloperDocs":true,"hasAgentMentions":false,"responseTimeMs":null},"openapi":{"found":false},"wellKnown":{"llmsTxt":{"found":false},"agentsJson":{"found":false},"robotsTxt":{"found":true,"blocksAgents":true,"hasSitemap":true}},"packages":{"npm":[{"name":"@semcore/typography","description":"Semrush Typography Component","version":"16.3.2"},{"name":"@semcore/icon","description":"Semrush Icon Component","version":"16.7.4"},{"name":"@semcore/dropdown","description":"Semrush Dropdown Component","version":"16.1.4"},{"name":"@semcore/flex-box","description":"Semrush FlexBox Component","version":"16.0.11"},{"name":"@semcore/checkbox","description":"Semrush Checkbox Component","version":"16.2.2"},{"name":"firebase-tools","description":"Command-Line Interface for Firebase","version":"15.9.1"},{"name":"@playwright/mcp","description":"Playwright Tools for MCP","version":"0.0.68"},{"name":"mcp-framework","description":"Framework for building Model Context Protocol (MCP) servers in Typescript","version":"0.2.18"}],"pypi":[],"cli":false,"sdks":[]},"mcp":{"found":false,"type":"none","servers":[]}},"biggestFriction":"SEMrush has no publicly documented API, MCP server, or programmatic access layer exposed—only a web UI—making autonomous agent integration impossible without reverse-engineering or undocumented endpoints.","agentSummary":"SEMrush is effectively closed off to agent access with no API, CLI, or protocol support; the tool would require human-in-the-loop interaction or unofficial workarounds to function with AI agents. This is a web-first, proprietary platform that has not invested in agent-friendly infrastructure."}}}