Skip to main content
Glama

Find blocks, biomes, or structures

locate
Read-onlyIdempotent

Finds the nearest Minecraft blocks, biomes, or structures around a player, coordinates, or world spawn, returning closest matches first.

Instructions

The nearest blocks, biomes, or structures of some kinds, nearest first. block takes keys or tags (minecraft:diamond_ore, #minecraft:logs, #minecraft:iron_ores) and reads only loaded chunks (those near players), 32 blocks around by default; unloadedChunks says how many in range it skipped. biome asks the world generator, so it reaches unexplored land, 1024 blocks around by default. structure takes keys such as stronghold, ancient_city, trial_chambers, or a prefix such as village that matches every village kind; radius is in chunks, and unexplored keeps only ones nobody found yet. Without x and z it searches around the player (the user's own when WORLDAPI_PLAYER is set), or, for biomes and structures, from the world spawn. Coordinates are private: it needs players:private, or anonymous access the server allows. Structure search blocks the server thread for a moment, so keep the radius modest.

Input Schema

NameRequiredDescriptionDefault
xNo
yNoNeeded for blocks when x and z are given
zNo
kindYes
limitNoResults to return, nearest first; 10 by default
worldNoWorld name; the player's world, or `world`, when left out
playerNoSearch around this player instead of x, y, z
radiusNoBlocks for blocks and biomes, chunks for structures
targetsYesSuch as ["minecraft:diamond_ore", "#minecraft:logs"], ["minecraft:cherry_grove"], or ["village"]
unexploredNoStructures only: only ones nobody has found yet

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv4.1.0

TDQS

A4.2/5.0
Behavior5/5

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

Annotations already declare read-only, idempotent, non-destructive semantics, and the description adds substantially more: `block` only scans loaded chunks (32 by default) and reports skipped chunks via `unloadedChunks`, `biome` reaches unexplored terrain (1024 by default), and structure search blocks the server thread, with a warning to keep radius modest. It also states the permissions needed for coordinates (players:private or anonymous access), which is exactly the beyond-schema context an agent needs.

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

Conciseness4/5

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

It leads with the core purpose and is dense with no filler sentences, but it is one long paragraph mixing target syntax, defaults, permission requirements, and performance warnings, which makes it harder to scan than a short structured layout would be.

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?

With ten parameters, no output schema, and 70% schema coverage, this definition does the heavy lifting on coordinate resolution, defaults, permissions, and performance. It never mentions the `limit` or `world` parameters, and `unloadedChunks` is described without stating that it is a return field, leaving a small gap for a tool this complex.

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?

The description adds meaning well beyond the 70%-covered schema: it gives concrete `targets` syntax per kind (`minecraft:diamond_ore`, `#minecraft:logs`, `village` matching every village kind), default radii for blocks and biomes, and the rules for omitting x/z, including the WORLDAPI_PLAYER fallback and spawn fallback for biomes and structures. It says nothing about `limit` or `world`, which the schema covers only briefly.

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 opening sentence gives a specific verb and resource ('nearest blocks, biomes, or structures of some kinds, nearest first') and the three kind branches are each spelled out. It distinguishes the modes from one another, but does not name sibling tools such as get_block or find_containers to say when those apply instead.

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?

It tells the agent when each kind applies and what each one covers: `block` reads only loaded chunks, `biome` reaches unexplored land via the world generator, and `structure` can filter with `unexplored` to ones nobody found yet. The only missing piece is explicit routing against sibling tools.

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