Skip to main content
Glama

Buy line time

buy_time

Buys line time by the millisecond, $0.000001 each; buying again adds time. Returns your channelId, the time bought and the time left. Then open a line with the line tool. Time you do not burn comes back on refund. Not idempotent: each call buys more time. Paid. With no wallet code, pay with ZEAM :: Pass: a pass (https://mcp.zeamprism.com/pass) or your own wallet (https://mcp.zeamprism.com/how-to-pay). Example: {"ms":60000}

Input Schema

NameRequiredDescriptionDefault
msNomilliseconds of line time; default 250. Buying again adds time

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • removedInput schema / $schema
      Removed value: -"https://json-schema.org/draft/2020-12/schema"
    • removedInput schema / additionalProperties
      Removed value: -{}
    • removedOutput schema / $schema
      Removed value: -"https://json-schema.org/draft/2020-12/schema"
    • removedOutput schema / additionalProperties
      Removed value: -{}
    • addedOutput schema / anyOf
      Added value: +[
      +  {
      +    "properties": {
      +      "boughtMs": {
      +        "anyOf": [
      +          {
      +            "description": "milliseconds this payment bought",
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "channelId": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "msRemaining": {
      +        "anyOf": [
      +          {
      +            "description": "time on the channel after this payment",
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "paidUSD": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "required": [
      +      "error"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "required": [
      +      "accepts"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "required": [
      +      "receipt"
      +    ],
      +    "type": "object"
      +  }
      +]
    • removedOutput schema / properties
      Removed value: -{
      -  "boughtMs": {
      -    "anyOf": [
      -      {
      -        "description": "milliseconds this payment bought",
      -        "type": "number"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ]
      -  },
      -  "channelId": {
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "msRemaining": {
      -    "anyOf": [
      -      {
      -        "description": "time on the channel after this payment",
      -        "type": "number"
      -      },
      -      {
      -        "type": "null"
      -      }
      -    ]
      -  },
      -  "paidUSD": {
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  }
      -}
  2. Changed1 schema field changed
    • removedInput schema / properties / ms / maximum
      Removed value: -9007199254740991
  3. Changed4 schema fields changed
    • addedInput schema / additionalProperties
      Added value: +{}
    • removedInput schema / properties / blocks
      Removed value: -{
      -  "description": "blocks of 250 ms; default 1",
      -  "maximum": 14400,
      -  "minimum": 1,
      -  "type": "integer"
      -}
    • addedInput schema / properties / ms
      Added value: +{
      +  "description": "milliseconds of line time; default 250. Buying again adds time",
      +  "maximum": 9007199254740991,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • removedOutput schema / properties / blockMs
      Removed value: -{
      -  "type": [
      -    "number",
      -    "null"
      -  ]
      -}
  4. Changed18 schema fields changed
    • addedInput schema / properties / blocks
      Added value: +{
      +  "description": "blocks of 250 ms; default 1",
      +  "maximum": 14400,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • removedInput schema / properties / line
      Removed value: -{
      -  "description": "the credential from /pay, so this payment is applied to your line",
      -  "type": "string"
      -}
    • addedOutput schema / properties / blockMs
      Added value: +{
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / boughtMs / anyOf
      Previous value: -[
      -  {
      -    "description": "milliseconds this payment added to the balance",
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "description": "milliseconds this payment bought",
      +    "type": "number"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / buysMs
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "description": "what the remaining collateral can still buy",
      -      "type": "number"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ]
      -}
    • addedOutput schema / properties / channelId
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • removedOutput schema / properties / collateral
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "description": "micro-USD still behind the channel",
      -      "type": "number"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ]
      -}
    • removedOutput schema / properties / hint
      Removed value: -{
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / line
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "description": "the line this tick was applied to, null if none matched",
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ]
      -}
    • removedOutput schema / properties / metering
      Removed value: -{
      -  "type": [
      -    "boolean",
      -    "null"
      -  ]
      -}
    • changedOutput schema / properties / msRemaining / anyOf
      Previous value: -[
      -  {
      -    "description": "balance after this tick; absent when no line matched",
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "description": "time on the channel after this payment",
      +    "type": "number"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / open
      Removed value: -{
      -  "type": [
      -    "boolean",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / paid
      Removed value: -{
      -  "type": [
      -    "boolean",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / paidMicroUSD
      Removed value: -{
      -  "type": [
      -    "number",
      -    "null"
      -  ]
      -}
    • addedOutput schema / properties / paidUSD
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • removedOutput schema / properties / settledBeforeMicroUSD
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "description": "what we had settled against this channel before this call; only when no line matched",
      -      "type": [
      -        "number",
      -        "null"
      -      ]
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ]
      -}
    • removedOutput schema / properties / thisCallMicroUSD
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "description": "what this call is charged: the row it paid",
      -      "type": [
      -        "number",
      -        "null"
      -      ]
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ]
      -}
    • removedOutput schema / properties / tick
      Removed value: -{
      -  "type": [
      -    "boolean",
      -    "null"
      -  ]
      -}
  5. Changed3 schema fields changed
    • removedOutput schema / properties / cumulativeMicroUSD
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "description": "charged to date; only when no line matched",
      -      "type": [
      -        "number",
      -        "null"
      -      ]
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ]
      -}
    • addedOutput schema / properties / settledBeforeMicroUSD
      Added value: +{
      +  "anyOf": [
      +    {
      +      "description": "what we had settled against this channel before this call; only when no line matched",
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / thisCallMicroUSD
      Added value: +{
      +  "anyOf": [
      +    {
      +      "description": "what this call is charged: the row it paid",
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
  6. Added

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations: it discloses that the operation is paid, specifies payment paths (pass or own wallet with links), states the non-idempotent accumulation behavior, and explains refund semantics for unburned time. This is exactly the payment/auth and side-effect context annotations cannot convey.

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?

Front-loads the core action and price, then layers payment, refund and example detail. Dense but every line carries information; the URL-laden payment sentence is the only mildly noisy part.

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?

An output schema exists, yet the description still summarizes the return payload (channelId, time bought, time left), and payment, refund and non-idempotency are all covered. Nothing an agent needs to call this correctly is missing.

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% and already documents `ms` with its default of 250, so the baseline is 3. The description adds value by tying the parameter to cost ($0.000001/ms) and supplying a concrete example call, making the unit and magnitude concrete.

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 ('Buys line time'), gives the unit and exact price per millisecond, and clarifies that repeat calls accumulate time. It also routes to the sibling `line` tool for the next step, so an agent can place it in the workflow without opening a schema.

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?

Explicitly sequences usage ('Then open a line with the line tool') and warns that each call buys more time, which is the key selection consideration versus a one-shot purchase. It does not say when *not* to buy (e.g., if time is already sufficient), so it stops short of full when/when-not 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.

Resources