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

tibia_find_creatures

Read-only

Filter Tibia creatures by experience, hitpoints, boss status, and elemental weaknesses or resistances to find targets matching your hunt or bestiary criteria.

Instructions

Find Tibia creatures matching stat filters. Damage modifiers are percentages where 100 is neutral: "weak_to" means the creature takes MORE than 100% damage from that element, "resistant_to" means less. Use this for questions like "which creatures are weak to fire and give over 500 experience". Behaviour filters skip creatures whose value is unrecorded.

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

Input Schema

NameRequiredDescriptionDefault
sortNoexperience, hitpoints and gold_per_kill: highest first.experience
limitNo
cursorNo
is_bossNo
weak_toNoElements the creature takes extra damage from.
pushableNo
race_idsNoRace ID, any listed. Boss phases can share one.
summonableNotrue: summon cost above 0. false: 0.
paralysableNo
convinceableNotrue: convince cost above 0. false: 0.
resistant_toNo
hitpoints_maxNoCreatures whose hitpoints are unrecorded are excluded from this filter.
hitpoints_minNoCreatures whose hitpoints are unrecorded are excluded from this filter.
bestiary_classNoe.g. "Dragon", "Human".
bestiary_levelNoCreatures with no recorded bestiary level are excluded from this filter.
experience_maxNo
experience_minNo
sees_invisibleNo
include_inactiveNo
location_containsNoSubstring of the location text.

Output Schema

NameRequiredDescriptionDefault
resultsYes
nextCursorNo
totalMatchesYes
indexGeneratedAtYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv0.22.0
    • addedInput schema / properties / race_ids
      Added value: +{
      +  "description": "Race ID, any listed. Boss phases can share one.",
      +  "items": {
      +    "maximum": 9007199254740991,
      +    "minimum": -9007199254740991,
      +    "type": "integer"
      +  },
      +  "maxItems": 100,
      +  "minItems": 1,
      +  "type": "array"
      +}
    • addedOutput schema / properties / results / items / properties / articleId
      Added value: +{
      +  "type": "number"
      +}
    • changedOutput schema / properties / results / items / properties / runsAt / description
      Previous value: -"Hit points at which it flees. 0: never flees."New value: +"Hit points at which it flees. 0: never flees. null: unknown."
    • changedOutput schema / properties / results / items / required
      Previous value: -[
      -  "title",
      -  "name",
      -  "hitpoints",
      -  "experience",
      -  "bestiaryClass",
      -  "isBoss",
      -  "modifiers",
      -  "runsAt",
      -  "seesInvisible",
      -  "paralysable",
      -  "pushable",
      -  "summonCost",
      -  "convinceCost",
      -  "goldPerKill",
      -  "raceId"
      -]New value: +[
      +  "title",
      +  "articleId",
      +  "name",
      +  "hitpoints",
      +  "experience",
      +  "bestiaryClass",
      +  "isBoss",
      +  "modifiers",
      +  "runsAt",
      +  "seesInvisible",
      +  "paralysable",
      +  "pushable",
      +  "summonCost",
      +  "convinceCost",
      +  "goldPerKill",
      +  "raceId"
      +]
  2. Changed2 schema fields changedv0.14.0
    • addedOutput schema / properties / results / items / properties / raceId
      Added value: +{
      +  "description": "Tibia client race ID, not unique: some creatures share one, such as boss phases. null: the wiki records none.",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / results / items / required
      Previous value: -[
      -  "title",
      -  "name",
      -  "hitpoints",
      -  "experience",
      -  "bestiaryClass",
      -  "isBoss",
      -  "modifiers",
      -  "runsAt",
      -  "seesInvisible",
      -  "paralysable",
      -  "pushable",
      -  "summonCost",
      -  "convinceCost",
      -  "goldPerKill"
      -]New value: +[
      +  "title",
      +  "name",
      +  "hitpoints",
      +  "experience",
      +  "bestiaryClass",
      +  "isBoss",
      +  "modifiers",
      +  "runsAt",
      +  "seesInvisible",
      +  "paralysable",
      +  "pushable",
      +  "summonCost",
      +  "convinceCost",
      +  "goldPerKill",
      +  "raceId"
      +]
  3. Changed2 schema fields changedv0.13.0
    • addedOutput schema / properties / results / items / properties / name
      Added value: +{
      +  "description": "Name as the game prints it.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / results / items / required
      Previous value: -[
      -  "title",
      -  "hitpoints",
      -  "experience",
      -  "bestiaryClass",
      -  "isBoss",
      -  "modifiers",
      -  "runsAt",
      -  "seesInvisible",
      -  "paralysable",
      -  "pushable",
      -  "summonCost",
      -  "convinceCost",
      -  "goldPerKill"
      -]New value: +[
      +  "title",
      +  "name",
      +  "hitpoints",
      +  "experience",
      +  "bestiaryClass",
      +  "isBoss",
      +  "modifiers",
      +  "runsAt",
      +  "seesInvisible",
      +  "paralysable",
      +  "pushable",
      +  "summonCost",
      +  "convinceCost",
      +  "goldPerKill"
      +]
  4. Changed16 schema fields changedv0.10.0
    • addedInput schema / properties / bestiary_level
      Added value: +{
      +  "description": "Creatures with no recorded bestiary level are excluded from this filter.",
      +  "enum": [
      +    "harmless",
      +    "trivial",
      +    "easy",
      +    "medium",
      +    "hard",
      +    "challenging"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / convinceable
      Added value: +{
      +  "description": "true: convince cost above 0. false: 0.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / paralysable
      Added value: +{
      +  "type": "boolean"
      +}
    • addedInput schema / properties / pushable
      Added value: +{
      +  "type": "boolean"
      +}
    • addedInput schema / properties / sees_invisible
      Added value: +{
      +  "type": "boolean"
      +}
    • addedInput schema / properties / sort / description
      Added value: +"experience, hitpoints and gold_per_kill: highest first."
    • changedInput schema / properties / sort / enum
      Previous value: -[
      -  "experience",
      -  "hitpoints",
      -  "title"
      -]New value: +[
      +  "experience",
      +  "hitpoints",
      +  "title",
      +  "gold_per_kill"
      +]
    • addedInput schema / properties / summonable
      Added value: +{
      +  "description": "true: summon cost above 0. false: 0.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / results / items / properties / convinceCost
      Added value: +{
      +  "description": "Mana. 0: cannot be convinced.",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / results / items / properties / goldPerKill
      Added value: +{
      +  "description": "Estimated gross loot value at NPC prices. Drops without a recorded chance are left out, and items that sell only on the market count as 0.",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / results / items / properties / paralysable
      Added value: +{
      +  "type": [
      +    "boolean",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / results / items / properties / pushable
      Added value: +{
      +  "type": [
      +    "boolean",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / results / items / properties / runsAt
      Added value: +{
      +  "description": "Hit points at which it flees. 0: never flees.",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / results / items / properties / seesInvisible
      Added value: +{
      +  "type": [
      +    "boolean",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / results / items / properties / summonCost
      Added value: +{
      +  "description": "Mana. 0: cannot be summoned.",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / results / items / required
      Previous value: -[
      -  "title",
      -  "hitpoints",
      -  "experience",
      -  "bestiaryClass",
      -  "isBoss",
      -  "modifiers"
      -]New value: +[
      +  "title",
      +  "hitpoints",
      +  "experience",
      +  "bestiaryClass",
      +  "isBoss",
      +  "modifiers",
      +  "runsAt",
      +  "seesInvisible",
      +  "paralysable",
      +  "pushable",
      +  "summonCost",
      +  "convinceCost",
      +  "goldPerKill"
      +]
  5. Changed15 schema fields changedv0.5.0
    • removedInput schema / additionalProperties
      Removed value: -{}
    • addedInput schema / properties / bestiary_class
      Added value: +{
      +  "description": "e.g. \"Dragon\", \"Human\".",
      +  "type": "string"
      +}
    • addedInput schema / properties / cursor
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / experience_max
      Added value: +{
      +  "maximum": 9007199254740991,
      +  "minimum": -9007199254740991,
      +  "type": "integer"
      +}
    • addedInput schema / properties / experience_min
      Added value: +{
      +  "maximum": 9007199254740991,
      +  "minimum": -9007199254740991,
      +  "type": "integer"
      +}
    • addedInput schema / properties / hitpoints_max
      Added value: +{
      +  "description": "Creatures whose hitpoints are unrecorded are excluded from this filter.",
      +  "maximum": 9007199254740991,
      +  "minimum": -9007199254740991,
      +  "type": "integer"
      +}
    • addedInput schema / properties / hitpoints_min
      Added value: +{
      +  "description": "Creatures whose hitpoints are unrecorded are excluded from this filter.",
      +  "maximum": 9007199254740991,
      +  "minimum": -9007199254740991,
      +  "type": "integer"
      +}
    • addedInput schema / properties / include_inactive
      Added value: +{
      +  "default": false,
      +  "type": "boolean"
      +}
    • addedInput schema / properties / is_boss
      Added value: +{
      +  "type": "boolean"
      +}
    • addedInput schema / properties / limit
      Added value: +{
      +  "default": 25,
      +  "maximum": 100,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / location_contains
      Added value: +{
      +  "description": "Substring of the location text.",
      +  "type": "string"
      +}
    • addedInput schema / properties / resistant_to
      Added value: +{
      +  "items": {
      +    "enum": [
      +      "physical",
      +      "earth",
      +      "fire",
      +      "ice",
      +      "energy",
      +      "death",
      +      "holy",
      +      "drown",
      +      "lifedrain",
      +      "healing"
      +    ],
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / sort
      Added value: +{
      +  "default": "experience",
      +  "enum": [
      +    "experience",
      +    "hitpoints",
      +    "title"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / weak_to
      Added value: +{
      +  "description": "Elements the creature takes extra damage from.",
      +  "items": {
      +    "enum": [
      +      "physical",
      +      "earth",
      +      "fire",
      +      "ice",
      +      "energy",
      +      "death",
      +      "holy",
      +      "drown",
      +      "lifedrain",
      +      "healing"
      +    ],
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "https://json-schema.org/draft/2020-12/schema",
      +  "additionalProperties": false,
      +  "properties": {
      +    "indexGeneratedAt": {
      +      "type": "string"
      +    },
      +    "nextCursor": {
      +      "type": "string"
      +    },
      +    "results": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "bestiaryClass": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "experience": {
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "hitpoints": {
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "isBoss": {
      +            "type": "boolean"
      +          },
      +          "modifiers": {
      +            "additionalProperties": {
      +              "type": [
      +                "number",
      +                "null"
      +              ]
      +            },
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          },
      +          "title": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "title",
      +          "hitpoints",
      +          "experience",
      +          "bestiaryClass",
      +          "isBoss",
      +          "modifiers"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "totalMatches": {
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "results",
      +    "totalMatches",
      +    "indexGeneratedAt"
      +  ],
      +  "type": "object"
      +}
  6. First observedv0.1.0

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds genuinely useful behavioral context the annotations don't: the percentage convention (100 = neutral) and that behaviour filters silently exclude creatures with unrecorded values — an important result-shaping caveat.

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 tight sentences with the core purpose front-loaded, followed by the one semantic convention an agent would otherwise get wrong, then a concrete example. No filler or repetition.

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?

Output schema exists, so return values needn't be explained, and the mutation/permission burden is nil given readOnlyHint. The only gap is pagination/default-limit behavior for a 20-filter tool, but the critical filter semantics are all covered.

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?

With 20 params at 50% schema coverage, the description earns credit for disambiguating the least obvious ones: the weak_to/resistant_to percentage semantics and the skip-on-unrecorded behavior that also applies to hitpoints and bestiary_level. It leaves sort, limit, cursor, is_boss, pushable, and race_ids to the schema, but those are largely self-documenting.

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+resource ("Find Tibia creatures") plus the scope ("matching stat filters"), which cleanly separates it from siblings like tibia_find_items, tibia_find_houses, and tibia_find_quests. An agent can route to it without opening the schema.

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?

Gives a concrete use-case example ("which creatures are weak to fire and give over 500 experience") that maps filters to a real question, plus the caveat that behaviour filters skip unrecorded values. It doesn't name alternatives or explicitly say when NOT to use it, so it stops short of a 5.

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