Skip to main content
Glama

Strategy Lab: start paper trading

polyrank_start_paper
Idempotent

Writes to the user's Lab: ask the user before calling, then pass confirm: true. Start paper trading a saved strategy: from now on every signal of its wallets is scored against the real order book (no orders, no keys, no money). The run lasts 10 days unless run_days says otherwise (a whole number of days, 1 to 90, only when the user asked for that length; null = no end, it runs until stopped). The result's ends_at is when it stops by itself (null = no end; open copies still settle after it): tell the user, and that they can change it on the run's page at polyrank.app. One active run per strategy. Needs POLYRANK_API_KEY (plan feature paper_trading).

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": {
      "strategy_id": "<strategy_id>",
      "confirm": "<confirm>"
    },
    "name": "polyrank_start_paper"
  }
}

Input Schema

NameRequiredDescriptionDefault
confirmYesRequired: true, and only after the user agreed to this call in the conversation.
run_daysNoHow many days the run lasts (default 10); null = no end, it runs until the user stops it.
strategy_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / run_days
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maximum": 90,
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "How many days the run lasts (default 10); null = no end, it runs until the user stops it."
      +}
  2. Changed2 schema fields changed
    • addedInput schema / properties / confirm
      Added value: +{
      +  "const": true,
      +  "description": "Required: true, and only after the user agreed to this call in the conversation.",
      +  "type": "boolean"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "strategy_id"
      -]New value: +[
      +  "strategy_id",
      +  "confirm"
      +]
  3. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint false, destructiveHint false, idempotentHint true), it discloses the default 10-day duration, the 1-90 day bound, that null means the run continues until stopped, and that open copies still settle after ends_at. It also tells the agent to relay the end date to the user and where it can be changed, which is behavior the 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?

The critical consent requirement and the confirm flag are front-loaded in the first sentence, and the paragraph stays dense with operational detail. It is somewhat overlong for a single block, and the "null = no end" point is stated twice.

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?

With no output schema, the description usefully explains the result's ends_at field and its null case, plus duration defaults and access requirements. It leaves out the returned run identifier and any failure behavior, which is a minor gap for a 3-parameter mutation tool.

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 67%, and the description compensates by adding policy the schema lacks: run_days should only be set when the user asked for that length, and confirm is only valid after the user agreed. Some content repeats the schema (1 to 90, null = no end), and strategy_id is never characterized in the description, which keeps it from a 5.

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?

"Start paper trading a saved strategy" gives a specific verb and resource, and the following clause defines the effect precisely: every signal of its wallets is scored against the real order book with no orders, no keys, no money. That makes it clearly distinct from sibling read tools such as polyrank_get_paper_run and from the backtest tools.

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?

It states a hard precondition (ask the user first, then pass confirm: true), a constraint (one active run per strategy), and an access requirement (POLYRANK_API_KEY with the paper_trading plan feature). It does not explicitly name an alternative such as polyrank_get_paper_run for checking an existing run, so it stops short of full when-to-use routing.

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.