Skip to main content
Glama

NightWatch Live Intelligence

forge_signals

Read a Forge vault's signals (docs/pm/SIGNAL_MIRRORING.md). Requires vault_id. With live omitted or false: signals older than 24h, free, plus counts, mirroring_paused, rules_hash (the vault's current rules hash β€” consent to this one), and the latest signal's timestamp. With live true: signals younger than 24h β€” a paid read (10πŸ’ or $0.10 each per signal, free tier -> Cherry -> x402, same metering as every other paid read here). This ALWAYS returns HTTP 200: a signal you have not (or could not) pay for is counted, not returned β€” see locked_count and, when it is above 0, payment_required (the x402 payment requirements for one signal). To pay for and read exactly ONE signal directly, call GET /forge/signals/{signal_id} instead β€” that route DOES return a real 402 when it can't be paid. Each signal carries kind (open/rebalance/trim/universe), market, side, target_weight, target_leverage, ref_price, and reason β€” never an absolute order size.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
liveNotrue = signals younger than 24h (paid); false/omitted = older, free signals
vault_idYesForge vault id (from GET /forge/vaults)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations, the description carries full behavioral burden. It discloses the always-HTTP-200 behavior, locked_count/payment_required mechanics, pricing (10πŸ’ or $0.10), and the return-field list. It even clarifies that absolute order sizes are never returnedβ€”useful preemptive context.

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 description is dense and front-loaded with purpose, then organized by mode. Every clause earns its place given the payment behavior, but it is long enough that a slightly tighter structure could improve scannability.

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?

With no output schema, the description fully enumerates returned fields (counts, mirroring_paused, rules_hash, latest timestamp, locked_count, payment_required, per-signal fields). It covers prerequisites, mode-dependent behavior, and the alternative single-signal route, making the tool safe to invoke.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although the schema covers both parameters, the description adds meaning beyond the schema: it explains what 'live' does semantically, its paid/free implications, and reinforces vault_id as required. This goes well beyond the terse schema text.

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?

The description states a clear verb+resource: 'Read a Forge vault's signals' and explicitly references the mirroring doc. It differentiates this list-read from the single-signal route by naming the alternative endpoint, so an agent knows exactly what this tool is for.

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?

It explicitly explains when to use live vs. omitted/false ('With live true: signals younger than 24h β€” a paid read; With live omitted or false: signals older than 24h, free') and points to the alternative route for reading exactly one signal. It also states the vault_id prerequisite.

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.