LEGO sets, parts, minifigs, and inventories as an MCP server
Runs on your machine from its package; the steps are below.
At most: only reads or looks up information.
Odel charges nothing per call. The publisher may charge for its own service.
Runs locally over stdio
This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).
Run
npx -y lego-oracle
MCP client config
{
"mcpServers": {
"lego-oracle": {
"command": "npx",
"args": [
"-y",
"lego-oracle"
]
}
}
}
LEGO sets, parts, minifigs, and inventories. An MCP server.
Ask your AI assistant about LEGO sets, find specific bricks, look up minifigures, browse themes, and compare sets. All backed by Rebrickable's catalog (26k sets, 62k parts, 17k minifigs), not hallucinations.
10 tools. Zero config. Works with every MCP-compatible IDE.
npx -y lego-oracle
claude mcp add lego-oracle -- npx -y lego-oracle
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%/Claude/claude_desktop_config.json (Windows):
{
"mcpServers": {
"lego-oracle": {
"command": "npx",
"args": ["-y", "lego-oracle"]
}
}
}
Add to .cursor/mcp.json:
{
"mcpServers": {
"lego-oracle": {
"command": "npx",
"args": ["-y", "lego-oracle"]
}
}
}
Add to .vscode/mcp.json:
{
"servers": {
"lego-oracle": {
"command": "npx",
"args": ["-y", "lego-oracle"]
}
}
}
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"lego-oracle": {
"command": "npx",
"args": ["-y", "lego-oracle"]
}
}
}
Add to settings.json:
{
"context_servers": {
"lego-oracle": {
"command": {
"path": "npx",
"args": ["-y", "lego-oracle"]
}
}
}
}
| Tool | Description |
|---|---|
search_sets | Search for sets by name, theme, year, or piece count. Full-text search with filters. |
get_set | Get complete set details: inventory (grouped by part category), minifigures, theme hierarchy. |
compare_sets | Compare 2-4 sets side by side: piece count, year, theme, minifigs, shared parts. |
| Tool | Description |
|---|---|
search_parts | Search parts by name, category, colour, or material. |
get_part | Get part details including available colours and mold/print variants. |
find_part_in_sets | Find which sets contain a specific part (optionally in a specific colour), sorted by quantity. |
| Tool | Description |
|---|---|
search_minifigs | Search minifigures by name. |
get_minifig | Get minifig details and every set it appears in. |
| Tool | Description |
|---|---|
browse_themes | Browse the LEGO theme hierarchy. Top-level themes or drill into sub-themes with set counts. |
find_mocs | Find community alternate builds (MOCs) for a set's parts. |
All data is embedded at build time from Rebrickable. No network calls at runtime.
| Category | Count |
|---|---|
| Sets | 26,339 |
| Parts | 61,702 |
| Colours | 275 |
| Minifigures | 16,646 |
| Inventory entries | 1,483,652 |
| Part relationships | 35,757 |
| Themes | 490 |
Data is updated daily via GitHub Actions. New npm versions are published automatically when Rebrickable data changes.
npm install
npm run build
npm test # 141 tests
To refresh data from Rebrickable:
npm run fetch-data
npm run build
Data from Rebrickable. LEGO is a trademark of the LEGO Group. This project is not produced by or endorsed by the LEGO Group.
MIT