For agents
Three ways in: a skill for coding agents, an MCP server, and plain JSON. All three read this site, so they never disagree with it.
Install the skill
The skill is three files served from this site. One command installs it for Claude Code, with no account and no access to a repository:
for f in SKILL.md scripts/search.mjs scripts/mcp.mjs; do curl -fsSL --create-dirs -o ~/.claude/skills/mothermachine/$f https://mothermachine.ai/skills/mothermachine/$f; done
Then /mothermachine <what you need> searches the directory from the chat and answers with the repo, the install command, how much of it is yours to change, and what an agent can and cannot do with it. For another agent that reads skills, run the same command with its skills folder in place of ~/.claude/skills, or install from the public mirror with the skills CLI, which knows where each agent keeps skills:
npx skills add Ramp-Jet/mothermachine-skill
The mirror at github.com/Ramp-Jet/mothermachine-skill is generated from the source on every change. The skill needs Node 18 or later for its script; without Node it says how to fetch the JSON by hand.
Register the MCP server
The same folder holds scripts/mcp.mjs, an MCP server over stdio with no dependencies. It has three read-only tools:
- search takes the user's need in their own words, or the commercial product to replace, plus optional filters for vertical, effort, and how an agent drives the software.
- listing returns the full record for one slug: the surface to change, the interface and its reach, gotchas, accounts, editions, and how to get each.
- vocab returns every field, its values, what they mean, and how many listings carry each, so the client can pick valid filters.
Register it with Claude Code, or add the same command to any client's MCP configuration:
claude mcp add mothermachine -- node ~/.claude/skills/mothermachine/scripts/mcp.mjs
Read the JSON directly
Everything above is a thin layer over files you can fetch yourself. llms.txt is the short guide, written for a model. Cheapest first:
index/vocab.json: every field's values with counts, and the glossary with synonyms.- One slice:
index/vertical/<vertical>.json,index/effort/<effort>.json,index/operability/<level>.json, orindex/alternatives.json, which maps a product name such as Calendly or Zendesk to the listings that replace it. index/search.json: one fetch for matching a need, every listing with its tagline, use-when phrases, alternatives, accounts, and gotchas.- One listing:
apps/<slug>.jsonis the full record,apps/<slug>.mdthe same as Markdown,apps/<slug>.htmlthe page.
What a record tells you
A listing is adaptable when its source is public and there is a named surface to change: env vars, config files, prompt files, with an effort badge for how much work that is. It is operable when an agent can drive it through an interface: an MCP server, an API, a CLI, config, or as a last resort the screen, with a reach list of the jobs an agent can and cannot do. Every classified field carries its evidence and a confidence score, so an agent can tell a guess from a fact. Gotchas name what breaks a build before you start. Accounts and keys are names only; values are never stored here.