Skip to main content
Glama

sign_in

Idempotent

Sign the user in to Amazon, when they ask you to or after a tool says they aren't signed in. Opens a browser window on the user's computer, where they sign in on Amazon's own page, so their credentials are never seen.

Instructions

Sign the user in to Amazon, when they ask you to or after a tool says they aren't signed in. Opens a browser window on the user's computer, where they sign in on Amazon's own page, so their credentials are never seen. Wait for them to finish, which they have 120 seconds to do. If it says there's no browser to sign in with, ask the user which to use, then call this again with browser.

Input Schema

NameRequiredDescriptionDefault
siteNoThe Amazon site to sign in to, e.g. `amazon.de`, since each site has its own sign-in. By default, the user's default site.
browserNoOnly when there's no browser to sign in with: the one the user chose, either one offered to download for them or a browser they already have installed. It's saved, so they're only asked once.

Output Schema

NameRequiredDescriptionDefault
siteYesThe Amazon site, as `site` accepts it.
errorNoWhy the session couldn't be checked, if it couldn't. `signed_in` is null then.
sitesYesEvery site checked: the one asked about, or else the default site and every other site with a saved session.
defaultYesWhether it's the user's default site, which tools read when they aren't given `site`.
sign_inNoWhat to do to sign in, if the user isn't.
signed_inYesWhether Amazon still accepts the user's saved session for the site. If Amazon answers the check with an error page, a saved session is assumed to still work. Null if the session couldn't be checked at all.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed11 schema fields changedv1.4.2
    • addedInput schema / properties / site
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "The Amazon site to sign in to, e.g. `amazon.de`, since each site has its own sign-in. By default, the user's default site.",
      +  "title": "Site"
      +}
    • addedOutput schema / $defs
      Added value: +{
      +  "SiteSessionStatus": {
      +    "description": "The user's session status on an Amazon site.",
      +    "properties": {
      +      "default": {
      +        "description": "Whether it's the user's default site, which tools read when they aren't given `site`.",
      +        "title": "Default",
      +        "type": "boolean"
      +      },
      +      "error": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Why the session couldn't be checked, if it couldn't. `signed_in` is null then.",
      +        "title": "Error"
      +      },
      +      "sign_in": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "What to do to sign in, if the user isn't.",
      +        "title": "Sign In"
      +      },
      +      "signed_in": {
      +        "anyOf": [
      +          {
      +            "type": "boolean"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "Whether Amazon still accepts the user's saved session for the site. If Amazon answers the check with an error page, a saved session is assumed to still work. Null if the session couldn't be checked at all.",
      +        "title": "Signed In"
      +      },
      +      "site": {
      +        "description": "The Amazon site, as `site` accepts it.",
      +        "title": "Site",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "signed_in",
      +      "site",
      +      "default"
      +    ],
      +    "title": "SiteSessionStatus",
      +    "type": "object"
      +  }
      +}
    • changedOutput schema / description
      Previous value: -"The user's Amazon session status, returned by the ``check_session`` tool."New value: +"The user's Amazon session status, returned by the ``check_session`` and ``sign_in`` tools: for the site asked\nabout, or else the default site, and for every site checked."
    • addedOutput schema / properties / default
      Added value: +{
      +  "description": "Whether it's the user's default site, which tools read when they aren't given `site`.",
      +  "title": "Default",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / error
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Why the session couldn't be checked, if it couldn't. `signed_in` is null then.",
      +  "title": "Error"
      +}
    • addedOutput schema / properties / signed_in / anyOf
      Added value: +[
      +  {
      +    "type": "boolean"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / signed_in / description
      Previous value: -"Whether Amazon still accepts the user's saved session. If Amazon couldn't be reached to check, a saved session is assumed to still work."New value: +"Whether Amazon still accepts the user's saved session for the site. If Amazon answers the check with an error page, a saved session is assumed to still work. Null if the session couldn't be checked at all."
    • removedOutput schema / properties / signed_in / type
      Removed value: -"boolean"
    • changedOutput schema / properties / site / description
      Previous value: -"The Amazon site the server is set to read."New value: +"The Amazon site, as `site` accepts it."
    • addedOutput schema / properties / sites
      Added value: +{
      +  "description": "Every site checked: the one asked about, or else the default site and every other site with a saved session.",
      +  "items": {
      +    "$ref": "#/$defs/SiteSessionStatus"
      +  },
      +  "title": "Sites",
      +  "type": "array"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "signed_in",
      -  "site"
      -]New value: +[
      +  "signed_in",
      +  "site",
      +  "default",
      +  "sites"
      +]
  2. First observedv1.2.0

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations it discloses the key traits: it launches a browser window on the user's own machine, credentials never pass through the agent, the call blocks until the user finishes with a 120-second limit, and how the no-browser case behaves. That is exactly the context an agent needs for an interactive, open-world operation.

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 trigger condition comes first, followed by the mechanism, timing constraint, and error fallback, in four tight sentences with no repetition or filler.

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?

Output schema covers return values, so the description needn't explain them; what remains (interactivity, timeout, browser selection flow, consent trigger) is fully covered. Nothing an agent needs to invoke this correctly is missing.

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 the baseline is 3. The description adds real workflow meaning for `browser` (only use it after the no-browser error, and the choice is persisted so the user is asked once), but says nothing extra about `site` beyond what the schema already documents.

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 ('Sign the user in to Amazon') and is clearly distinguishable from siblings like check_session, which reads state rather than initiating an interactive login. An agent can identify the action 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 triggers ('when they ask you to or after a tool says they aren't signed in') and a concrete fallback flow if the no-browser error occurs: ask the user, then re-call with `browser`. Both when-to-use and what-to-do-next are spelled out.

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