Skip to main content
Glama

Valuein — SEC EDGAR Fundamentals & Smart-Money Data

SEC filing links

get_sec_filing_links
Read-onlyIdempotent

Returns a company's SEC filings, newest first, each with form type, filing and report dates, accession number and links to the EDGAR index page, the filing document and the inline XBRL viewer. Use this when the user wants the original 10-K, 10-Q, 8-K, 20-F or 40-F filings behind the numbers. Filings cover the most recent five fiscal years; to trace one figure to its filing, verify_fact_lineage fits.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of filings, 1 to 50; defaults to 10, e.g. 20.
tickerYesTicker symbol or SEC CIK of the company, e.g. AAPL.
end_dateNoLatest filing date to include, YYYY-MM-DD, e.g. 2024-12-31.
form_typesNoForms to include: 10-K, 10-Q, 8-K, 20-F, 40-F or their /A amendments; defaults to 10-K and 10-Q, e.g. ["8-K"].
start_dateNoEarliest filing date to include, YYYY-MM-DD, e.g. 2024-01-01.
event_typesNo8-K item numbers to match; filings without a matching item are left out, e.g. ["2.02"].

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
_metaYesProvenance envelope — data lineage for every MCP response
tickerYes
filingsYes
filings_returnedYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed23 schema fields changed
    • changedInput schema / properties / end_date / description
      Previous value: -"Inclusive upper bound on filing_date (YYYY-MM-DD). E.g. '2023-12-31'."New value: +"Latest filing date to include, YYYY-MM-DD, e.g. 2024-12-31."
    • changedInput schema / properties / event_types / description
      Previous value: -"8-K item codes to filter by. E.g. ['1.01'] for material agreements, ['2.01'] for asset acquisitions, ['5.02'] for director/officer changes. Only relevant when form_types includes '8-K'."New value: +"8-K item numbers to match; filings without a matching item are left out, e.g. [\"2.02\"]."
    • addedInput schema / properties / event_types / maxItems
      Added value: +30
    • changedInput schema / properties / form_types / description
      Previous value: -"Filing form types to include. Defaults to 10-K and 10-Q."New value: +"Forms to include: 10-K, 10-Q, 8-K, 20-F, 40-F or their /A amendments; defaults to 10-K and 10-Q, e.g. [\"8-K\"]."
    • addedInput schema / properties / form_types / maxItems
      Added value: +9
    • changedInput schema / properties / limit / description
      Previous value: -"Maximum number of filings to return (1–50). Defaults to 10."New value: +"Maximum number of filings, 1 to 50; defaults to 10, e.g. 20."
    • changedInput schema / properties / start_date / description
      Previous value: -"Inclusive lower bound on filing_date (YYYY-MM-DD). E.g. '2023-01-01'."New value: +"Earliest filing date to include, YYYY-MM-DD, e.g. 2024-01-01."
    • changedInput schema / properties / ticker / description
      Previous value: -"Stock ticker symbol, e.g. AAPL, MSFT — or a CIK (SEC identifier), e.g. '0000320193'."New value: +"Ticker symbol or SEC CIK of the company, e.g. AAPL."
    • removedOutput schema / properties / _meta / properties / cost_usd
      Removed value: -{
      -  "additionalProperties": false,
      -  "description": "Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.",
      -  "properties": {
      -    "amount_usd": {
      -      "minimum": 0,
      -      "type": "number"
      -    },
      -    "basis": {
      -      "description": "payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.",
      -      "enum": [
      -        "payg_charge",
      -        "payg_rate_card"
      -      ],
      -      "type": "string"
      -    },
      -    "billed": {
      -      "description": "true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.",
      -      "type": "boolean"
      -    }
      -  },
      -  "required": [
      -    "amount_usd",
      -    "billed",
      -    "basis"
      -  ],
      -  "type": "object"
      -}
    • removedOutput schema / properties / _meta / properties / data_plan
      Removed value: -{
      -  "description": "Access plan: sample | sp500 | pro | full",
      -  "type": "string"
      -}
    • changedOutput schema / properties / _meta / properties / fundamentals_as_of / description
      Previous value: -"ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export."New value: +"Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export."
    • removedOutput schema / properties / _meta / properties / last_updated
      Removed value: -{
      -  "description": "ISO timestamp when the snapshot was exported",
      -  "type": "string"
      -}
    • removedOutput schema / properties / _meta / properties / latency_ms
      Removed value: -{
      -  "description": "Wall-clock milliseconds this tool call took, measured server-side around the handler.",
      -  "minimum": 0,
      -  "type": "integer"
      -}
    • removedOutput schema / properties / _meta / properties / limit_warnings
      Removed value: -{
      -  "description": "Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.",
      -  "items": {
      -    "additionalProperties": true,
      -    "properties": {
      -      "code": {
      -        "const": "LIMIT_EXCEEDED",
      -        "type": "string"
      -      },
      -      "current_plan": {
      -        "type": "string"
      -      },
      -      "extensions": {
      -        "additionalProperties": {},
      -        "type": "object"
      -      },
      -      "limit_type": {
      -        "type": "string"
      -      },
      -      "limit_value": {},
      -      "remediation": {
      -        "additionalProperties": true,
      -        "properties": {
      -          "contact_sales": {
      -            "type": "string"
      -          },
      -          "default_action": {
      -            "type": "string"
      -          },
      -          "options": {
      -            "items": {
      -              "additionalProperties": {},
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "pricing_page": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "options",
      -          "default_action",
      -          "pricing_page",
      -          "contact_sales"
      -        ],
      -        "type": "object"
      -      },
      -      "requested_value": {},
      -      "returned_value": {},
      -      "subcode": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "code",
      -      "subcode",
      -      "limit_type",
      -      "current_plan",
      -      "remediation"
      -    ],
      -    "type": "object"
      -  },
      -  "type": "array"
      -}
    • removedOutput schema / properties / _meta / properties / payg_override
      Removed value: -{
      -  "additionalProperties": false,
      -  "description": "Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.",
      -  "properties": {
      -    "amount_cents": {
      -      "type": "number"
      -    },
      -    "entity_scope_hash": {
      -      "type": "string"
      -    },
      -    "meter": {
      -      "type": "string"
      -    },
      -    "quote_id": {
      -      "type": "string"
      -    },
      -    "retry_token_hash": {
      -      "type": "string"
      -    },
      -    "ticker_count": {
      -      "type": "number"
      -    },
      -    "tool": {
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "quote_id",
      -    "tool",
      -    "meter",
      -    "amount_cents",
      -    "ticker_count",
      -    "entity_scope_hash",
      -    "retry_token_hash"
      -  ],
      -  "type": "object"
      -}
    • removedOutput schema / properties / _meta / properties / rate_limit
      Removed value: -{
      -  "additionalProperties": false,
      -  "description": "Caller's remaining budget",
      -  "properties": {
      -    "limit": {
      -      "type": "integer"
      -    },
      -    "remaining": {
      -      "type": "integer"
      -    },
      -    "reset_at": {
      -      "description": "ISO 8601 timestamp when the window resets",
      -      "type": "string"
      -    },
      -    "window": {
      -      "enum": [
      -        "minute",
      -        "hour"
      -      ],
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "limit",
      -    "remaining",
      -    "reset_at",
      -    "window"
      -  ],
      -  "type": "object"
      -}
    • removedOutput schema / properties / _meta / properties / request_id
      Removed value: -{
      -  "description": "Per-request correlation id (8-char)",
      -  "type": "string"
      -}
    • removedOutput schema / properties / _meta / properties / schema_version
      Removed value: -{
      -  "description": "Parquet schema version from manifest.json",
      -  "type": "string"
      -}
    • removedOutput schema / properties / _meta / properties / snapshot
      Removed value: -{
      -  "description": "Snapshot directory name (e.g. snapshot_20260420)",
      -  "type": "string"
      -}
    • removedOutput schema / properties / _meta / properties / truncation / properties / current_plan
      Removed value: -{
      -  "type": "string"
      -}
    • removedOutput schema / properties / _meta / properties / truncation / properties / upgrade_required_for
      Removed value: -{
      -  "type": "string"
      -}
    • removedOutput schema / properties / _meta / properties / truncation / properties / upgrade_url
      Removed value: -{
      -  "type": "string"
      -}
    • changedOutput schema / properties / _meta / required
      Previous value: -[
      -  "data_plan",
      -  "schema_version",
      -  "snapshot",
      -  "last_updated",
      -  "source",
      -  "pit_safe"
      -]New value: +[
      +  "source",
      +  "pit_safe"
      +]
  2. Changed1 schema field changed
    • changedOutput schema / properties / _meta / properties / fundamentals_as_of / description
      Previous value: -"ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt. Use THIS — not `last_updated` — when telling a user how current the fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to."New value: +"ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt in bulk. Use THIS — not `last_updated` — when telling a user how current the cross-sectional fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to. It is a floor for a single filer, not a ceiling: a filer with a live partition receives its filing, facts and ratios intraday (minutes after EDGAR dissemination), so an entity-scoped read may carry a filing newer than this; cross-sectional ranks (factor scores, earnings signals) refresh with the weekly bulk export."
  3. Changed2 schema fields changed
    • changedInput schema / properties / ticker / description
      Previous value: -"Stock ticker symbol, e.g. AAPL, MSFT"New value: +"Stock ticker symbol, e.g. AAPL, MSFT — or a CIK (SEC identifier), e.g. '0000320193'."
    • changedInput schema / properties / ticker / pattern
      Previous value: -"^[A-Za-z.\\-]+$"New value: +"^[A-Za-z0-9.\\-]+$"
  4. Changed2 schema fields changed
    • addedOutput schema / properties / _meta / properties / fundamentals_as_of
      Added value: +{
      +  "description": "ISO timestamp when the FINANCIAL STATEMENTS were last rebuilt. Use THIS — not `last_updated` — when telling a user how current the fundamentals are. The snapshot is republished on every weekday price refresh while the statements are carried forward unchanged, so `last_updated` can be far more recent than the numbers it sits next to.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / _meta / properties / price_as_of
      Added value: +{
      +  "description": "ISO timestamp when the price surfaces were last refreshed.",
      +  "type": "string"
      +}
  5. Changed2 schema fields changed
    • addedOutput schema / properties / _meta / properties / cost_usd
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Per-call cost transparency. Omitted for subscription-only tools that have no PAYG-equivalent price.",
      +  "properties": {
      +    "amount_usd": {
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    "basis": {
      +      "description": "payg_charge = real agent-pay charge. payg_rate_card = indicative price, not billed.",
      +      "enum": [
      +        "payg_charge",
      +        "payg_rate_card"
      +      ],
      +      "type": "string"
      +    },
      +    "billed": {
      +      "description": "true = this amount was actually charged via PAYG for this call. false = indicative PAYG-equivalent value; your plan already covers this call for free.",
      +      "type": "boolean"
      +    }
      +  },
      +  "required": [
      +    "amount_usd",
      +    "billed",
      +    "basis"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / _meta / properties / latency_ms
      Added value: +{
      +  "description": "Wall-clock milliseconds this tool call took, measured server-side around the handler.",
      +  "minimum": 0,
      +  "type": "integer"
      +}
  6. Changed3 schema fields changed
    • addedOutput schema / properties / filings / items / properties / document_url
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / filings / items / properties / inline_viewer_url
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / filings / items / required
      Previous value: -[
      -  "accession_id",
      -  "form_type",
      -  "filing_date",
      -  "report_date",
      -  "accepted_at",
      -  "fiscal_year",
      -  "fiscal_period",
      -  "is_amendment",
      -  "sec_url",
      -  "viewer_url"
      -]New value: +[
      +  "accession_id",
      +  "form_type",
      +  "filing_date",
      +  "report_date",
      +  "accepted_at",
      +  "fiscal_year",
      +  "fiscal_period",
      +  "is_amendment",
      +  "sec_url",
      +  "viewer_url",
      +  "inline_viewer_url",
      +  "document_url"
      +]
  7. Changed1 schema field changed
    • addedOutput schema / properties / _meta / properties / pit_safe / description
      Added value: +"true iff a zero-look-ahead point-in-time cut was applied to every returned figure"
  8. Changed1 schema field changed
    • changedInput schema / properties / form_types / items / enum
      Previous value: -[
      -  "10-K",
      -  "10-Q",
      -  "8-K",
      -  "20-F",
      -  "10-K/A",
      -  "10-Q/A"
      -]New value: +[
      +  "10-K",
      +  "10-Q",
      +  "8-K",
      +  "20-F",
      +  "40-F",
      +  "10-K/A",
      +  "10-Q/A",
      +  "20-F/A",
      +  "40-F/A"
      +]
  9. Changed4 schema fields changed
    • changedOutput schema / properties / filings / items / properties / fiscal_period / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • addedOutput schema / properties / filings / items / properties / fiscal_year / anyOf
      Added value: +[
      +  {
      +    "type": "integer"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / filings / items / properties / fiscal_year / type
      Removed value: -"integer"
    • changedOutput schema / properties / filings / items / properties / report_date / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
  10. Changed3 schema fields changed
    • addedOutput schema / properties / _meta / properties / payg_override / properties / entity_scope_hash
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / _meta / properties / payg_override / properties / ticker_count
      Added value: +{
      +  "type": "number"
      +}
    • changedOutput schema / properties / _meta / properties / payg_override / required
      Previous value: -[
      -  "quote_id",
      -  "tool",
      -  "meter",
      -  "amount_cents",
      -  "retry_token_hash"
      -]New value: +[
      +  "quote_id",
      +  "tool",
      +  "meter",
      +  "amount_cents",
      +  "ticker_count",
      +  "entity_scope_hash",
      +  "retry_token_hash"
      +]
  11. Changed1 schema field changed
    • addedOutput schema / properties / _meta / properties / payg_override
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Set when this single response was paid for via the agent-pay PAYG flow — the rate-limit / depth-limit checks were bypassed for this call only.",
      +  "properties": {
      +    "amount_cents": {
      +      "type": "number"
      +    },
      +    "meter": {
      +      "type": "string"
      +    },
      +    "quote_id": {
      +      "type": "string"
      +    },
      +    "retry_token_hash": {
      +      "type": "string"
      +    },
      +    "tool": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "quote_id",
      +    "tool",
      +    "meter",
      +    "amount_cents",
      +    "retry_token_hash"
      +  ],
      +  "type": "object"
      +}
  12. Changed1 schema field changed
    • addedOutput schema / properties / _meta / properties / limit_warnings
      Added value: +{
      +  "description": "Soft-warning array for partial fulfillment. Each entry carries a stable subcode + remediation.options[]. AI agents pattern-match on subcode.",
      +  "items": {
      +    "additionalProperties": true,
      +    "properties": {
      +      "code": {
      +        "const": "LIMIT_EXCEEDED",
      +        "type": "string"
      +      },
      +      "current_plan": {
      +        "type": "string"
      +      },
      +      "extensions": {
      +        "additionalProperties": {},
      +        "type": "object"
      +      },
      +      "limit_type": {
      +        "type": "string"
      +      },
      +      "limit_value": {},
      +      "remediation": {
      +        "additionalProperties": true,
      +        "properties": {
      +          "contact_sales": {
      +            "type": "string"
      +          },
      +          "default_action": {
      +            "type": "string"
      +          },
      +          "options": {
      +            "items": {
      +              "additionalProperties": {},
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "pricing_page": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "options",
      +          "default_action",
      +          "pricing_page",
      +          "contact_sales"
      +        ],
      +        "type": "object"
      +      },
      +      "requested_value": {},
      +      "returned_value": {},
      +      "subcode": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "code",
      +      "subcode",
      +      "limit_type",
      +      "current_plan",
      +      "remediation"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  13. Changed1 schema field changed
    • addedOutput schema / properties / _meta / properties / truncation
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Set when fewer rows were returned than requested — explains why and points to a remedy",
      +  "properties": {
      +    "current_plan": {
      +      "type": "string"
      +    },
      +    "plan_limit": {
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    "reason": {
      +      "enum": [
      +        "PLAN_LIMIT",
      +        "DATA_NOT_AVAILABLE",
      +        "FISCAL_YEAR_BOUNDARY_FILTER",
      +        "OTHER"
      +      ],
      +      "type": "string"
      +    },
      +    "requested": {
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    "returned": {
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    "upgrade_required_for": {
      +      "type": "string"
      +    },
      +    "upgrade_url": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "requested",
      +    "returned",
      +    "reason"
      +  ],
      +  "type": "object"
      +}
  14. Changed3 schema fields changed
    • addedOutput schema / properties / _meta / properties / data_quality
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Server-side invariants run on this response",
      +  "properties": {
      +    "notes": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "validation_failed": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "detail": {
      +            "type": "string"
      +          },
      +          "rule": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "rule",
      +          "detail"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "validation_passed": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "validation_passed",
      +    "validation_failed",
      +    "notes"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / _meta / properties / rate_limit
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Caller's remaining budget",
      +  "properties": {
      +    "limit": {
      +      "type": "integer"
      +    },
      +    "remaining": {
      +      "type": "integer"
      +    },
      +    "reset_at": {
      +      "description": "ISO 8601 timestamp when the window resets",
      +      "type": "string"
      +    },
      +    "window": {
      +      "enum": [
      +        "minute",
      +        "hour"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "limit",
      +    "remaining",
      +    "reset_at",
      +    "window"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / _meta / properties / request_id
      Added value: +{
      +  "description": "Per-request correlation id (8-char)",
      +  "type": "string"
      +}
  15. Changed2 schema fields changed
    • addedOutput schema / properties / filings / items / properties / accepted_at
      Added value: +{
      +  "type": "string"
      +}
    • changedOutput schema / properties / filings / items / required
      Previous value: -[
      -  "accession_id",
      -  "form_type",
      -  "filing_date",
      -  "report_date",
      -  "fiscal_year",
      -  "fiscal_period",
      -  "is_amendment",
      -  "sec_url",
      -  "viewer_url"
      -]New value: +[
      +  "accession_id",
      +  "form_type",
      +  "filing_date",
      +  "report_date",
      +  "accepted_at",
      +  "fiscal_year",
      +  "fiscal_period",
      +  "is_amendment",
      +  "sec_url",
      +  "viewer_url"
      +]
  16. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered. The description still adds real behavioral context beyond them: result ordering ('newest first') and, importantly, a coverage limit ('Filings cover the most recent five fiscal years') that tells the agent results can silently truncate. It omits pagination/max-result behavior, which keeps it off a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the capability and payload, then usage and the alternative-tool pointer. No filler, no restatement of the title, and the tool-routing sentence is placed last where it belongs.

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?

For a filtered read tool with annotations and an output schema, this is nearly complete: it covers ordering, coverage window and when to reach for it. The one gap is that the description implies all filings while the schema default restricts form_types to 10-K and 10-Q, a default the prose never flags.

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 there is an output schema, so the schema already documents ticker, limit, date bounds, form_types and event_types with examples. The description restates the form-type vocabulary and date-window semantics but adds no syntax or constraint detail the schema lacks, so the baseline 3 applies.

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?

Starts with a specific verb and resource ('Returns a company's SEC filings') and immediately enumerates the returned payload (form type, filing/report dates, accession number, EDGAR index/document/inline XBRL links) plus ordering ('newest first'). An agent can distinguish this from verify_fact_lineage or get_company_fundamentals without opening any 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?

Explicitly states the selection condition ('when the user wants the original 10-K, 10-Q, 8-K, 20-F or 40-F filings behind the numbers') and names the alternative tool for the adjacent need ('to trace one figure to its filing, verify_fact_lineage fits'). This is the when-to-use / use-instead pattern at full strength.

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.