Skip to main content
Glama

Hyreflow

hyreflow_extract_image

Read-only

Put candidate profile photos into a hyreflow artifact page, which can't load images from other sites. Pass dataset_id when the rows came from a dataset (the engine reads every row's photo_url, or a raw AI Ark row's profile.picture.source, itself, up to 500), otherwise urls: the AI Ark and LinkedIn photo links, up to 100. The photos are shrunk and kept for 15 minutes. Returns apply_url: post the finished page to it and get the page back with the photos inside (instruction has the command). skipped counts the links that couldn't be fetched, by reason; those people show initials. Call it only when the user wants photos. Free.

Input Schema

NameRequiredDescriptionDefault
urlsNo
dataset_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / dataset_id
      Added value: +{
      +  "type": "string"
      +}
    • removedInput schema / required
      Removed value: -[
      -  "urls"
      -]
  2. Added

TDQS

A3.9/5.0
Behavior4/5

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

Annotations say readOnlyHint=true and openWorldHint=true, which the description reinforces by being a fetch operation. It goes beyond annotations by disclosing: photos are shrunk and kept for 15 minutes, up to 500 rows or 100 URLs, returns apply_url with an instruction, skipped counts failures by reason, free. The 15-minute retention and rate/size limits are exactly the kind of extra context that matters.

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?

Dense but front-loaded, starting with the core purpose and then the input choice. Multiple clauses are packed into long sentences, making it slightly heavy, but every clause adds distinct behavioral or parameter information.

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

Completeness3/5

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

For a read-only, open-world fetch tool with no output schema, the description covers inputs, limits, retention, return shape, and failure handling reasonably well. However, it doesn't explain the apply_url workflow's relation to a write step or what happens if the page session expires after 15 minutes, leaving a small gap.

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 0%, so the description must carry parameter meaning, and it does: it clarifies what dataset_id triggers (engine reads every row's photo_url or profile.picture.source, up to 500) and what urls should contain (AI Ark and LinkedIn photo links, up to 100), plus the mutual exclusivity. This compensates well for the empty schema.

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

Purpose4/5

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

States a specific verb+resource: putting candidate profile photos into a hyreflow artifact page, with the key constraint that the page can't load images from other sites. This is distinct from siblings like dataset_read or enrich_run, though the description doesn't explicitly name which sibling produces the photo URLs.

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?

Gives a clear condition for use ('Call it only when the user wants photos') and explains the choice between the two parameters: dataset_id when rows came from a dataset, otherwise urls. It doesn't name alternative tools, but the mutual exclusion on inputs is spelled out well.

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.