Skip to main content
Glama

Package

package
Read-onlyIdempotent

Single package (dataset) by id or name.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNoPackage UUID
urlNoPackage homepage URL
nameNoPackage name/slug
tagsNoTags associated with package
notesNoPackage description
titleNoPackage display title
authorNoAuthor name
groupsNoTheme groups (categories)
versionNoPackage version
resourcesNoDownloadable resources (files)
license_idNoLicense identifier
maintainerNoMaintainer name
author_emailNoAuthor email
organizationNo
license_titleNoLicense display name
maintainer_emailNoMaintainer email
metadata_createdNoISO 8601 creation timestamp
metadata_modifiedNoISO 8601 modification timestamp

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed2 schema fields changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "id": "nswrfs-fire-incidents"
      +  }
      +]
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "author": {
      +      "description": "Author name",
      +      "type": "string"
      +    },
      +    "author_email": {
      +      "description": "Author email",
      +      "type": "string"
      +    },
      +    "groups": {
      +      "description": "Theme groups (categories)",
      +      "items": {
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "id": {
      +      "description": "Package UUID",
      +      "type": "string"
      +    },
      +    "license_id": {
      +      "description": "License identifier",
      +      "type": "string"
      +    },
      +    "license_title": {
      +      "description": "License display name",
      +      "type": "string"
      +    },
      +    "maintainer": {
      +      "description": "Maintainer name",
      +      "type": "string"
      +    },
      +    "maintainer_email": {
      +      "description": "Maintainer email",
      +      "type": "string"
      +    },
      +    "metadata_created": {
      +      "description": "ISO 8601 creation timestamp",
      +      "type": "string"
      +    },
      +    "metadata_modified": {
      +      "description": "ISO 8601 modification timestamp",
      +      "type": "string"
      +    },
      +    "name": {
      +      "description": "Package name/slug",
      +      "type": "string"
      +    },
      +    "notes": {
      +      "description": "Package description",
      +      "type": "string"
      +    },
      +    "organization": {
      +      "properties": {
      +        "id": {
      +          "description": "Organization UUID",
      +          "type": "string"
      +        },
      +        "name": {
      +          "description": "Organization name/slug",
      +          "type": "string"
      +        },
      +        "title": {
      +          "description": "Organization display name",
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "resources": {
      +      "description": "Downloadable resources (files)",
      +      "items": {
      +        "properties": {
      +          "description": {
      +            "description": "Resource description",
      +            "type": "string"
      +          },
      +          "format": {
      +            "description": "File format (e.g. CSV, JSON)",
      +            "type": "string"
      +          },
      +          "id": {
      +            "description": "Resource UUID",
      +            "type": "string"
      +          },
      +          "last_modified": {
      +            "description": "ISO 8601 timestamp",
      +            "type": "string"
      +          },
      +          "name": {
      +            "description": "Resource name",
      +            "type": "string"
      +          },
      +          "size": {
      +            "description": "File size in bytes",
      +            "type": "number"
      +          },
      +          "url": {
      +            "description": "Resource download URL",
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "tags": {
      +      "description": "Tags associated with package",
      +      "items": {
      +        "properties": {
      +          "id": {
      +            "description": "Tag UUID",
      +            "type": "string"
      +          },
      +          "name": {
      +            "description": "Tag name",
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "title": {
      +      "description": "Package display title",
      +      "type": "string"
      +    },
      +    "url": {
      +      "description": "Package homepage URL",
      +      "type": "string"
      +    },
      +    "version": {
      +      "description": "Package version",
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  2. First observed

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds minimal behavioral context beyond stating that it returns a single package; it does not disclose error behavior, response format, or how name lookup works, so it adds little value beyond the annotations.

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

Conciseness3/5

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

The description is a single short sentence, which is concise, but it is under-specified. It omits a verb and provides minimal detail, so while it is brief, it does not earn its place with useful information.

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

Completeness2/5

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

Despite having an output schema and annotations, the description lacks context about what constitutes a 'package', how the id maps to a dataset, and the intended usage scenario. A complete description for this simple tool would need to explicitly state 'Retrieve a package by its id or name' and clarify the parameter semantics.

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

Parameters1/5

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

Schema description coverage is 0%, so the description must compensate. It only says 'by id or name', but the schema has a single 'id' parameter with no explanation of whether 'name' is accepted or how it resolves. This is confusing and adds no meaningful parameter semantics.

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

Purpose2/5

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

The description identifies the resource as a 'package (dataset)' and mentions lookup by id or name, but lacks an explicit verb (e.g., 'get', 'retrieve'), making it unclear whether this is a read or write operation. It also vaguely distinguishes from siblings and conflicts with the schema, which only accepts an 'id' parameter despite the description claiming 'by name'.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. It does not mention any selection criteria, alternatives, or exclusions, leaving the agent to infer usage from the name and description alone.

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.

TDQS

B3.2/5.0
Disambiguation3/5

Most tools have detailed descriptions and distinct purposes, but there is overlap among the question-answering tools (ask_pipeworx, ask_pipeworx_beta, ask_pipeworx_grounded, deep_research) and among the six Polymarket-related tools. An agent could reasonably misselect when choosing between the pipeworx variants or between entity_profile and recent_changes.

Naming Consistency4/5

Tool names consistently use snake_case and most follow a verb_noun or noun pattern, with clear domain prefixes like pipeworx_ and polymarket_. Minor deviations include single-word verbs (search, subscribe) and adjective_noun names (recent_alerts, deep_research), but the overall pattern is predictable.

Tool Count2/5

With 37 tools, the server is well beyond the 25+ threshold, and the bulk of them are unrelated to the 'Datagov Au' name. The actual data.gov.au catalogue is served by just six tools (search, package, resource, organizations, groups, tags), while the rest are Pipeworx, Polymarket, memory, subscription, and utility tools — a grossly bloated and miscategorized surface.

Completeness2/5

For a server named Datagov Au, the CKAN tools only cover read-only catalogue lookups; there are no tools for data.gov.au-specific updates, queries, or subscriptions. Conversely, the Pipeworx router exposes access to 5,502 internal tools, but many of those are not directly callable as MCP tools, leaving a confusing gap where discover_tools returns tools the agent cannot actually invoke.