Skip to main content
Glama
theodor90

form4api-mcp

explain_signal

Read-only

Explain why a signal fired: the insiders and trades counted, what was excluded, and the criteria (Business plan+). Use this when the question is WHY a named company's signal fired, or WHICH insiders and trades made up its cluster.

Instructions

Explain why a signal fired: the insiders and trades counted, what was excluded, and the criteria (Business plan+). Use this when the question is WHY a named company's signal fired, or WHICH insiders and trades made up its cluster. It takes the ticker directly, so there is no need to call GET /v1/signals first; that endpoint is for finding which companies have signals. Reconstructs the full evidence behind one company's insider signal from GET /v1/signals: the detection criteria (5-day cluster window, 3-insider threshold, 90-day ratio window, 10b5-1 exclusion), the list of cluster buyers and sellers (each with their role and individual trades in the window), trades that were excluded from the cluster count and why (10b5-1 plan or superseded by amendment), and the raw buy/sell share totals behind the 90-day ratio. Use this to audit or debug a specific signal rather than to scan many companies (use GET /v1/signals for that). This is a LIVE reconstruction from current non-superseded data, computed on every request (no caching) — it can differ slightly from the originally stored signal if trades were amended afterward. Requires Business plan or higher (402 PLAN_REQUIRED on Free/Starter/Pro). Returns 404 COMPANY_NOT_FOUND if the ticker isn't tracked, 404 SIGNAL_NOT_FOUND if no signal exists for the given/most-recent date, or 400 INVALID_DATE if date isn't YYYY-MM-DD.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dateNoExact signal date to explain, format YYYY-MM-DD. Omit to explain the company's most recent signal. Returns 404 SIGNAL_NOT_FOUND if no signal exists for the given (or most recent) date.
tickerYesCompany ticker symbol, case-insensitive (e.g. "AAPL").

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / date / description
      Added value: +"Exact signal date to explain, format YYYY-MM-DD. Omit to explain the company's most recent signal. Returns 404 SIGNAL_NOT_FOUND if no signal exists for the given (or most recent) date."
    • addedInput schema / properties / ticker / description
      Added value: +"Company ticker symbol, case-insensitive (e.g. \"AAPL\")."
  2. First observedv1.0.0

TDQS

A4.6/5.0
Behavior4/5

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

Annotations only declare readOnlyHint and openWorldHint; the description goes well beyond them by disclosing that this is a LIVE, uncached reconstruction that can diverge from the stored signal after amendments, the Business-plan gating (402 PLAN_REQUIRED on Free/Starter/Pro), and the exact 404/400 failure modes. It does not spell out pagination or sizing of the returned evidence lists, but the safety and cost profile is fully covered.

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-loaded with purpose, then usage, then mechanics, and it is dense with no filler sentences. It is on the long side and the routing advice ('audit or debug a specific signal rather than scan') restates the earlier 'use this when' guidance, a mild redundancy.

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?

For a tool with no output schema and thin annotations, the description carries the full load and does so: it enumerates what is returned (criteria, cluster buyers/sellers with roles and trades, exclusions and reasons, raw buy/sell totals), the plan requirement, and every error code. An agent has everything needed to call and interpret it.

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%, so the schema already documents both parameters; the description's added value is contextual, explaining that ticker is taken directly (enabling the skip of a prior lookup) and that omitting date falls back to the most recent signal with a SIGNAL_NOT_FOUND on miss. That reinforces behavior but adds little syntax beyond the schema.

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 ('Explain why a signal fired') and immediately enumerates the substance returned: the insiders and trades counted, what was excluded, and the criteria. It explicitly distinguishes itself from get_signals (finding which companies have signals) versus this tool (explaining one company's signal), so an agent can route without inspecting either schema.

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?

Gives explicit when-to-use conditions ('when the question is WHY a named company's signal fired, or WHICH insiders and trades made up its cluster') and an explicit when-not with the named alternative ('rather than to scan many companies (use GET /v1/signals for that)'). It also removes a prerequisite the agent might otherwise assume ('there is no need to call GET /v1/signals first').

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.