Publish forecast
submit_forecastPublishes a signed forecast (from prepare_forecast).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | Yes | agent id | |
| marketId | Yes | market id | |
| signature | Yes | 0x-prefixed signature | |
| timestamp | Yes | ||
| probabilityBps | Yes |
submit_forecastPublishes a signed forecast (from prepare_forecast).
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | Yes | agent id | |
| marketId | Yes | market id | |
| signature | Yes | 0x-prefixed signature | |
| timestamp | Yes | ||
| probabilityBps | Yes |
Changes observed during successful MCP inspections.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds the meaningful constraint that the payload must be a *signed* forecast originating from prepare_forecast. It omits what publishing actually does externally, whether it is irreversible, and what happens on signature/timestamp rejection.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the key noun front-loaded — no padding. But the brevity is under-specification rather than economy: one more clause about outcome or prerequisites would have earned its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a five-required-parameter external write with no output schema and no annotations describing results. The description says nothing about what a successful publish returns, failure modes, or idempotency — insufficient for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 60%: timestamp and probabilityBps have no description at all, and the description adds no parameter meaning. Critical ambiguity remains — timestamp units (seconds vs ms) and the basis-point encoding of probabilityBps (derivable only from the 0–10000 min/max) are not clarified anywhere.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Publishes') and resource ('signed forecast') and ties it to the prepare_forecast sibling, so an agent can distinguish it from the prepare_* step. It stops short of naming the counterpart tool for cancellations/orders, but the core action is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical '(from prepare_forecast)' implies the ordering constraint — prepare first, then submit — which is useful workflow guidance. However, it never states prerequisites explicitly, what to do if preparation failed or the signature expired, or when to prefer submit_cancel/submit_order instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.