For Agents
Stack Gems is designed to be consumed by LLMs, agents, and automated tools. Here is how to access the catalog programmatically.
MCP server
A remote, read-only Model Context Protocol server over the whole catalog. No key, no login. Streamable HTTP at https://stackgems.com/api/mcp.
search_gems— search reviews by text, tag, subcategory, pricing; free/OSS firstbest_for— ranked shortlist for a use case, e.g. “vector database”get_gem— one full review: verdict, Catch, license, repo healthget_alternatives— free and open-source alternatives to a toollist_categories— stacks, best-of lists and tags with counts
{
"mcpServers": {
"stackgems": { "url": "https://stackgems.com/api/mcp" }
}
}Stdio-only clients: npx -y mcp-remote https://stackgems.com/api/mcp. Discovery card: /.well-known/mcp.json. OpenAPI: /openapi.json. Markdown guide: /for-agents.md.
llms.txt
Following the llmstxt.org specification, we provide structured text files for LLM consumption:
- /llms.txtIndex of all gems with links
- /llms-full.txtComplete catalog with full reviews
JSON API
RESTful JSON endpoints with CORS enabled for cross-origin requests:
GET /api/gems
List all gems. Optional query parameters:
?category=agents— filter by category?search=cursor— search by name, tagline, hook?limit=10&offset=0— pagination
GET /api/gems/[slug]
Get a single gem with full details and related gems
GET /api/tools
Alias of /api/gems. Same payload plus type: "tool". CORS * GET OPTIONS. /api/gems stays.
GET /api/stacks
List all categories with gem counts and featured items
Badges
Free embeddable SVG. Not a paid slot. Canonical path is /badge/[slug].svg.
[](https://stackgems.com/gems/{slug})/badge/tool.svg— generic mark/badge/phaser.svg— gem mark/badge/skill/[id].svg— skill mark
Programmatic landings
Generated only when at least two reviewed tools overlap after enrichGem. Honest Catch lists, not rankings. Empty combinations 404.
/tag/[capability]— e.g. /tag/webgpu, /tag/mcp/best/[sub-specialty]-for-[ecosystem]— e.g. /best/game-engines-for-browser/compare/[slug-a]-vs-[slug-b]— e.g. /compare/phaser-vs-pixijs, /compare/cursor-vs-claude-code/discover/[niche]— curated hubs e.g. /discover/codebase-context-engines, /discover/local-vector-stores
Raw Markdown
Every gem review is available as plain markdown:
/gems/[slug].mdExample: /gems/cursor.md
Skills
527 skill reviews, not a dump. HTML index, JSON, and raw markdown:
- /skillsHTML index of every skill
- /api/skillsJSON list
- /skills/skill-creator.mdOne markdown review
Review queue
Agents can submit a review of a skill or a gem. Submissions are queued. Nothing is auto-published. Same human veto as POST /api/submit.
POST /api/reviews
Content-Type: application/json
{
"targetType": "skill",
"slug": "systematic-debugging",
"body": "At least twenty characters of review text...",
"by": "optional-name"
}
// targetType: skill | gem
// Returns 202. Does not render on the page.RSS Feed
Subscribe to new gems via RSS:
/feed.xmlSubmit a Gem
Agents and tools can submit gem suggestions via API:
POST /api/submit
Content-Type: application/json
{
"name": "Tool Name",
"url": "https://example.com",
"stack": "agents",
"why": "At least 20 chars: what it is and when useful...",
"kind": "gem",
"tagline": "One-line what it is",
"catch": "Honest catch / gotcha",
"surfaces": ["MCP", "CLI", "API"],
"github": "https://github.com/org/repo",
"license": "Apache-2.0",
"agent": "your-agent-name"
}
// Required: name, url, stack, why (≥20 chars)
// Optional packet: kind, tagline, catch, surfaces, github, license, sourceUrl, when, agent
// surfaces: MCP | CLI | API | SDK | Self-host | Hosted
// Valid stacks: agents, nextjs, python, shopify, databases, devops, design, observability, rust, payments, comms, notifications, libraries
// Queued only — human veto, never auto-publish.Prefer a full review packet so we can check and ship faster. Still no auto-publish.
Sitemap
Complete sitemap including all pages and markdown files:
/sitemap.xml