Skip to main content
Glama

Server Details

Drive and test your React Native and Expo apps end-to-end on iOS and Android. Supports real devices, simulators, and emulators. Snapshots, taps, typing, swipes, screenshots, deep links, reloads, builds and runtime errors.

Ownership verified
Status
Healthy
Uptime
98.6% over 22 days
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP ยท MCP 2025-11-25
URL

TDQS

A4.2/5.0

Scored across 6 tools

Disambiguation4/5

Most tools have clearly distinct purposes (get_profile, remote_connections, remote_cancel, remote_status). However, remote_show_recording and remote_show_screenshot share nearly identical mechanics (poll status, then call once with connection+operationId) and are only separated by the operation type they render, which could invite misselection.

Naming Consistency4/5

Five of six tools share a clean 'remote_verb_noun' pattern (remote_cancel, remote_connections, remote_show_recording, remote_show_screenshot, remote_status). The lone get_profile breaks the remote_ prefix, a minor deviation but otherwise readable and predictable.

Tool Count5/5

Six tools is well-scoped for a companion-session/operation-management surface, and each tool earns its place (identify account, list connections, check status, cancel, and two result viewers). No filler or redundancy in count.

Completeness3/5

The surface can inspect, cancel, and display operation results, but there is no tool to enumerate existing operations, forcing the agent to already know an operationId before calling remote_status. Starting operations (ceraph_record_run, screen_screenshot) is also absent, implying a notable lifecycle gap.

Available Tools

6 tools
get_profileA
Read-onlyIdempotent
Inspect

Return the signed-in Ceraph account ID. No local pairing is needed for this check; app access requires separate local pairing consent.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
idYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already establish readOnly, idempotent, non-destructive, and non-openWorld behavior. The description adds meaningful auth context beyond that: no local pairing required for this call, while app access requires separate local pairing consent. That is genuine added behavioral value.

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?

Two short sentences, front-loaded with the return value, and the secondary pairing caveat follows. No filler or repetition.

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 no elaboration, and the description confirms the returned value plus the pairing precondition. It is nearly complete for such a simple zero-parameter read tool, though the phrasing around 'local pairing consent' remains slightly opaque.

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?

The tool takes zero parameters, so the schema cannot be deficient and the baseline is 4. There is nothing for the description to clarify on the parameter side.

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 specific verb and resource: 'Return the signed-in Ceraph account ID.' This is unambiguous and clearly distinct from the remote_* connection siblings, which deal with remote sessions rather than local account identity.

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?

The description implies when it can be used by noting 'no local pairing is needed for this check,' which is a useful precondition, but it gives no explicit when-to-use guidance or alternatives relative to the sibling tools. Usage is left to inference.

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

remote_cancelA
Idempotent
Inspect

End the companion session to cancel an active operation. Returns outcome_unknown because effects already dispatched cannot be undone; the human must reconnect locally before more work. If the operation has already finished, returns its receipt without ending the session.

NameRequiredDescriptionDefault
connectionYesApproved connection ID from remote_connections. Use the original connection for an existing operation; refresh after reconnecting.
operationIdYesOperation UUID. Create a new UUID for new work; reuse the original UUID to poll, cancel, or recover a lost response without repeating effects.

Output Schema

NameRequiredDescription
statusYesExecution state. completed means a native result exists, not that the native tool succeeded.
progressNo
operationIdYesOperation UUID. Create a new UUID for new work; reuse the original UUID to poll, cancel, or recover a lost response without repeating effects.
resultAvailableNoWhether the completed native result remains available through remote_status.

TDQS

A4.2/5.0
Behavior5/5

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

Goes well beyond the annotations (readOnly=false, destructive=false, idempotent=true) by disclosing non-obvious traits: the outcome_unknown result when effects are already dispatched, the fact that those effects are irreversible, the requirement that the human reconnect locally before further work, and the no-op end condition when the operation already finished. None of this is derivable from the structured fields.

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?

Three tight sentences with zero filler: the action leads, followed by the outcome caveat and then the finished-operation branch. Information is front-loaded and nothing is repeated.

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?

For a mutation tool with annotations and an output schema present, the description covers the critical semantics: irreversibility, the unknown-outcome case, the reconnection prerequisite, and the already-finished shortcut. The only omission is routing guidance relative to the sibling status tool, which keeps it short of a 5.

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%, and both parameters already carry detailed guidance in the schema (connection reuse/refresh, operationId creation vs reuse). The description adds no parameter-level meaning of its own, so the baseline of 3 applies.

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 specific verb and resource combination ('End the companion session to cancel an active operation') that no sibling tool covers, distinguishing it cleanly from get_profile, remote_connections, and remote_status. An agent can tell immediately this is the termination/cancel path.

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 context is implied ('cancel an active operation') but there is no explicit when-to-use vs when-not guidance, and no pointer to remote_status for polling or checking an operation before cancelling. The finished-operation case is described as behavior rather than as a selection rule, so guidance remains inferential.

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

remote_connectionsA
Read-onlyIdempotent
Inspect

List locally approved, currently connected Ceraph companions and catalog hashes for this account and profile. Choose a connection explicitly for every tool operation. No connections means the human must pair locally first.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
connectionsYesCurrently connected, locally approved companions.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds real value beyond them: the results are limited to 'locally approved' connections, scoped to a specific account/profile, and the zero-result case requires human pairing before anything can proceed.

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?

Three short sentences, front-loaded with what is returned, followed by how to use it and the failure mode. No filler 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 zero-parameter, read-only listing tool with an output schema (so return shape is documented elsewhere) and full annotation coverage, the description supplies everything an agent needs: scope, mandatory usage pattern, and empty-result handling.

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?

The tool takes no parameters, so the baseline is 4; there is nothing for the description to clarify or misstate. It correctly implies the account/profile context is implicit rather than passed in.

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 (List) and resource (locally approved, currently connected Ceraph companions and catalog hashes), scoped to account and profile. An agent can tell it is a discovery/listing tool, though it does not explicitly contrast itself with the sibling remote_status, which could plausibly overlap.

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 clear imperative context: 'Choose a connection explicitly for every tool operation,' making this a prerequisite/entry-point tool, and flags the empty-state path ('the human must pair locally first'). It stops short of naming when NOT to use it or pointing to an alternative sibling.

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

remote_show_recordingA
Read-onlyIdempotent
Inspect

Present the MP4 from a completed ceraph_record_run operation. Poll remote_status for completion first, then call once with the original connection and operationId. The player loads automatically and stays paused until Play. Tool success does not confirm rendering or playback; do not infer rendering failure from missing confirmation. No new recording is made. Compatible MCP Apps clients show a player; other clients can open previewUrl to watch without downloading. Saving is optional. Availability follows the returned expiresAt and requires the original companion connection. Save a copy for lasting access.

NameRequiredDescriptionDefault
connectionYesApproved connection ID from remote_connections. Use the original connection for an existing operation; refresh after reconnecting.
operationIdYesOperation UUID. Create a new UUID for new work; reuse the original UUID to poll, cancel, or recover a lost response without repeating effects.

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered structurally. The description still adds real value beyond them: the player auto-loads paused, success does not confirm rendering or playback, and availability is bounded by the returned expiresAt and the original companion connection. This is solid added context, but it does not reach the depth of an unannotated mutation tool's disclosures.

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 core action is front-loaded in the first sentence and follow-ups are short and purposeful (prerequisite, caveat, client compatibility, persistence). It is dense with distinct facts, though a couple of clauses about saving and availability could be tighter without losing meaning.

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?

No output schema exists, and the description compensates fully: it names the prerequisite sibling call, the client-dependent previewUrl fallback, the paused-until-Play behavior, the non-confirmation caveat, and the expiresAt/connection-bound availability. An agent has everything needed to call it correctly and interpret the outcome.

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%, so both parameters are already fully documented, including the UUID formats and the reuse/refresh rules. The description restates the same guidance ("original connection and operationId", "call once") without adding syntax or format detail beyond the schema, so the baseline 3 applies.

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 specific verb+resource: present the MP4 produced by a completed ceraph_record_run operation. It also explicitly distinguishes itself from recording behavior ("No new recording is made") and from the screenshot sibling by naming the media type, so an agent can route without opening the 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 explicit ordering and preconditions: poll remote_status for completion first, then call once with the original connection and operationId. It also states the failure mode (do not infer rendering failure from missing confirmation) and the fallback for non-MCP-Apps clients, leaving nothing to inference.

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

remote_show_screenshotA
Read-onlyIdempotent
Inspect

Display the original screenshot from a completed screen_screenshot operation. Poll remote_status until completion, then call once with its original connection and operationId. Other operation types are rejected. Each model call creates a viewer: do not poll or repeat it unless the user asks to see the screenshot again. The viewer renews its own retrieval authorization without recapturing. Clients without an embedded viewer can open previewUrl. Availability follows the returned expiresAt and requires the original companion connection. Do not infer rendering failure from missing confirmation.

NameRequiredDescriptionDefault
connectionYesApproved connection ID from remote_connections. Use the original connection for an existing operation; refresh after reconnecting.
operationIdYesOperation UUID. Create a new UUID for new work; reuse the original UUID to poll, cancel, or recover a lost response without repeating effects.

TDQS

A4.6/5.0
Behavior5/5

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

Adds substantial behavior beyond the readOnly/idempotent annotations: each call creates a viewer, the viewer renews its own retrieval authorization without recapturing, availability follows expiresAt, it requires the original companion connection, and it warns against inferring rendering failure from missing confirmation. This is rich, non-obvious operational context.

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?

Purpose is front-loaded in the first sentence and each subsequent sentence carries distinct operational information (sequencing, viewer semantics, fallback URL, expiry). It is slightly dense at seven sentences but nothing is redundant.

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?

With no output schema, the description compensates by naming the return artifacts (previewUrl, expiresAt) and the viewer lifecycle. Combined with the annotations, an agent has everything needed to invoke and interpret the call.

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%, so both UUID parameters are already documented in the schema. The description reinforces 'use the original connection and operationId' but adds no format or syntax detail beyond the schema; baseline 3 is appropriate.

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 specific verb and resource ('Display the original screenshot from a completed screen_screenshot operation') and scopes it to a completed screen_screenshot operation, which cleanly separates it from siblings like remote_status and remote_cancel.

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 explicit sequencing ('Poll remote_status until completion, then call once'), an exclusion ('Other operation types are rejected'), and a when-not ('do not poll or repeat it unless the user asks to see the screenshot again'). An agent can route to this tool with no inference.

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

remote_statusA
Read-onlyIdempotent
Inspect

Check an existing operation using its original connection and operationId. Returns a receipt with execution status and optional progress, or the original tool result when available, including text, images and tool errors. Receipt states are admitted, running, completed and outcome_unknown; completed does not guarantee success. Poll no faster than once every five seconds. outcome_unknown requires human inspection, not automatic replay. Do not repeat an operation merely to recover expired results.

NameRequiredDescriptionDefault
connectionYesApproved connection ID from remote_connections. Use the original connection for an existing operation; refresh after reconnecting.
operationIdYesOperation UUID. Create a new UUID for new work; reuse the original UUID to poll, cancel, or recover a lost response without repeating effects.

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description adds substantial context beyond them: the receipt state machine (admitted, running, completed, outcome_unknown), the caveat that completed does not guarantee success, the polling rate limit, and the prohibition on replaying to recover expired results.

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?

Front-loads the action and keying inputs, then layers return behavior, then operational constraints. Four sentences, each carrying a distinct piece of information with no padding or restatement of the name.

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?

With no output schema, the description compensates by describing the return payload (receipt with status/progress, or original result including text, images, and tool errors). Combined with the state semantics and polling constraint, an agent has everything needed to call and interpret this tool correctly.

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, but the description reinforces the critical semantic that the connection and operationId must be the ORIGINAL ones for an existing operation, which is the main misuse risk. It does not add format detail beyond the schema, but the emphasis is genuinely useful.

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 specific verb (check) and resource (an existing operation) plus the exact keying inputs (original connection and operationId). It is clearly distinguishable from siblings like remote_cancel and remote_connections, which act on the operation or the connection set rather than polling a single operation.

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 strong operational guidance: poll no faster than every five seconds, treat outcome_unknown as requiring human inspection, and do not repeat an operation to recover expired results. It stops short of explicitly naming an alternative tool for the cancel or reconnect paths, but the when/when-not conditions are clearly stated.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Addedremote_show_recording
  2. 1 tool update
    • Addedremote_show_screenshot
  3. 4 tool updates
    • First observedget_profile
    • First observedremote_cancel
    • First observedremote_connections
    • First observedremote_status

Publisher details

Operator
Ike Studios LLC ยท Publisher source
Operator website
https://ceraph.dev/
Vendor relationship
Not applicable
Trust center
Not available
Restrictions
Not applicable

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables automated testing and development of Expo/React Native apps through session-based Expo dev server management and Maestro UI automation tools for tapping, text input, screenshots, and flow execution.
    124,077 npm
    5
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables coding assistants to drive iOS Simulators and Android emulators or USB devices for React Native and Expo work, including taking screenshots, reading app and device logs, opening deep links, installing builds, and launching or relaunching apps. It also supports Android-specific actions such as adb reverse for Metro, opening the dev menu, and tapping or typing on screen.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources