Skip to main content
Glama

Attach this agent to a person's fmrl account

fmrl_attach

Create a 10-minute one-time link and comparison code that lets a person attach this machine's fmrl agent by opening the link and pressing Attach.

Instructions

Get a one-time link, good for 10 minutes, that attaches this machine's fmrl agent to the person who opens it and presses Attach, with a short code the page shows beside it for them to compare. Only call it when the person asked to attach the agent; to check whether it is attached, use fmrl_whoami. Relay the link unchanged, with its #r= fragment, and the code; never open the link yourself. The page names this machine by its host name unless machine is given. When the agent is already attached, no link is made: the answer says so, and the call only gives the agent its machine name when it has none yet or the person named another, so their fmrl account shows it beside the agent.

Input Schema

NameRequiredDescriptionDefault
machineNoThe machine name to show on the page; defaults to this computer's host name.

Output Schema

NameRequiredDescriptionDefault
codeNoThe code fmrl.site shows beside the link, for the person to compare.
machineNoThe machine name the link carries, as fmrl.site cleaned it.
renamedNoAlready attached: true when this call gave the agent its machine name, so the person's account now shows it; false when that update failed. Absent when the name was already right.
attachedYesTrue: this agent is already attached and nothing was minted.
attach_urlNoThe one-time link, with the key ring when available. Relay it unchanged.
expires_atNo
attached_atNo
attached_viaNo
canvases_urlNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.17.8
    • removedInput schema / additionalProperties
      Removed value: -false
  2. First observedv0.17.6

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only declare the generic profile (not read-only, open-world, not idempotent, non-destructive); the description adds the operational specifics that actually matter: the link is one-time, expires in 10 minutes, requires a human to press Attach, ships with a comparison code, and carries a #r= fragment that must be relayed unchanged. It also discloses the non-obvious side effect in the already-attached path (the call may assign a machine name) and forbids the agent from opening the link itself.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

The critical constraints (one-time link, 10 minutes, relay unchanged, never open it) are front-loaded, which is good. But the closing sentence is a convoluted run-on ('...only gives the agent its machine name when it has none yet or the person named another, so their fmrl account shows it beside the agent') that takes several reads to parse and dilutes an otherwise tight definition.

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?

An output schema exists, so return values need not be spelled out, and the description still covers the security-critical relay instructions and the already-attached branch. The only shortfall is that the machine-name behavior in that branch is stated ambiguously, leaving the agent unsure what the call actually does in that case.

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 coverage is 100% and the single machine parameter already documents its purpose and host-name default, so the baseline is 3. The description mostly restates that default, adding only the detail that the name appears on the generated page and that it may be recorded against the account when the agent is already attached.

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 concrete verb and artifact: it gets a one-time, 10-minute link that attaches this machine's fmrl agent to the person who opens it. It also names the sibling it is not ('to check whether it is attached, use fmrl_whoami'), so an agent can distinguish it from the other fmrl_* tools without opening any schema.

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 gate ('Only call it when the person asked to attach the agent') and an explicit alternative for the adjacent need (fmrl_whoami for checking attachment status). It also covers the already-attached case, telling the agent no link will be produced, which prevents a retry loop.

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