Skip to main content
Glama

Get company risk profile

get_company_risk
Read-only

Assess a stock's risk profile using a 0–100 composite score, six mechanism dials, filing-derived risk factors, supplier concentration, and recent material events.

Instructions

Bullrun's company risk read for one stock: a 0-100 composite risk score and six mechanism dials (market expectation, operating pressure, cash conversion, leverage & coverage, competitive position, concentration) with band (Contained/Normal/Elevated/Stretched/Acute), direction vs the prior reading, the driving input and a plain-English explanation; plus filing-derived risk factors (severity, mechanism, source filing), identified supplier concentration (share of cost base covered, HHI, sole-source count, top supplier share) and recent material events. Use for "how risky is X", "what are the main risks for X", "is X's supply chain concentrated", or before adding a stock to a portfolio. Pair with get_company_relationships for the named competitors/suppliers/customers behind the concentration dial. Bands describe measured strain, never a buy/sell view. Read-only.

Input Schema

NameRequiredDescriptionDefault
detailNosummary = scores, bands, drivers and explanations; full = also every per-input term behind each category score.summary
tickerYesBullrun ticker, e.g. "AAPL", "ASML", "NESN", "6324.T" or "0700.HK". Use the listing ticker returned by search_stocks. US/European examples: AAPL, BMW, NESN. Most Asian listings keep their exchange suffix (6324.T, 0700.HK); some use bare codes (005930). Native or suffixed forms resolve only when one listing matches; search by company name or ISIN if unsure.
includeNoModules to return. dials = composite + six mechanism dials (market expectation, operating pressure, cash conversion, leverage, competitive position, concentration); risk_factors = filing-derived risk factors (10-K/annual report) with severity and mechanism; supplier_exposure = identified supplier spend concentration; events = recent restructuring/legal/supply/recall events; headline = latest news headline beside the dials. Default: dials, risk_factors, supplier_exposure.
maxEventsNoMax recent company events to return, most severe first.
maxRiskFactorsNoMax filing risk factors to return, most severe first.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.9.0
    • changedInput schema / properties / ticker / description
      Previous value: -"Bullrun ticker, e.g. \"AAPL\", \"ASML\", \"NESN\", \"6324.T\" or \"0700.HK\". Bullrun tickers: US and most European listings use the plain local symbol (AAPL, BMW, NESN, ABBN); most Asian and Indian listings keep their exchange suffix (Tokyo 6324.T, Hong Kong 0700.HK, Shanghai 600519.SS, Shenzhen 000001.SZ, Taiwan 2330.TW, Korea 000100.KS, Singapore D05.SI, India RELIANCE.NS), but some Japanese and Korean large caps are plain codes (Toyota 7203, Samsung 005930). Either form is resolved automatically when exactly one listing matches; use search_stocks to find a ticker by company name or ISIN."New value: +"Bullrun ticker, e.g. \"AAPL\", \"ASML\", \"NESN\", \"6324.T\" or \"0700.HK\". Use the listing ticker returned by search_stocks. US/European examples: AAPL, BMW, NESN. Most Asian listings keep their exchange suffix (6324.T, 0700.HK); some use bare codes (005930). Native or suffixed forms resolve only when one listing matches; search by company name or ISIN if unsure."
  2. Addedv0.7.0

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=false, so safety is covered; the description adds real non-annotation context: dials have a direction versus the prior reading, risk factors are filing-derived (10-K/annual report), and bands measure strain rather than a buy/sell recommendation. It does not discuss latency, coverage gaps, or what happens when a module has no data, which would be needed for 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.

Conciseness4/5

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

Effectively one long front-loaded sentence plus three short follow-ups; the core purpose and return contents come first and nothing is wasted. The opening sentence is dense with parenthetical enumerations that could be tightened, costing it the top score.

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 complex, no-output-schema, five-parameter analytics tool the description does the heavy lifting: it names every returned module, the band vocabulary, and the severity/mechanism metadata on risk factors. Missing only edge-case behavior (empty modules, ticker ambiguity handling), which the ticker schema partly covers.

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 coverage is 100% and each parameter already carries a thorough description, including ticker resolution rules and per-module meanings for 'include'. The prose adds no parameter-level guidance beyond restating the module set, 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?

Opens with a specific verb and resource ('company risk read for one stock') and immediately enumerates the concrete outputs: a 0-100 composite score plus six named mechanism dials with bands, direction, driver and explanation. It is clearly distinguishable from siblings like get_etf_risk, get_risk_movers and get_company_risk_history, none of which are described as a per-stock composite with mechanism dials.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete trigger phrasings ('how risky is X', 'is X's supply chain concentrated') and a workflow cue ('before adding a stock to a portfolio'), plus an explicit pairing instruction with get_company_relationships. It lacks an explicit when-not-to-use clause (e.g. versus get_company_risk_history for trend-only questions), which keeps it below a 5.

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