MCP server
Let your AI assistant query the App Stack Builder catalog directly: search tools, browse categories and pull the alternatives we list for any tool.
Endpoint: https://appstackbuilder.com/mcp
Streamable HTTP, read-only, no API key and no account. Stateless: there is no session to establish and nothing is lost by reconnecting. POST JSON-RPC; a GET for a stream is refused because the server offers no server-initiated messages.
It exposes what is already public on the site. Alternatives come back in the same order as each tool's alternatives page, and every result links to its page here.
Tools
search_tools(query?, category?, maxMonthlyPrice?, openSource?, aiPowered?, limit?)
Search the tools catalog. Matches the query against tool name, description and tags; all filters are AND-combined. Returns slim summaries with pricing and a link to each tool page.
list_categories()
List every catalog category with its id, display name and number of tools.
get_alternatives(id, limit?)
Alternatives to one tool, in the same order as its /tool-alternatives page on the site. Takes a tool id (the "id" field from search_tools, e.g. "render", "supabase").
Call tools/list for the full JSON schema of each.
Connect
Claude Code
claude mcp add --transport http appstackbuilder https://appstackbuilder.com/mcpCursor, Claude Desktop and other clients
Add it as a remote (HTTP) server. Most clients accept a config like this:
{
"mcpServers": {
"appstackbuilder": {
"type": "http",
"url": "https://appstackbuilder.com/mcp"
}
}
}Raw HTTP
curl -s https://appstackbuilder.com/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"get_alternatives","arguments":{"id":"render"}}}'