Skip to main content
Glama
gregario

lego-oracle

by gregario

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.

lego-oracle MCP server gregario/lego-oracle MCP server

Install

npx -y lego-oracle

Add to your IDE

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"]
      }
    }
  }
}

Related MCP server: brickem-mcp-server

Tools

Set Tools

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.

Part Tools

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.

Minifig Tools

Tool

Description

search_minifigs

Search minifigures by name.

get_minifig

Get minifig details and every set it appears in.

Discovery Tools

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.

Data

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.

Development

npm install
npm run build
npm test             # 141 tests

To refresh data from Rebrickable:

npm run fetch-data
npm run build

Attribution

Data from Rebrickable. LEGO is a trademark of the LEGO Group. This project is not produced by or endorsed by the LEGO Group.

License

MIT

Available Tools

10 tools
browse_themesA

Browse the LEGO theme hierarchy. With no input, returns all top-level themes with set counts. With a theme name, returns its sub-themes and sets. Use this to explore what LEGO themes exist or drill into a specific theme.

ParametersJSON Schema
NameRequiredDescriptionDefault
themeNoTheme name or numeric ID. Omit to list all top-level themes with set counts.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility. It discloses the two distinct behaviors and the output includes set counts for top-level themes and sub-themes/sets for specific themes. No mention of side effects or destructive actions, but as a read-only browse operation, this is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with no wasted words. Efficiently covers purpose, usage, and behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one optional parameter and no output schema or annotations, the description fully informs an agent about its behavior and usage. No missing information needed for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameter semantics (theme name/numeric ID, optional). Description adds that using a theme name returns its sub-themes and sets, which provides modest extra context beyond schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool browses the LEGO theme hierarchy with specific behaviors for no input (top-level themes with set counts) and with input (sub-themes and sets). This distinguishes it from sibling tools that focus on sets, minifigs, or parts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description explains when to use: to explore themes or drill into a specific theme. It implies alternatives by listing sibling tools with different purposes, but does not explicitly state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compare_setsA

Compare 2 to 4 LEGO sets side by side. Shows piece count, year, theme, minifig count, and shared parts between sets. Use this when someone is deciding between sets or wants to know what parts overlap.

ParametersJSON Schema
NameRequiredDescriptionDefault
set_numsYesArray of 2-4 LEGO set numbers to compare side by side

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full responsibility for behavioral transparency. It does not disclose whether the tool requires authentication, has rate limits, is read-only, or any other behavioral traits. It only mentions output fields but not how the tool behaves.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with purpose and followed by usage guidance. Every sentence adds value with no redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity (one parameter, no nested objects, no output schema), the description adequately covers the tool's purpose and usage. It distinguishes from siblings and provides enough context for an agent to select it correctly, though it omits return format details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already describes the 'set_nums' parameter well. The description reinforces the range (2 to 4 sets) but does not add significant new semantic meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Compare' and the resource 'LEGO sets' with a specific range of 2 to 4. It lists the output attributes (piece count, year, theme, minifig count, shared parts), making the tool's purpose distinct from siblings like get_set (single set) or search_sets (search).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use: 'when someone is deciding between sets or wants to know what parts overlap.' While it does not name alternative tools, the usage context is clear and matches the tool's purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_mocsA

Find community alternate builds (MOCs) that can be made from a specific LEGO set's parts. Use this when someone wants to know what else they can build with parts they already own.

ParametersJSON Schema
NameRequiredDescriptionDefault
set_numYesLEGO set number (e.g. "75192-1" for the Millennium Falcon)

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries the full burden. It does not mention any behavioral traits like destructive nature, rate limits, or what happens if set_num is invalid. The tool appears read-only, but this is not confirmed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no fluff, and directly communicates the tool's purpose and usage. Front-loaded with the key action and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple search tool with one parameter, the description is fairly complete. It explains what it does and when to use it. Lacking mention of output format or potential failure modes, but adequate given low complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a good parameter description. The description adds minor context ('parts they already own'), but does not significantly extend beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Find' and the resource 'community alternate builds (MOCs) that can be made from a specific LEGO set's parts.' It also provides a usage scenario, distinguishing it from siblings like search_sets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use this when someone wants to know what else they can build with parts they already own,' which gives a clear context. It does not mention when not to use it or alternatives, but the sibling list provides that information implicitly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_part_in_setsA

Find which LEGO sets contain a specific part, optionally in a specific colour. Use this when a builder wants to know where to source a particular brick. Results sorted by quantity (most pieces first).

ParametersJSON Schema
NameRequiredDescriptionDefault
colorNoOptional colour filter (name or ID)
limitNoMax results (default 25, max 50)
part_numYesPart number to search for

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description adds behavioral context by stating results are sorted by quantity (most pieces first). However, it does not disclose other behaviors like pagination, error handling, or authentication needs, which would be expected for a tool with no annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences. The purpose is front-loaded in the first sentence, and there is no redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description could be more complete by hinting at the output format (e.g., returns set IDs or names). It mentions sorting but lacks detail on response structure. Still, it covers the core functionality.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already describes all parameters. The description adds that color is optional and the purpose of the tool, but does not provide additional details beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: finding LEGO sets containing a specific part, with optional color filter. It distinguishes from siblings like search_parts (which searches parts themselves) by specifying the use case of sourcing a brick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear usage context: 'when a builder wants to know where to source a particular brick.' It does not explicitly mention when not to use this tool or alternatives, but the context is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_minifigA

Get complete details for a specific LEGO minifigure including every set it appears in. Use this when you know a minifig name or fig number and want to find which sets include it.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoMinifig name for fuzzy search if fig_num not provided
fig_numNoExact minifig number (e.g. "fig-000100")

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It describes the tool as a read operation (get complete details) and implies no destructive behavior. However, it does not mention authentication, rate limits, or what happens when both parameters are provided. The disclosure is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loading the main purpose and then usage guidance. Every word serves a purpose, with no fluff or repetition. It is highly efficient for an agent to process.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no output schema, the description could specify what fields are included in 'complete details' beyond 'every set it appears in'. The tool is simple but the lack of output format hints may leave the agent uncertain. Still, basic context is provided.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema coverage is 100% with descriptions for both parameters. The description adds value by noting that 'name' is for fuzzy search if 'fig_num' is not provided, and 'fig_num' is the exact identifier. This clarifies the relationship between parameters and their usage beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves complete details for a specific minifigure including its sets. The verb 'Get' and resource 'complete details for a specific LEGO minifigure' are specific. While it doesn't explicitly differentiate from sibling tools like search_minifigs, the usage context implies it's for a lookup of a known minifig, not general search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use this when you know a minifig name or fig number and want to find which sets include it.' This provides a clear when-to-use condition. However, it does not mention when not to use or compare with alternatives like search_minifigs, which would strengthen guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_partA

Get complete details for a specific LEGO part including available colours and mold/print variants. Use this when you know a part number (like 3001) and need its specifications, colour availability, or related parts.

ParametersJSON Schema
NameRequiredDescriptionDefault
part_numYesPart number to look up (e.g. "3001")

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility. It discloses the tool returns 'complete details' including colours and variants, but lacks specifics on authorization, rate limits, or the structure of the response. It is adequate but not fully transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loaded with the action and scope, and every sentence contributes value. No superfluous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity (1 parameter, no output schema, no nested objects), the description covers the core functionality: retrieving details including colours and variants. It is mostly complete, though an example response or mention of field names would improve it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter (part_num) with schema coverage 100% and a description in the schema. The tool description adds no new meaning beyond the schema's example ('3001'). Baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get complete details for a specific LEGO part including available colours and mold/print variants.' It specifies a verb (Get) and resource (part), and implicitly distinguishes from sibling tools like search_parts or browse_themes by focusing on a known part number.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance: 'Use this when you know a part number (like 3001) and need its specifications, colour availability, or related parts.' This is clear context, though it does not explicitly state when not to use or name alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_setA

Get complete details for a specific LEGO set including piece inventory, minifigures, and theme. Use this when you know a set number (like 75192-1) or set name and need full information. Returns inventory grouped by part category.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoSet name for fuzzy search if set_num not provided
set_numNoExact set number (e.g. "75192-1")

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavior. It does so by specifying that it returns 'complete details' including inventory grouped by part category. It is a read operation with no side effects, and the description accurately conveys that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler. The first sentence states the purpose and what is returned; the second provides usage context. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema, so the description must hint at return structure. It does so by listing inventory, minifigures, theme, and noting grouping by part category. While not exhaustive, it covers key elements for a moderate complexity tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains both parameters. The description adds no new parameter semantics beyond echoing the schema (e.g., 'fuzzy search for name' is already in schema). Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it gets complete details for a LEGO set, listing piece inventory, minifigures, and theme. It distinguishes itself from siblings like search_sets (which finds sets) and get_minifig (which gets a specific minifigure).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use: 'Use this when you know a set number or set name and need full information.' It implies the alternative search_sets if the set number/name is unknown, though not explicitly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_minifigsA

Search for LEGO minifigures by name. Use this when looking for specific characters or minifig types. Returns fig numbers and names: use get_minifig for full details and set appearances.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 25, max 50)
queryYesFree-text search (FTS5) across minifig names

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden of behavioral disclosure. It mentions the return format (fig numbers and names), which is helpful, but lacks details on pagination, ordering, or error handling. The tool is inherently read-only, so no destructive behavior, but more transparency would improve the score.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no wasted words: first states purpose, second gives usage guidance and next steps. Information is front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description explains that the tool returns fig numbers and names, which is adequate. It also suggests the follow-up tool get_minifig for details. Lacks coverage of pagination defaults and error scenarios, but is fairly complete for a simple search tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already covers both parameters with descriptions (100% coverage). The description adds no additional meaning beyond the schema, meeting the baseline but not exceeding it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches for LEGO minifigures by name, distinguishing it from sibling tools like get_minifig which provide full details. The verb 'search' and specific resource 'LEGO minifigures' are explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises when to use this tool ('looking for specific characters or minifig types') and directs to get_minifig for full details, providing clear usage context and an alternative, though it doesn't explicitly state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_partsA

Search for LEGO parts by name, category, colour, or material. Use this when looking for specific brick types, plates, tiles, or other elements. Returns part numbers and names: use get_part for full details.

ParametersJSON Schema
NameRequiredDescriptionDefault
colorNoFilter by colour name or ID (finds parts available in this colour)
limitNoMax results (default 25, max 50)
queryNoFree-text search (FTS5) across part names
categoryNoFilter by part category name
materialNoFilter by part material (e.g. "Plastic", "Rubber")

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It states the tool returns part numbers and names, implying a read operation, but does not disclose pagination, authentication, or other behavioral traits. Adequate for a simple search tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences. First defines purpose, second adds usage guidance and redirect. No unnecessary words or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description explains the return value (part numbers and names) and covers the main search dimensions. It could mention the limit parameter but that is already in the schema. Completion is good for a search tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear descriptions. The description echoes the parameters (name, category, colour, material) but adds no additional meaning beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Search for LEGO parts' with specific verbs and resources. Distinguishes from sibling 'get_part' by noting it returns only part numbers and names, deferring to get_part for full details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use this when looking for specific brick types, plates, tiles, or other elements.' Also provides direction to use get_part for full details. Could be more explicit about alternatives like search_sets, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_setsA

Search for LEGO sets by name, theme, year, or piece count. Use this when looking for sets matching specific criteria. Returns a summary list: use get_set for full details on a specific set.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 25, max 50)
queryNoFree-text search (FTS5) across set names
themeNoFilter by theme name (includes sub-themes recursively)
year_maxNoMaximum release year (inclusive)
year_minNoMinimum release year (inclusive)
max_partsNoMaximum piece count (inclusive)
min_partsNoMinimum piece count (inclusive)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description notes it returns a summary list and mentions FTS5 search, which adds transparency beyond the schema. However, without annotations, it does not cover potential side effects or other behavioral details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with purpose and immediately followed by usage guidance. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (7 parameters, no output schema), the description covers purpose, usage, and output type. It could mention limit behavior but schema already does. Adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed parameter descriptions. The description summarizes the parameters but adds no new meaning, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches for LEGO sets by specific criteria (name, theme, year, piece count) and distinguishes it from siblings like get_set and search_parts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use it ('when looking for sets matching specific criteria') and directs users to get_set for full details, but does not mention when not to use or other alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A4.2/5.0
Disambiguation5/5

Each tool targets a distinct function: browsing themes, comparing sets, finding alternate builds, searching/getting parts/minifigs/sets. The search/get pairing is clear and avoids ambiguity.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (e.g., browse_themes, compare_sets, search_parts), with lowercase and underscores throughout.

Tool Count5/5

10 tools is well-scoped for a LEGO data exploration server, covering all common operations without excess or shortfall.

Completeness5/5

The tool surface covers all essential workflows: browsing themes, searching and retrieving details for sets/parts/minifigs, comparing sets, and finding alternate builds. No obvious gaps.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    LEGO minifigure price lookup and identification. Search 18,000+ minifigs by name, theme, or description. Prices for used and new condition. Powered by brick'em (brickem.io).
    4
    21
    1
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Enables AI assistants to search, understand, and retrieve UI components from ui-layouts.com through tools like search, documentation, metadata, and source code access.
    4
    167
    33
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/gregario/lego-oracle'

If you have feedback or need assistance with the MCP directory API, please join our Discord server