Skip to main content
Glama

Collect intake results

get_intake_results
Destructive

Retrieve the typed submitted values from a client intake.

Files are returned as signed download URLs that expire after 24 hours.

Secrets (type=secret, e.g. passwords, API keys) are decrypted and included only in the first retrieval. Later calls return first_reveal: false in meta and omit the value, so the user should be ready to receive a secret before this tool is called on an intake that contains one.

Use only_new=true to get only items submitted since the last call (useful in webhook-driven workflows). Use include_pending=true to also return partially filled items.

Returns { results: { : }, meta: { : { type, status, submitted_at, first_reveal? } } }.

For a DECISION item (assignee=owner, type select/multiselect), results holds the current answer and meta..decided_by is "owner" (answered by the account holder) or "agent_proposal" (only a proposal exists). Proposals are returned even without include_pending. A proposal does not bump revision, so only_new returns decisions the account holder has answered or changed since the last call.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
only_newNoReturn only items submitted or updated since the previous get_intake_results call. Default: false.
intake_idYesIntake ID returned by define_intake.
include_pendingNoInclude items not yet submitted (useful for partial progress checks). Default: false.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
metaYesKeyed the same as results.
statusYes
resultsYesKeyed by this intake's own item keys. A value's shape depends on that item's type.
intake_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • removedOutput schema / additionalProperties
      Removed value: -false
    • changedOutput schema / properties / meta / additionalProperties / properties / submitted_at / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "intake_id": {
      +      "type": "string"
      +    },
      +    "meta": {
      +      "additionalProperties": {
      +        "additionalProperties": true,
      +        "properties": {
      +          "decided_by": {
      +            "description": "Only present for an assignee=owner decision item.",
      +            "enum": [
      +              "owner",
      +              "agent_proposal"
      +            ],
      +            "type": "string"
      +          },
      +          "first_reveal": {
      +            "description": "Only present for type=secret: true on the call that reveals the plaintext value, false after.",
      +            "type": "boolean"
      +          },
      +          "status": {
      +            "enum": [
      +              "pending",
      +              "submitted",
      +              "needs_revision",
      +              "approved"
      +            ],
      +            "type": "string"
      +          },
      +          "submitted_at": {
      +            "type": "string"
      +          },
      +          "type": {
      +            "enum": [
      +              "text",
      +              "longtext",
      +              "file",
      +              "file_list",
      +              "image",
      +              "color_list",
      +              "select",
      +              "multiselect",
      +              "boolean",
      +              "url",
      +              "secret",
      +              "structured"
      +            ],
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "type",
      +          "status"
      +        ],
      +        "type": "object"
      +      },
      +      "description": "Keyed the same as results.",
      +      "type": "object"
      +    },
      +    "results": {
      +      "additionalProperties": true,
      +      "description": "Keyed by this intake's own item keys. A value's shape depends on that item's type.",
      +      "type": "object"
      +    },
      +    "status": {
      +      "enum": [
      +        "draft",
      +        "sent",
      +        "in_progress",
      +        "completed",
      +        "archived"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "intake_id",
      +    "status",
      +    "results",
      +    "meta"
      +  ],
      +  "type": "object"
      +}
  3. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations flag destructiveHint=true, readOnlyHint=false, and idempotentHint=false, and the description explains exactly why: secrets are decrypted and included only on the first call, later calls omit the value with first_reveal: false; files expire after 24 hours; and proposals are returned without include_pending yet don't bump revision, so they don't trigger only_new. This is rich behavioral disclosure fully consistent with 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.

Conciseness4/5

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

The description is lengthy but well-structured: the purpose is front-loaded, and each paragraph addresses one distinct concern (files, secrets, flags, return shape, decision items). The explicit 'Returns { results ... }' block is partially redundant given the stated output schema, but every sentence carries distinct, non-fluff information that an agent needs.

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?

For a tool with this much behavioral nuance — one-time secret reveal, signed URL expiry, and the interplay of proposals with only_new — the description covers the full calling surface: return shape, parameter effects, side effects, and edge cases like decided_by being 'owner' versus 'agent_proposal.' Nothing an agent needs to call it correctly is missing.

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 a baseline of 3 applies. The description adds real meaning beyond the schema: it explains only_new's 'since the last call' semantics and the revision/proposal nuance that affects it, and clarifies include_pending as partial-progress inclusion. intake_id is already self-explanatory from the schema, so the added value is concentrated but meaningful.

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 opening line 'Retrieve the typed submitted values from a client intake' uses a specific verb and resource, and it clearly distinguishes the tool from siblings like get_intake_status (status vs. values) and list_intakes. The remainder of the description reinforces exactly what data the tool returns (results plus meta), leaving no ambiguity about its core function.

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?

The description gives concrete usage context: only_new is positioned 'useful in webhook-driven workflows,' include_pending is for 'partial progress checks,' and a precondition warns the user to be ready to receive a secret. However, it never names an alternative sibling or states when not to use this tool (e.g., versus get_intake_status), so explicit tool-routing guidance is missing.

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