Skip to main content
Glama
tina4stack

Claude Pascal MCP Server

by tina4stack

paserver_get

Pulls files or directories from a remote PAServer Mac to your local machine over SSH, avoiding broken paclient and preserving .app bundles intact.

Instructions

Pull a file or directory from the PAServer remote host to this box.

PREFER passing ssh_user: that routes the transfer over SSH (tar stream), which is the reliable path. PAClient 37.1's own --get is broken on Windows (it mangles the local destination and silently writes nothing — issue #12), and the SSH path also pulls directory bundles (.app / .dSYM) intact, which is what you actually want back after an iOS/macOS build.

Without ssh_user it falls back to paclient --get, kept only for hosts where SSH isn't set up — expect it to fail on paclient 37.1.

Args: profile: Connection Profile name (resolves the Mac host). remote_path: Path on the Mac — either absolute, or relative to the PAServer scratch root (e.g. "CuttlefishV2.app" or "logs/crash.txt"). Relative paths are resolved against the scratch dir for the SSH transport. local_dir: Local directory to extract into. Created if missing. ssh_user: Mac SSH login (e.g. "andrevanzuydam"). Enables the reliable SSH transport. Not stored in PAServer profiles, so you supply it. Requires one-time ssh-copy-id <user>@<host>. ssh_key_path: Optional explicit SSH private key path. timeout: Seconds before the transfer is killed (default 300; bump for large .app bundles). studio_root: Optional Studio install root.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
profileYes
timeoutNo
ssh_userNo
local_dirYes
remote_pathYes
studio_rootNo
ssh_key_pathNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.13.6

TDQS

A5/5.0
Behavior5/5

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

With no annotations present, the description carries the full behavioral disclosure burden, and it delivers: it reveals that paclient --get silently writes nothing on Windows, that SSH preserves directory bundles like .app/.dSYM, that relative paths resolve against the scratch root, that local_dir is created if missing, and that SSH requires one-time ssh-copy-id setup. These are the exact behavioral traits an agent needs to predict side effects and failure modes.

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

Conciseness5/5

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

The description is long but every sentence earns its place: transport rationale, failure warnings, path resolution semantics, and per-parameter details are all load-bearing. The Args block is cleanly structured and front-loads the most critical guidance (prefer ssh_user) before the parameter list. No fluff or redundancy.

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 7-parameter transfer tool with zero annotations and no schema descriptions, the description covers all necessary invocation context: transport selection, failure expectations, path resolution, directory creation, authentication prerequisite, timeout guidance, and optional parameters. The output schema exists, so return-value documentation is not required. Nothing an agent needs to call this tool correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must fully compensate for the bare schema properties. It explains every parameter meaningfully: profile resolves the Mac host, remote_path can be absolute or relative with concrete examples, local_dir is created if missing, ssh_user enables the SSH transport and is not stored in profiles, ssh_key_path is the explicit key, timeout defaults to 300 seconds and should be bumped for large bundles, and studio_root is optional. This far exceeds what the schema alone provides.

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 description opens with a specific verb and resource: 'Pull a file or directory from the PAServer remote host to this box.' It clearly differentiates the tool's direction and scope from siblings like paserver_put, and adds detail about the transport mechanism (SSH vs paclient). An agent can immediately understand what this tool does and how it relates to the surrounding PAServer tool family.

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?

The description explicitly instructs the agent to prefer ssh_user because it routes over the reliable SSH tar-stream path, and warns that the fallback paclient --get is broken on Windows 37.1. It states exactly when the fallback is acceptable ('kept only for hosts where SSH isn't set up') and even flags expected failure. This is exemplary when-to-use guidance that directly steers tool selection.

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