Skip to main content
Glama

Collect intake results

get_intake_results
Destructive

Retrieve typed values submitted through a client intake, including decrypted secrets on first access and 24-hour signed file URLs. Use filters to get only new or pending submissions for webhook workflows.

Instructions

Retrieve the typed submitted values from a client intake.

Files are returned as signed URLs valid for 24 hours — download them promptly or store the URL for reuse within that window.

Secrets (type=secret, e.g. passwords, API keys) are decrypted and returned in plaintext on the FIRST call only. After the first retrieval the secret is marked as read: subsequent calls return first_reveal: false in meta and omit the value. Store secrets immediately before proceeding — you cannot retrieve them again.

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 (assignee=owner, type select/multiselect) results holds the answer currently standing and meta..decided_by says whose it is: "owner" once a person has settled it, "agent_proposal" while it is still your own pick. A proposed decision is returned even without include_pending — you need back the assumption you are building on. It does not bump revision, so an only_new read surfaces exactly the decisions a person has since answered or changed.

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.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.1

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already signal non-read-only and destructive behavior, and the description richly explains why: secrets are decrypted and revealed in plaintext only on the first call, then marked read with first_reveal:false and the value omitted. It also discloses the 24-hour signed-URL validity, the decision semantics (decided_by owner vs. agent_proposal), and the fact that reads do not bump revision. This goes well beyond the annotation hints and matches them consistently (no contradiction).

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 definition is long (five paragraphs) but every section earns its place: base retrieval, signed URLs, the one-time secret reveal, the parameter flags, and the subtle decision behavior. The core purpose is front-loaded in the first sentence. The decision paragraph is dense but the underlying semantics are nuanced enough to warrant the detail; it could be tightened slightly without loss.

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?

There is no output schema, so the description correctly compensates by spelling out the return shape ({ results: {...}, meta: {...} }) including the meta sub-fields type/status/submitted_at/first_reveal and the decided_by field. Combined with the schema's parameter documentation, an agent has what it needs to call correctly. Minor gaps (no explicit error conditions or behavior when intake_id is invalid) keep it from a 5.

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 baseline is 3. The description adds meaningful extra semantics beyond the schema: only_new's interaction with revision (a read 'does not bump revision', so only_new surfaces exactly the decisions a person has since answered or changed) and the relationship between include_pending and proposed decisions. This adds real signal beyond the bare property definitions.

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 sentence 'Retrieve the typed submitted values from a client intake' states a specific verb, resource, and scope. It is clearly distinct from siblings like get_intake_status (status vs. values) and list_intakes (listing vs. retrieving a specific intake's submitted data). An agent can separate it from alternatives without opening a schema.

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 provides concrete usage context: only_new=true for webhook-driven workflows, include_pending=true for partial progress, and an explicit explanation of when a decision result is returned even without include_pending ('you need back the assumption you are building on'). It does not explicitly name alternative tools to avoid, but the purpose is sufficiently distinct that selection is unambiguous.

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