Skip to main content
Glama

Get Data Catalog

get_data_catalog
Read-only

Retrieve all available data types grouped by MCP tool before requesting time-series or raw records. Use returned type-to-tool mappings and shared user IDs to select valid data sources.

Instructions

Get all data types available for this user, grouped by relevant MCP tool. Includes location, events, user-defined types and annotations, and measurements from connected devices.

Call this before requesting time-series data or raw records, and only use a data type with the tools named in its group. A type shared by another user carries that user's fulcra_userid; pass it to read their data.

Input Schema

NameRequiredDescriptionDefault
nameNoOptional. Filter results by partial, case-insensitive name match.
categoryNoOptional. Filter by category. E.g. "healthkit", "annotations", "sleep", "mindfulness", "user_defined", "base_type".
data_typeNoOptional. Return only the data type with this exact ID. For a user-defined type, this also lists its fields (what record_data takes in `fields`): a type name, or the field's JSON Schema if it has nested fields or rules; plus required_fields. For an annotation, it adds the annotation's own settings: scale and value labels (value_map), kind, unit, defaults, tags and display.
fulcra_useridNoOptional. Only the types this Fulcra user shares with you (your own ID: only your own types).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed14 schema fields changedv1.18.7
    • removedInput schema / properties / category / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / category / default
      Removed value: -null
    • addedInput schema / properties / category / type
      Added value: +"string"
    • removedInput schema / properties / data_type / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / data_type / default
      Removed value: -null
    • changedInput schema / properties / data_type / description
      Previous value: -"Optional. Return only the data type with this exact ID.\nFor a user-defined type, this also lists its fields (what\nrecord_data takes in `fields`): a type name, or the field's JSON\nSchema if it has nested fields or rules; plus required_fields."New value: +"Optional. Return only the data type with this exact ID.\nFor a user-defined type, this also lists its fields (what\nrecord_data takes in `fields`): a type name, or the field's JSON\nSchema if it has nested fields or rules; plus required_fields.\nFor an annotation, it adds the annotation's own settings: scale and\nvalue labels (value_map), kind, unit, defaults, tags and display."
    • addedInput schema / properties / data_type / type
      Added value: +"string"
    • removedInput schema / properties / fulcra_userid / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / fulcra_userid / default
      Removed value: -null
    • addedInput schema / properties / fulcra_userid / type
      Added value: +"string"
    • removedInput schema / properties / name / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / name / default
      Removed value: -null
    • addedInput schema / properties / name / type
      Added value: +"string"
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "result": {
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "result"
      -  ],
      -  "type": "object",
      -  "x-fastmcp-wrap-result": true
      -}New value: +null
  2. Addedv1.1.0

TDQS

A4.6/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 the safety profile is covered. The description still adds non-obvious behavior: results are grouped by MCP tool, the payload includes user-defined types and annotations plus device measurements, and shared types expose a foreign fulcra_userid for reading other users' data. Minor gap: nothing about result size or whether the catalog is paginated.

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 tight paragraphs, front-loaded with what the tool returns, followed by the call-ordering rule and the sharing caveat. No restatement of the name or title and no filler sentences.

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 four optional filter parameters all documented and no output schema, the description carries the return-shape burden and does so at the level of the group/type structure. It stops short of describing the per-entry fields or how large the catalog response is, but an agent has enough to call it correctly and interpret the grouping.

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 coverage is 100%, so the per-parameter baseline is 3. The description adds real semantics beyond that on fulcra_userid: types shared by another user carry that user's ID and passing it reads their data — a behavioral consequence the schema only hints at ('Only the types this Fulcra user shares with you').

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 and resource ('Get all data types available for this user') plus the organizing structure ('grouped by relevant MCP tool') and enumerates the included content areas: location, events, user-defined types, annotations, device measurements. This clearly separates it from the mutation siblings (create/update/archive/restore_data_type) and from consumers like get_time_series and get_records.

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

Usage Guidelines5/5

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

Gives an explicit prerequisite workflow: 'Call this before requesting time-series data or raw records,' which points the agent at get_time_series and get_records as downstream tools. It also adds a hard constraint — only use a data type with the tools named in its group — and explains the cross-user case where a type carries another user's fulcra_userid.

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