Skip to main content
Glama

hire_plan_rebalancer

Read-only

Plan a hire of the ChainHelix rebalancer agent (ERC-8004 #269223, Portfolio rebalancing plan). Given current holdings, target weights and prices, returns current vs target weights, per-asset drift and the ordered trade list (sells before buys) that moves the portfolio to target, with the residual cash the plan does not net out. Deterministic arithmetic, no custody, no execution. Send the job parameters; you get back the agent's live wallet-signed quote (the job price, paid into escrow on chain when you fund) and the createJob calldata to sign from YOUR wallet, then fund and tell the agent (steps in the answer). This call is free; the job is not. The parameters here are exactly what the agent accepts; an example is in the input schema description.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "hire_plan_rebalancer"
  }
}

Input Schema

NameRequiredDescriptionDefault
termsNooptional ERC-8183 terms {deliverables, quality_standards}; the agent quotes its fixed price either way
pricesNoa mark for every symbol in holdings or targets (also accepted as: marks, quotes, pricesUsd)
targetsNodesired weights, must sum to 1 (also accepted as: targetWeights, weights, allocation)
holdingsNocurrent position sizes in token units, one key per symbol (also accepted as: positions, balances, portfolio)
minTradeUsdNodust filter on emitted trades, default 5
driftThresholdPctNono-trade band per asset, default 1

Output Schema

NameRequiredDescriptionDefault
txNo
nextNo
planNo
agentYes
errorNo
exampleNo
missingNo
envelopeNo
expectedNo
erc8004IdNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / x-lexicon / bundleSha256
      Previous value: -"670f7504e3de5031beccee25a2d24e4515f68b893295f6d5b0d3a0665498b2c9"New value: +"25cc80db6d8e9eac73d47a50f7ad6333a21f1972d008a8fed0159de8bfb4b519"
  2. Changed2 schema fields changed
    • changedInput schema / x-lexicon / bundleSha256
      Previous value: -"e5b4290024a229f2bdf97f8fc6a0079c3fe13b77267f41fdcffeb8b26aa1c41e"New value: +"670f7504e3de5031beccee25a2d24e4515f68b893295f6d5b0d3a0665498b2c9"
    • changedInput schema / x-lexicon / version
      Previous value: -"0.1.0"New value: +"0.2.0"
  3. Changed1 schema field changed
    • changedInput schema / x-lexicon / bundleSha256
      Previous value: -"a1c2e10fd3177d6b4d59ca78693e8fb36880165cf0f735f680dd86a510411178"New value: +"e5b4290024a229f2bdf97f8fc6a0079c3fe13b77267f41fdcffeb8b26aa1c41e"
  4. Changed1 schema field changed
    • changedInput schema / x-lexicon / bundleSha256
      Previous value: -"1eeb782ee15fe69fc80776948e0556fa6b795e210e6305935b2c97b73d955cda"New value: +"a1c2e10fd3177d6b4d59ca78693e8fb36880165cf0f735f680dd86a510411178"
  5. Changed1 schema field changed
    • changedInput schema / x-lexicon / bundleSha256
      Previous value: -"c014292cad7497ce9fd68c33345ac32cb42b672c8e77d6c749c26e162cc207e4"New value: +"1eeb782ee15fe69fc80776948e0556fa6b795e210e6305935b2c97b73d955cda"
  6. Changed3 schema fields changed
    • addedInput schema / x-aliases
      Added value: +{
      +  "holdings": [
      +    "positions",
      +    "balances",
      +    "portfolio"
      +  ],
      +  "prices": [
      +    "marks",
      +    "quotes",
      +    "pricesUsd"
      +  ],
      +  "targets": [
      +    "Targets",
      +    "targetWeights",
      +    "weights",
      +    "allocation"
      +  ]
      +}
    • addedInput schema / x-lexicon
      Added value: +{
      +  "bundleSha256": "c014292cad7497ce9fd68c33345ac32cb42b672c8e77d6c749c26e162cc207e4",
      +  "name": "ChainHelix Agentic Lexicon",
      +  "resolve": "lexicon_resolve",
      +  "spec": "lexicon_spec",
      +  "version": "0.1.0"
      +}
    • addedInput schema / x-vocab
      Added value: +{
      +  "driftThresholdPct": "market.driftThresholdPct",
      +  "holdings": "common.holdings",
      +  "minTradeUsd": "market.minTradeUsd",
      +  "prices": "market.prices",
      +  "targets": "common.targets",
      +  "terms": "data.terms"
      +}
  7. Added

TDQS

A4.1/5.0
Behavior5/5

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

Adds substantial context beyond readOnlyHint: true — deterministic arithmetic, no custody, no execution, a free quote call versus a paid on-chain escrow job, and the fact that signing happens from the caller's own wallet. These details are consistent with the read-only annotation because the call itself only returns a quote and calldata.

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 clause and the cost/workflow warnings earn their place. The middle sentence enumerating return fields overlaps with the existing output schema and the closing pointer to the schema example is largely redundant, so it is informative but not maximally tight.

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?

Given rich annotations, a full-coverage schema with example, and an output schema, the description covers everything else an agent needs: cost model, non-custody guarantees, the two-phase hire workflow, and what will come back in the response.

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 the schema already carries aliases, defaults, vocab mappings and a worked example. The description's only addition is the meta-statement that these are exactly the parameters the agent accepts, which adds little meaning beyond the structured field.

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 and resource — plan a hire of the ChainHelix rebalancer agent for a portfolio rebalancing job — and previews the exact deliverable (current vs target weights, drift, ordered trade list). It is clearly distinguishable in substance from siblings like hire_plan_gridtrader or hire_plan_yieldopt, but never names or contrasts those alternatives explicitly.

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 operating context: send job parameters, receive a wallet-signed quote plus createJob calldata, then fund and notify the agent, and warns that 'this call is free; the job is not.' What is missing is when a caller should pick this tool over hire_plan_gridtrader/hire_plan_yieldopt or hire_quote, and any preconditions (e.g., that targets must sum to 1 is left to the schema).

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