Skip to main content
Glama

Top Species

top_species
Read-onlyIdempotent

Most-frequently-observed species in a place over a date range. Auto-resolves place name to place_id. Returns ranked species with observation counts and taxonomic info. Great for "what wildlife lives here?" questions.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
yearNoRestrict to a specific year (optional)
placeYesPlace name (country, state, park, etc.)
per_pageNoTop-N species (1-50, default 20)

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
noteNoError note if place could not be resolved
resolvedYesResolved place information
top_speciesYesArray of top-observed species
total_unique_speciesYesTotal unique species count in place

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "place": "Yosemite National Park"
      +  },
      +  {
      +    "per_page": 30,
      +    "place": "Costa Rica",
      +    "year": 2023
      +  }
      +]
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "note": {
      +      "description": "Error note if place could not be resolved",
      +      "type": "string"
      +    },
      +    "resolved": {
      +      "description": "Resolved place information",
      +      "properties": {
      +        "place": {
      +          "properties": {
      +            "id": {
      +              "description": "Place ID",
      +              "type": "number"
      +            },
      +            "name": {
      +              "description": "Place name",
      +              "type": "string"
      +            }
      +          },
      +          "type": "object"
      +        }
      +      },
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "top_species": {
      +      "description": "Array of top-observed species",
      +      "items": {
      +        "properties": {
      +          "common_name": {
      +            "description": "Common name",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "observation_count": {
      +            "description": "Number of observations",
      +            "type": "number"
      +          },
      +          "photo": {
      +            "description": "Photo URL",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "rank": {
      +            "description": "Taxonomic rank",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "scientific_name": {
      +            "description": "Scientific name",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "taxon_id": {
      +            "description": "Taxon ID",
      +            "type": "number"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "total_unique_species": {
      +      "description": "Total unique species count in place",
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "resolved",
      +    "total_unique_species",
      +    "top_species"
      +  ],
      +  "type": "object"
      +}
  2. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already mark it as read-only and idempotent. Description adds that place auto-resolves to ID, which is useful behavioral context beyond 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?

Two concise sentences without fluff, front-loaded with key information.

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?

Despite simplicity, description covers purpose, behavior, and usage. Output schema exists, so no need to detail return values.

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?

Schema has 100% coverage with basic descriptions. Description adds that place auto-resolves to place_id and per_page is 1-50 with default 20, enhancing understanding.

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 retrieves most-frequently-observed species in a place over a date range, auto-resolves place names, and returns ranked data. Distinct from siblings like search_observations.

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 suggests use for 'what wildlife lives here?' questions, implying when to use. Could improve by mentioning when not to use or naming alternatives.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.