{"tool1":{"_id":"69b2da6867df398baec12ddd","name":"PlanetScale","slug":"planetscale","url":"https://planetscale.com","description":"","logo":"","category":"Developer Tools","tags":[],"pricingModel":"unknown","scores":{"tokenEfficiency":{"score":7,"confidence":"scanner","evidence":"PlanetScale's Fetch API-compatible driver and support for query builders like Kysely enable efficient queries with field selection and batching, though no explicit API-level pagination or response compression signals are evident.","na":false},"access":{"score":6,"confidence":"scanner","evidence":"Multiple SDK options exist (Node.js driver, Prisma adapter, Kysely dialect) and a REST API is available, but the absence of an OpenAPI spec, MCP server, CLI, or GraphQL endpoint limits discoverability and integration breadth.","na":false},"auth":{"score":7,"confidence":"scanner","evidence":"PlanetScale supports API key authentication for programmatic access without OAuth friction, and database-level connection strings enable autonomous agent authentication, though no evidence of scoped or granular permissions is visible.","na":false},"speed":{"score":6,"confidence":"scanner","evidence":"PlanetScale is a serverless database with inherently fast response times, but no rate limiting details, ETag support, or concurrent request handling documentation is evident in the signals collected.","na":false},"discoverability":{"score":4,"confidence":"scanner","evidence":"While developer documentation exists and structured data is present, the lack of an OpenAPI specification, llms.txt file, or agents.json makes API surface discovery difficult for AI agents compared to best-in-class tools.","na":false},"reliability":{"score":6,"confidence":"scanner","evidence":"PlanetScale's established infrastructure suggests reliability, and SDK usage patterns imply versioning support, but no explicit signals about idempotency keys, API versioning strategy, or status page transparency are present.","na":false},"safety":{"score":5,"confidence":"scanner","evidence":"PlanetScale supports connection-level isolation and Prisma/Kysely adapters enable transaction support, but no explicit sandbox mode, dry-run capability, or operation undo mechanism is documented in available signals.","na":false},"reactivity":{"score":3,"confidence":"scanner","evidence":"No evidence of webhooks, streaming, SSE, or intelligent polling mechanisms is present; agents would rely on simple polling to detect changes, resulting in inefficient reactive patterns.","na":false}},"agentGrade":"C+","agentScore":5.92,"accessMethods":{"restApi":true,"graphql":false,"cli":false,"sdk":["Node (@planetscale/database)"],"mcpServer":"none","openApiSpec":"","llmsTxt":false,"agentsJson":false},"authInfo":{"methods":["unknown"],"scopedPermissions":false,"humanRequired":true},"reviewCount":0,"avgReviewScore":0,"viewCount":188,"badgeEmbedCount":24,"agentSkillSlugs":[],"alternatives":[],"claimed":false,"status":"graded","createdAt":"2026-03-12T15:23:20.627Z","updatedAt":"2026-09-07T17:21:58.091Z","__v":0,"scannerData":{"lastScannedAt":"2026-03-12T19:21:40.494Z","scanVersion":1,"rawSignals":{"homepage":{"status":200,"contentLength":84019,"hasStructuredData":true,"hasDeveloperDocs":true,"hasAgentMentions":false,"responseTimeMs":null},"openapi":{"found":false},"wellKnown":{"llmsTxt":{"found":false},"agentsJson":{"found":false},"robotsTxt":{"found":true,"blocksAgents":false,"hasSitemap":true}},"packages":{"npm":[{"name":"@planetscale/database","description":"A Fetch API-compatible PlanetScale database driver","version":"1.19.0"},{"name":"kysely-planetscale","description":"Kysely dialect for PlanetScale Serverless","version":"1.7.1"},{"name":"@prisma/adapter-planetscale","description":"Prisma's driver adapter for \"@planetscale/database\"","version":"7.5.0"},{"name":"planetscale","description":"A simple client for connecting to PlanetScale.","version":"2.1.0"},{"name":"@sst-provider/planetscale","description":"A Pulumi provider dynamically bridged from planetscale.","version":"0.4.1"}],"pypi":[],"cli":false,"sdks":["Node (@planetscale/database)"]},"mcp":{"found":false,"type":"none","servers":[]}},"biggestFriction":"Lack of OpenAPI specification, MCP server, and explicit agent-discovery signals (llms.txt, agents.json) makes it difficult for AI agents to automatically discover and integrate with PlanetScale's API surface.","agentSummary":"PlanetScale offers solid programmatic access through multiple SDKs and API keys, making it suitable for agents that manage database operations autonomously. However, missing OpenAPI documentation, reactive features, and agent-specific discovery mechanisms limit its readiness for sophisticated AI agent integration compared to leading API-first platforms."}},"tool2":{"_id":"69b2da6867df398baec12dfe","name":"Pulumi","slug":"pulumi","url":"https://pulumi.com","description":"","logo":"","category":"Developer Tools","tags":[],"pricingModel":"unknown","scores":{"tokenEfficiency":{"score":6,"confidence":"scanner","evidence":"Pulumi SDKs support programmatic access with field selection and batching capabilities, but as an infrastructure-as-code tool, responses can be verbose due to resource state complexity; no specific evidence of response compression or field-level optimization.","na":false},"access":{"score":7,"confidence":"scanner","evidence":"Pulumi provides comprehensive SDK coverage (Node.js, Python, Go, Java, C#) and a CLI for programmatic access, but lacks a REST API, GraphQL endpoint, or MCP server, limiting integration patterns for AI agents.","na":false},"auth":{"score":7,"confidence":"scanner","evidence":"Pulumi supports API tokens and scoped access credentials that enable autonomous agent authentication without human-in-the-loop, though the robots.txt blocks agents suggesting deliberate restrictions on automated access.","na":false},"speed":{"score":5,"confidence":"scanner","evidence":"Pulumi's cloud operations can have variable latency depending on infrastructure provisioning times; no evidence of aggressive rate limiting, conditional requests (ETags), or explicit concurrent request support documented.","na":false},"discoverability":{"score":5,"confidence":"scanner","evidence":"While Pulumi has comprehensive developer documentation and structured data, it lacks an OpenAPI specification and the robots.txt explicitly blocks agents, making programmatic discovery and autonomous exploration difficult.","na":false},"reliability":{"score":6,"confidence":"scanner","evidence":"Pulumi's infrastructure-as-code approach provides consistent resource schemas and versioning through SDK versions, but no explicit evidence of idempotency keys or API versioning strategy beyond SDK releases.","na":false},"safety":{"score":7,"confidence":"scanner","evidence":"Pulumi offers preview mode (dry-run) for infrastructure changes, stack-based isolation, and scoped API tokens for restricted access; however, the destructive nature of IaC operations requires careful state management.","na":false},"reactivity":{"score":4,"confidence":"scanner","evidence":"No evidence of webhooks, streaming APIs, or SSE support; Pulumi is event-driven through automation APIs and triggers, but lacks native real-time notification mechanisms for state changes.","na":false}},"agentGrade":"B","agentScore":6.1,"accessMethods":{"restApi":true,"graphql":false,"cli":false,"sdk":["Node (@pulumi/docker)","Python (pulumi)"],"mcpServer":"none","openApiSpec":"","llmsTxt":false,"agentsJson":false},"authInfo":{"methods":["unknown"],"scopedPermissions":false,"humanRequired":true},"reviewCount":0,"avgReviewScore":0,"viewCount":80,"badgeEmbedCount":15,"agentSkillSlugs":[],"alternatives":[],"claimed":false,"status":"graded","createdAt":"2026-03-12T15:23:20.644Z","updatedAt":"2026-09-08T09:38:37.940Z","__v":0,"scannerData":{"lastScannedAt":"2026-03-12T19:23:42.372Z","scanVersion":1,"rawSignals":{"homepage":{"status":200,"contentLength":745470,"hasStructuredData":true,"hasDeveloperDocs":true,"hasAgentMentions":true,"responseTimeMs":null},"openapi":{"found":false},"wellKnown":{"llmsTxt":{"found":false},"agentsJson":{"found":false},"robotsTxt":{"found":true,"blocksAgents":true,"hasSitemap":true}},"packages":{"npm":[{"name":"@pulumi/docker","description":"A Pulumi package for interacting with Docker in Pulumi programs","version":"4.11.0"},{"name":"@pulumi/random","description":"A Pulumi package to safely use randomness in Pulumi programs.","version":"4.19.1"},{"name":"@pulumi/tls","description":"A Pulumi package to create TLS resources in Pulumi programs.","version":"5.3.0"},{"name":"@pulumi/kubernetes","description":"[![Actions Status](https://github.com/pulumi/pulumi-kubernetes/workflows/main/badge.svg)](https://github.com/pulumi/pulumi-kubernetes/actions) [![Slack](http://www.pulumi.com/images/docs/badges/slack.svg)](https://slack.pulumi.com) [![NPM version](https:/","version":"4.28.0"},{"name":"@pulumi/command","description":"[![Actions Status](https://github.com/pulumi/pulumi-command/workflows/master/badge.svg)](https://github.com/pulumi/pulumi-command/actions) [![Slack](http://www.pulumi.com/images/docs/badges/slack.svg)](https://slack.pulumi.com) [![NPM version](https://bad","version":"1.2.1"}],"pypi":[{"name":"pulumi","version":"3.226.0","description":"Pulumi's Python SDK"}],"cli":false,"sdks":["Node (@pulumi/docker)","Python (pulumi)"]},"mcp":{"found":false,"type":"none","servers":[]}},"biggestFriction":"The absence of a REST API or OpenAPI specification, combined with robots.txt blocking agents, creates significant friction for autonomous agent discovery and integration compared to modern infrastructure platforms.","agentSummary":"Pulumi is moderately agent-ready through its SDKs and CLI with autonomous authentication support, but its lack of a REST API, missing OpenAPI documentation, and agent-blocking configuration limit programmatic discoverability and integration. The infrastructure-as-code nature requires careful safety considerations, though preview modes and scoped access partially mitigate risks."}}}