Skip to main content
Glama
tibiawiki-mcp
by tibia-sh

tibia_find_npcs

Read-only

Locate NPCs by city, job, or the items they buy and sell to answer questions like who in Thais buys a Dragon Shield.

Instructions

Find NPCs by city, job and the items they buy or sell, e.g. "who in Thais buys Dragon Shield". tibia_get has the rest.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "tibia_find_npcs"
  }
}

Input Schema

NameRequiredDescriptionDefault
jobNoExact, any case, e.g. "Shopkeeper". Any of an NPC's jobs.
buysNoExact item title, any case.
cityNoExact, any case, e.g. "Thais".
sortNotitle
limitNo
sellsNoExact item title, any case.
cursorNo
include_inactiveNoInclude inactive NPCs, and inactive items for buys and sells.

Output Schema

NameRequiredDescriptionDefault
resultsYes
nextCursorNo
totalMatchesYes
indexGeneratedAtYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.22.0

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered by structured data. The description adds nothing about the 100-result cap, cursor-based pagination, or the fact that all filters are optional and thus an unfiltered call returns a truncated list — behaviorally relevant facts an agent would want before calling.

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, both load-bearing: the first states what to search and gives a representative query, the second routes elsewhere. The filter dimensions are front-loaded before the example, and there is no filler.

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?

An output schema exists, so return-value explanation is rightly omitted, and the sibling pointer covers the adjacent-tool question. The remaining gap is operational: with 8 optional params, no required ones, and a hard limit of 100, the description never mentions pagination via cursor or how filters combine, which an agent needs to avoid under-querying.

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 description names the four semantically important filters (city, job, buys, sells) in natural language, reinforcing the exact-match, any-case semantics the schema documents. It says nothing about sort, limit, cursor, or include_inactive, and with schema coverage at 63% those gaps persist. This is the baseline-3 case where the schema carries most of the burden.

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?

States a specific verb (Find) and resource (NPCs) plus the three filter dimensions that define the tool: city, job, and items bought/sold. The example query "who in Thais buys Dragon Shield" makes the purpose concrete, and the pointer to tibia_get draws a clear boundary against the catch-all sibling.

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 example query effectively demonstrates the intended use pattern, and "tibia_get has the rest" tells the agent where to go for NPC data not covered here. However, it does not address the overlapping sibling tibia_where_to_sell, which handles a near-identical 'who sells item X' question, leaving that routing decision to inference.

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