Skip to main content
Glama

open_url

Open a deep link (such as myapp://item/3) in the running app, as a push tap, auth callback or share link would. Fails with invalid_url if the text has no scheme, or no_handler if apps declare URL schemes and none matches; a match returns the owning app id. Otherwise fails with no_url_listener if the app does not listen for URLs.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "session": "<session>",
      "url": "<url>"
    },
    "name": "open_url"
  }
}

Input Schema

NameRequiredDescriptionDefault
urlYesThe URL to deliver, e.g. myapp://item/3
sessionYesSession from open_app

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.4/5.0
Behavior4/5

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

Beyond the annotations (which only say it is not read-only, not idempotent, not destructive), the description enumerates the three failure modes and their causes and states what a match returns (the owning app id). It does not describe what the target app does with the URL once delivered, so the effect side is left implicit.

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 sentences, front-loaded with the action and example, followed by error semantics. Every clause carries information; nothing is padding.

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 two-parameter tool with no output schema, the description covers the return value and all documented error paths, which is close to complete. It leaves open whether the session must be live and what side effects occur inside the app, which matters given destructiveHint=false but readOnlyHint=false.

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 adds real meaning: the url must carry a scheme or it fails with invalid_url, and session comes from open_app (also reinforced in the schema). The example URL format is a useful correction to agents that would pass a bare path.

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 ('Open a deep link') and pins the concept down with a concrete example ('myapp://item/3') plus real-world analogues (push tap, auth callback, share link). That framing makes it clearly distinguishable from siblings like open_app, which launches an app rather than delivering a URL into a running one.

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?

The analogies ('as a push tap, auth callback or share link would') give a clear sense of the situations this tool is for. There is no explicit when-not guidance or named alternative such as open_app for cold starts, so it stops short of full routing guidance.

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.