Skip to main content
Glama

get_record

Read-onlyIdempotent

Fetch one record by id for a resource_id, whole and untruncated. Use it when the id is already known; where the resource lists get_many among its discover_resources capabilities, search_records or query_records finds one first.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
localesNoLocale codes (`en`, `fr`, ...) to keep in localized fields. Omit it to get every locale the record carries, which is the right default unless one language was asked for. The codes are the keys of a localized field in any record of this collection; a code the environment does not use is not an error, it simply matches nothing.
parentsNoParent placeholders for nested resource_id templates.
populateNoReference and relation fields come back as opaque record keys. Name those fields here and the records they point at are fetched and grafted in place of the key, which costs one call instead of two. Populated records are never shortened, whatever the text limit is.
record_idYesDocument key (_sys.key) to retrieve.
resource_idYesResource identifier from discover_resources.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
foundYes
recordNoNull when `found` is false. Never shortened, whatever the collection's text limit is.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "found": {
      +      "type": "boolean"
      +    },
      +    "record": {
      +      "description": "Null when `found` is false. Never shortened, whatever the collection's text limit is.",
      +      "properties": {
      +        "_sys": {
      +          "properties": {
      +            "created_at": {
      +              "format": "date-time",
      +              "type": "string"
      +            },
      +            "folder": {
      +              "type": "string"
      +            },
      +            "key": {
      +              "type": "string"
      +            },
      +            "relevance": {
      +              "type": [
      +                "number",
      +                "null"
      +              ]
      +            },
      +            "revision": {
      +              "type": "string"
      +            },
      +            "truncated": {
      +              "description": "Present only when this record had text shortened. One entry per field that was cut.",
      +              "items": {
      +                "properties": {
      +                  "field": {
      +                    "description": "Path to the shortened field, `author.bio` for one reached through populate.",
      +                    "type": "string"
      +                  },
      +                  "locale": {
      +                    "type": [
      +                      "string",
      +                      "null"
      +                    ]
      +                  },
      +                  "original_length": {
      +                    "type": "integer"
      +                  }
      +                },
      +                "required": [
      +                  "field",
      +                  "original_length"
      +                ],
      +                "type": "object"
      +              },
      +              "type": "array"
      +            },
      +            "updated_at": {
      +              "format": "date-time",
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "key"
      +          ],
      +          "type": "object"
      +        },
      +        "data": {
      +          "additionalProperties": true,
      +          "description": "The record itself, shaped by the collection schema that describe_resource returns.",
      +          "type": "object"
      +        },
      +        "id": {
      +          "description": "Document key. Pass it to get_record as `record_id`.",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "id",
      +        "data",
      +        "_sys"
      +      ],
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    }
      +  },
      +  "required": [
      +    "found"
      +  ],
      +  "type": "object"
      +}
  2. Changed1 schema field changed
    • addedInput schema / properties / populate / description
      Added value: +"Reference and relation fields come back as opaque record keys. Name those fields here and the records they point at are fetched and grafted in place of the key, which costs one call instead of two. Populated records are never shortened, whatever the text limit is."
  3. Changed1 schema field changed
    • addedInput schema / properties / locales / description
      Added value: +"Locale codes (`en`, `fr`, ...) to keep in localized fields. Omit it to get every locale the record carries, which is the right default unless one language was asked for. The codes are the keys of a localized field in any record of this collection; a code the environment does not use is not an error, it simply matches nothing."
  4. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context beyond those annotations: the returned record is 'whole and untruncated', and populated references are never shortened. Together with the output schema, this gives the agent a clear expectation of what the call returns without overclaiming side effects.

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 with no filler: the first states what the tool does and the second gives the routing condition. The most important usage constraint is front-loaded, and every clause earns its place.

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?

Given the rich annotations, complete parameter schema descriptions, and an output schema, the description covers the remaining contextual gap: when to choose this tool and the completeness guarantee for returned records. Nothing essential is missing for an agent to invoke it correctly.

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?

Schema description coverage is 100%, so the schema itself fully documents record_id, resource_id, locales, parents, and populate. The description adds some semantic emphasis (whole and untruncated, id-based retrieval) but does not need to repeat parameter details. A baseline of 3 is appropriate because the schema carries the parameter documentation 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?

The description names a specific verb and resource ('Fetch one record by id for a resource_id'), adds a concrete behavioral guarantee ('whole and untruncated'), and distinguishes itself from siblings by pointing to search_records/query_records when the id is not known. This clearly separates it from the other read and write tools in the sibling list.

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?

It explicitly states when to use this tool ('Use it when the id is already known') and names the alternatives ('search_records or query_records finds one first') for the case where discovery lists get_many. This is direct, actionable routing guidance rather than a vague description.

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.

Resources