Skip to main content
Glama

Search Stocks

search_securities
Read-only

Searches stocks by ticker or company name and returns canonical security identities.

WHEN TO USE: The user asks to find stocks, a company name is ambiguous, or a workflow specifically needs the canonical CUSIP.

WHEN NOT TO USE:

  • Call analyze_stock directly for an ordinary ticker or CUSIP

  • Use find_signals when screening across stocks rather than resolving a single name

RETURNS: Up to the requested limit (maximum 10) of matching securities, each with CUSIP + ticker + issuer + sector + listing status.

CITE: When you present these results, link web_url (the page with the full view) and cite record-level source_url filing or disclosure links when present.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "query": "<query>"
    },
    "name": "search_securities"
  }
}

Input Schema

NameRequiredDescriptionDefault
limitNo
queryYes

Output Schema

NameRequiredDescriptionDefault
accessNo
resultsYes
web_urlNoHoldingsIntel page with the full view of this answer. Link it when you present the result.
provenanceNo
data_statusNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedOutput schema / properties / web_url
      Added value: +{
      +  "description": "HoldingsIntel page with the full view of this answer. Link it when you present the result.",
      +  "pattern": "^https:\\/\\/www\\.holdingsintel\\.com\\/",
      +  "type": "string"
      +}
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "access": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "limited_fields": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "message": {
      +          "type": "string"
      +        },
      +        "tier": {
      +          "type": "string"
      +        },
      +        "upgrade_url": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        }
      +      },
      +      "required": [
      +        "tier",
      +        "limited_fields"
      +      ],
      +      "type": "object"
      +    },
      +    "data_status": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "complete": {
      +          "const": false,
      +          "type": "boolean"
      +        },
      +        "message": {
      +          "type": "string"
      +        },
      +        "missing": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "minItems": 1,
      +          "type": "array"
      +        }
      +      },
      +      "required": [
      +        "complete",
      +        "missing"
      +      ],
      +      "type": "object"
      +    },
      +    "provenance": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "data_through": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "source": {
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "results": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "cusip": {
      +            "type": "string"
      +          },
      +          "issuer_name": {
      +            "type": "string"
      +          },
      +          "listing_status": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "match_type": {
      +            "enum": [
      +              "exact_cusip",
      +              "exact_ticker",
      +              "exact_name",
      +              "prefix",
      +              "contains"
      +            ],
      +            "type": "string"
      +          },
      +          "sector": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "ticker": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "cusip",
      +          "ticker",
      +          "issuer_name",
      +          "match_type",
      +          "sector",
      +          "listing_status"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "results"
      +  ],
      +  "type": "object"
      +}
  3. First observed

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds real value beyond that: a hard result cap (maximum 10), the per-record fields returned, and a citation obligation linking web_url and source_url. The returns list is partially redundant with the output schema, which keeps it from 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?

Front-loaded with the core action, then organized into labeled WHEN TO USE / WHEN NOT TO USE / RETURNS / CITE blocks. Every block carries decision-relevant information; there is no filler or repetition of the title.

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 an output schema present, the description needn't enumerate return values, yet it adds a short RETURNS summary and citation instructions that an agent needs for correct downstream presentation. Combined with routing guidance against two siblings, an agent has everything needed to call and use it correctly.

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 description coverage is 0%, so the description must carry the load. It explains the query accepts ticker or company name and references ambiguity resolution, and restates the limit ceiling of 10. It stops short of describing matching behavior (prefix vs exact, ranking), which is a gap for a search tool at zero schema documentation.

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 ('Searches stocks by ticker or company name') plus the output nature ('returns canonical security identities'). It is immediately distinguishable from analyze_stock (analysis) and find_signals (screening) 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?

Provides explicit WHEN TO USE triggers (finding stocks, ambiguous company name, need for canonical CUSIP) and a WHEN NOT TO USE block that names the two competing siblings and the conditions that select them. Nothing is left to inference.

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.