Anyone can look up an item by name. The hard part of the Destiny manifest is that meaning lives in the hash references between tables, and walking those by hand is where an afternoon goes. Incoming-reference queries — which weapons carry this perk, what uses this definition — are the ones that are painful anywhere else. Note that this is a local tool over the static manifest, so it answers what exists in the game, not what is in your vault.
A CLI and MCP server over the Destiny 2 manifest, the SQLite database Bungie publishes where almost every field is a numeric hash pointing at another table. It resolves those references into names automatically, in both directions, and works generically across every definition table rather than a curated subset.
- Item lookup by name in one step, fuzzy-matched, returning the full readable definition instead of a search-then-fetch pair — `item`
- Name search with an optional table filter, and structured filtering by item type, tier, class, damage type, bucket and stat ranges — `search`, `filter`
- An enriched variant of the same filters carrying icons, stats, sockets, damage type and flavour text, for when the answer is going to be displayed — `browse`
- Weapon perk rolls end to end: everything a weapon can roll across barrel, magazine, traits, mods and catalyst, and the reverse question — which weapons can roll a given perk — `rolls`, `perk_search`
- Side-by-side comparison of two to six items with stats, perks and properties in aligned columns — `compare`
- Reference traversal, which is what the manifest is actually made of: outgoing and incoming references for any definition, or the reference graph walked N hops deep as a tree — `relationships`, `graph`
- Lower-level access when the readable rendering is not enough: a definition by table and hash with refs resolved inline, a bare hash resolved to a summary with the table auto-detected, and the raw JSON — `get`, `resolve`, `raw`
- Manifest introspection: version, language and table list with row counts, plus the full table list — `manifest_info`, `list_tables`
- Manifest data in your language — the language is a saved setting, and stat name filters resolve against the manifest's own stat definition table so they keep working when you switch
A Bungie API key from bungie.net, saved through the CLI's own config command or supplied as `BUNGIE_API_KEY` in a `.env` file or the environment. Node.js: clone, `npm install`, `npm run build`, then link the command globally or point your client at the built entry. Before first use you download the manifest and build the search indexes, both one-off commands — indexing also builds the table that makes reverse perk search fast rather than scanning every item. The client entry runs the command with its MCP subcommand over stdio. The package is `destiny-codex` (0.5.1.0 in package.json). Once cached it works offline: the remote version is only checked when the cache is missing or the last check is over an hour old, and an unreachable Bungie falls back to the cache with a warning.
One command plus a key — codex mcp, then supply credentials
