Beyond the joke, it is a tidy demonstration of the shape most content servers want: a resource holding the corpus, and tools that index into it by key, by theme and at random. If it fails to start, the usual cause is the data file not sitting beside the built server.
An MCP server that serves the Ferengi Rules of Acquisition. The full collection is exposed as a resource, with four tools for getting at it: one rule by number, a themed search, a random pick, and the list of themes.
- A specific rule by its number — `get-rule`
- Rules matching a theme, such as profit, business or money — `search-by-theme`
- A random rule from the collection — `random-rule`
- Every available theme, so the search has something to aim at — `list-themes`
- The complete collection as an MCP resource, not just tool output
Node.js 18+, with `npm install` and `npm run build`, then the built `build/index.js` given to the client by absolute path. One requirement is easy to miss: `ferengi_rules_mcp.json` — the rules data — must sit in the same directory as the built server, or it will not start. Nothing to authorize.
