Skip to main content
Glama

Authenticate with a device

pi_device_authenticate

Authenticate to a Raspberry Pi or SSH device, verify credentials, cache the connection, and optionally save the password to the system keychain.

Instructions

Authenticate to a Raspberry Pi or SSH device, verify credentials, cache the connection, and optionally save the password to the system keychain.

Input Schema

NameRequiredDescriptionDefault
passwordYesSSH password.
usernameNoSSH username (defaults to "pi").
device_idYesIP address, hostname, MAC address, or device identifier of the target Raspberry Pi / SSH device.
save_passwordNoSave password to macOS Keychain or Linux Secret Service.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.7/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false and destructiveHint=false, so the description's job is to explain the non-destructive side effects, and it does: credentials are verified, the connection is cached, and the password may be persisted to macOS Keychain or Linux Secret Service. It does not cover cache lifetime/invalidation or failure behavior (bad password, unreachable host), which keeps it below a 5.

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?

A single well-formed sentence that front-loads the action and then lists consequences in order of importance. No padding, though the payoff would be higher if the same length were spent on when-to-use guidance.

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?

No output schema exists, so the description must carry enough for correct invocation, and it does name the key side effects an agent must be aware of (caching, keychain persistence). Remaining gaps are moderate: no mention of what a failed authentication returns or how long a cached session stays valid, both relevant for a stateful auth tool.

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 device_id, username, password and save_password are already documented with defaults. The description adds only a restatement of the save_password behavior, no extra semantics such as supported device_id formats beyond the schema or interaction between username default and keychain storage.

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?

The description gives a specific verb ('Authenticate') and resource ('Raspberry Pi or SSH device') and enumerates the resulting effects (verify credentials, cache connection, optional keychain save). It is clearly distinct from siblings like pi_command_run or pi_devices_list, though it never names an alternative explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: the agent can infer this is the credential-establishment step that precedes device operations. There is no statement of when to use it versus alternatives, no prerequisites (e.g. whether the device must be reachable or already known to pi_devices_list), and no guidance on avoiding re-authentication when a cached connection exists.

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