Compare 2-3 developer tools side by side. Returns each tool's full Markdown-KV entry separated by "===". Alternatives and worksWith are enriched with tagline + agent-readiness for resolved slugs. If any requested slugs are not found, they appear in a trailing "Note: slugs not found: ..." line; the comparison still returns for the ones found.
Examples:
- Three search engines: {slugs: ["meilisearch-oss", "algolia", "elasticsearch-oss"]}
- Two ORMs: {slugs: ["drizzle-orm", "prisma"]}
- Three auth providers: {slugs: ["auth0", "clerk", "keycloak"]}
- Hosted vs self-hosted for the same vendor: {slugs: ["redis-cloud", "redis-oss"]} — shows deployment trade-off
- Postgres engine vs hosted offerings: {slugs: ["postgresql", "supabase-cloud", "cockroachdb-cloud"]}
Edge cases:
- Cross-category comparisons (e.g., {slugs: ["auth0", "redis-cloud"]}) are allowed but rarely useful. Same-category comparisons answer "which should I pick?" better; cross-category answers "these coexist in my stack" — a compatibility question.
- Minimum 2 slugs, maximum 3. Four or more is a validation error; for more, run pairs.
- Invalid or unknown slugs are listed under "slugs not found"; the partial comparison returns for valid ones.
- Duplicate slugs in the array are deduplicated.
- A few tools are single entries (no -cloud/-oss split): stripe, auth0, firebase, twilio, openai-api, pinecone, algolia. Don't pass "stripe-cloud" — it doesn't exist.
Risk: read-only, closed-world, idempotent — no state change possible.