MCP 서버

Agent Rynku - Warsaw Stock Exchange (GPW) data for your agent

pl.agentrynku/gpw
데이터 및 분석 금융 및 투자 공개 · 연결 가능 MCP 2026-07-28

이 MCP로 할 수 있는 일

Provides Warsaw Stock Exchange market data, company filings, financial KPIs, forecasts, portfolio analysis, alerts, and investment research tools.

analyze_thesis_exposure
Rozkład portfela na ogniwa łańcucha wartości AI - gdzie masz ekspozycję, a gdzie dziurę.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {}}
analyze_trade_outcome
Rozliczenie pojedynczej transakcji: co wyszło, a co nie.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'number', 'description': 'Cap result size. Default 20, max 50.'}, 'symbol': {'type': 'string', 'description': 'Filter by symbol (canonicalised server-side).'}, 'dateIso': {'type': 'string', 'description': 'ISO date (YYYY-MM-DD) — analyze all trades on that day.'}, 'externalId': {'type': 'string', 'description': 'Specific broker order ID to analyze.'}}}
calculate_early_redemption
Rachunek opłacalności wcześniejszego wykupu obligacji.
읽기 전용
입력 스키마
{'type': 'object', 'required': ['series', 'holdingsValuePLN'], 'properties': {'series': {'type': 'string', 'description': 'Catalyst series ticker, e.g. BST0930.'}, 'holdingsValuePLN': {'type': 'number', 'description': "User's bond position value at par: number of bonds × faceValue."}, 'redemptionPricePct': {'type': 'number', 'description': 'Redemption price as percent of par. Defaults to lastPricePct, then 100.'}}}
cancel_priced_event
Odwołanie śledzonego zdarzenia.
파괴적 작업
입력 스키마
{'type': 'object', 'required': ['eventId'], 'properties': {'reason': {'type': 'string', 'description': "Optional free-text reason ≤500 chars (overwrites the event's note field)."}, 'eventId': {'type': 'string', 'description': 'ObjectId hex of the priced event to cancel.'}}}
claim_feature_request
Wzięcie zgłoszenia do pracy albo oddanie go do kolejki.
입력 스키마
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Full 24-character feature request ObjectId or its final 8-character suffix.'}, 'owner': {'type': 'string', 'description': 'Optional handle of the agent claiming or releasing the request. Defaults to the API key identity.'}, 'release': {'type': 'boolean', 'description': 'Set to true to release a request you currently hold; defaults to false to claim it.'}, 'pomiarDzis': {'type': 'string', 'description': "Today's value of the measurement the request argues from, re-measured by you before starting. Free text up to 1000 characters, because a measurement is often a sentence rather than a number. It is stored with a timestamp and nothing compares it to the description or gates on it. Claim-only: passing it together with release is refused. Why it is asked for: the premise ages faster than the queue (measured 2026-08-28 across 201 active requests: median age 3.0 days, P90 17.9 days, 71 older than a week)."}}}
compare_portfolio_risk_reward
Ranking pozycji i watchlisty według relacji zysku do ryzyka.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'number', 'description': 'Max symbols to return, default 25'}, 'includeWatchlist': {'type': 'boolean', 'description': 'Include watchlist symbols alongside holdings'}}}
compare_symbols
Porównanie kilku spółek obok siebie.
읽기 전용
입력 스키마
{'type': 'object', 'required': ['symbols'], 'properties': {'metrics': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional subset. Default includes lastClose, price change, volatility, sentiment, alerts, impliedUpsidePct, valuation availability, sector and membership. With FREE/PRO enabled, FREE gets null impliedUpsidePct even when requested. Unknown metrics ignored.'}, 'symbols': {'type': 'array', 'items': {'type': 'string'}, 'description': '2-10 tickers. Server canonicalizes.'}}}
create_decision_rule
Utworzenie reguły decyzyjnej, która ma pilnować warunku za Ciebie.
입력 스키마
{'type': 'object', 'required': ['ruleName', 'trigger', 'action'], 'properties': {'action': {'type': 'object', 'description': "Discriminated by kind. `alert_agent` = {kind: 'alert_agent', message, priority?: low|medium|high|critical} (`message` is required, priority defaults to medium). `propose_trade` = {kind: 'propose_trade', side: buy|sell|trim, message, sizingHint?: string|null}. `auto_execute` = {kind: 'auto_execute', side: buy|sell, notionalPLN, rationale}; accepted by the schema but blocked by the worker."}, 'trigger': {'type': 'object', 'description': "Discriminated by kind: position_drawdown, thesis_validity, news_classification, or price_level. ⛔ `price_level` = {symbol, universe, operator: lte|gte, price, basis?: last|close} — the plain [alert me when X crosses P] rule the other three cannot express: position_drawdown needs you to ALREADY HOLD the name (so it cannot express a BUY ladder rung), thesis_validity talks about a thesis, news_classification about a headline. **`universe` is REQUIRED** and takes a registered universe: `polish-stocks`, `czech-stocks`, `hungarian-stocks`, `romanian-stocks`, `us-stocks`, `german-stocks`, or `crypto`. The same ticker can live on multiple markets (PEP is Pepco in Warsaw and PepsiCo in New York), so without the market a threshold of 390 names neither an instrument nor a currency, and the rule is rejected at creation. Price-level evaluation currently has quote support for `polish-stocks` and `us-stocks`; a registered market without a quote adapter is retained but does not fire. **`price` is in the QUOTE CURRENCY, not PLN** — us-stocks quotes and candles are stored in dollars, so [AVGO below 390] means 390 USD; the fired event carries `currencyNote` saying so. `basis` defaults to `last` (newest `price_quotes` row, ~15 min delayed); it falls back to the daily close and says so in `basisUsed`. A price older than the freshness window does NOT fire — it refuses with a reason, because a rung proposed on yesterday's quote is a trade at a price that no longer exists."}, 'ruleName': {'type': 'string', 'description': 'Human-readable name, <=120 chars.'}, 'expiresAt': {'type': 'string', 'description': 'Optional ISO expiry. Null/omitted means no expiry.'}, 'cooldownMinutes': {'type': 'number', 'description': '0-43200. Default 60.'}}}
delete_decision_rule
Usunięcie reguły decyzyjnej.
파괴적 작업
입력 스키마
{'type': 'object', 'required': ['ruleId'], 'properties': {'ruleId': {'type': 'string', 'description': 'ObjectId hex of the rule.'}}}
find_dip_candidates
Spółki, które mocno spadły, ale fundamenty trzymają.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'number', 'description': 'Default 50, max 200.'}, 'scope': {'enum': ['watchlist', 'portfolio', 'both', 'universe'], 'type': 'string', 'description': "Default 'both' (watchlist + portfolio). 'universe' scans the selected universe filter (expensive)."}, 'anchor': {'enum': ['52w_high', 'blended_avg_cost'], 'type': 'string', 'description': "What the drawdown is measured FROM. Default '52w_high' (unchanged behaviour). 'blended_avg_cost' measures it from YOUR quantity-weighted average purchase price - the same blend the tax-loss tool uses - which is the reference that matters once you already hold the position. Two consequences to know before using it: (a) a company you do NOT hold has no anchor, so its row comes back as no_dip with that reason rather than silently falling back to the 52-week high (one list, one measure); (b) the default 15% threshold was calibrated for the 52-week anchor - being 15% below your own average is a much rarer event - so pass minDrawdownPct explicitly (e.g. 0 for 'anything below my average'). Every row for a held company carries blendedAvgCostPLN and vsBlendedAvgCostPct regardless of the anchor; negative vsBlendedAvgCostPct means the price is BELOW your average."}, 'minScore': {'type': 'number', 'description': 'PRO only. Default 55. Minimum overall Agent Rynku score, to avoid value traps. FREE uses the default.'}, 'universe': {'enum': ['polish-stocks', 'us-stocks', 'all'], 'type': 'string', 'description': 'Alias of `universeFilter` (FR 063b45f0). Use whichever feels natural.'}, 'minDrawdownPct': {'type': 'number', 'description': "Default 15. Min drawdown % from 52w high to qualify as 'dip'."}, 'universeFilter': {'enum': ['polish-stocks', 'us-stocks', 'all'], 'type': 'string', 'description': "Default 'all' (mixed PL+US). Use 'polish-stocks' or 'us-stocks' to scope. Accepts `universe` as alias."}}}
find_opportunities
Wyszukiwanie okazji według zadanych kryteriów.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'number', 'description': 'Max results. Default 10, max 50.'}, 'sectorFilter': {'type': 'array', 'items': {'type': 'string'}, 'description': "Optional sector whitelist (e.g. ['Banki','Energetyka']). Empty = all sectors."}, 'excludeSymbols': {'type': 'array', 'items': {'type': 'string'}, 'description': "Symbols to exclude (e.g. user's current portfolio when looking for new ideas). Server canonicalizes."}, 'minSentimentAvg30d': {'type': 'number', 'description': 'Minimum sentimentAvg30d (-5..+5). Default unset (no sentiment gate). Use to bias towards momentum (e.g. 1).'}, 'minImpliedUpsidePct': {'type': 'number', 'description': 'PRO only: minimum forecast.impliedUpsidePct (vs spot) to include. Default 5; ignored for FREE when FREE/PRO is enabled.'}, 'forecastFreshnessDays': {'type': 'number', 'description': 'Max age of the FUNDAMENTAL baseline (asset_forecasts.baseline.asOf) in days. Default 400, max 800. Baselines refresh on ANNUAL reports, so a 60-day window returned an empty list for most of the year (FR 0aa64bc4). Each result carries baselineAsOf + baselineAgeDays so you can tell the user how old the fundamentals are.'}, 'maxPriceSessionsMissed': {'type': 'number', 'description': "Drop symbols whose last daily candle is older than N CLOSED sessions (weekends/holidays don't count). Default 3 — guards against upside computed against a zombie quote from a delisted or suspended ticker."}}}
find_overheat_candidates
Spółki, które urosły szybciej, niż uzasadniają to wyniki.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'number', 'description': 'Default 50, max 200.'}, 'scope': {'enum': ['watchlist', 'portfolio', 'both', 'universe'], 'type': 'string', 'description': "Default 'both' (watchlist + portfolio). 'universe' scans the selected universe filter (expensive)."}, 'maxScore': {'type': 'number', 'description': 'PRO only. Default 50. This controls one of three confirmations for `trim_candidate`, not whether a symbol is included. The separate `trend_continuation` rule uses score >=55 and is unaffected. FREE uses the default.'}, 'universe': {'enum': ['polish-stocks', 'us-stocks', 'all'], 'type': 'string', 'description': 'Alias of `universeFilter` (FR 063b45f0). Use whichever feels natural.'}, 'minRunUpPct': {'type': 'number', 'description': 'Default 25.'}, 'universeFilter': {'enum': ['polish-stocks', 'us-stocks', 'all'], 'type': 'string', 'description': "Default 'all' (mixed PL+US). Use 'polish-stocks' or 'us-stocks' to scope. Accepts `universe` as alias."}}}
find_tlh_opportunities
Pozycje ze stratą, którą da się odliczyć od podatku w tym roku.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'maxResults': {'type': 'number', 'description': 'Cap on opportunities returned (sorted by tax shield desc). Default 10, max 25.'}, 'minLossPLN': {'type': 'number', 'description': 'Min |unrealized loss| PLN to surface. Default 1000. Filters tiny noise positions.'}, 'sameSector': {'type': 'boolean', 'description': 'If true (default), include suggestedReplacement same-sector. False = pure loss listing without replacements.'}}}
get_activity_feed
Ostatnie zdarzenia na Twoim koncie.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'kind': {'type': 'string', 'description': 'all | thesis_attached | thesis_evaluated | thesis_status_change | event_resolved. Default all.'}, 'limit': {'type': 'number', 'description': '1-200, default 30.'}, 'sinceIso': {'type': 'string', 'description': 'Optional ISO timestamp — only entries after this point.'}}}
get_alert_delivery_stats
Statystyki dostarczania alertów: ile poszło, ile się nie udało.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'channel': {'type': 'string', 'description': "Filter to one channel: 'telegram' | 'email' | 'webhook'. Default 'telegram'. Pass 'all' to mix."}, 'windowDays': {'type': 'number', 'description': 'Lookback window in days. Default 7, max 90.'}}}
get_alerts
Alerty dostarczone temu użytkownikowi, z filtrami po spółce i klasyfikacji.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'number', 'description': 'Max results. Default 20, max 100.'}, 'symbol': {'type': 'string', 'description': 'Optional symbol filter, e.g. KGHM.'}, 'sinceIso': {'type': 'string', 'description': 'ISO date. Return alerts after this date. Default: 7 days ago.'}, 'universe': {'enum': ['polish-stocks', 'us-stocks'], 'type': 'string', 'description': 'Optional market filter: polish-stocks (GPW) or us-stocks. Applied in the DATABASE query, so asking for 20 polish alerts scans past the US ones instead of returning whatever fits in the first page - on a measured account 85% of alerts are US, so a post-filter would have looked like [that is all there is]. An alert whose market cannot be determined (rule alert on a symbol absent from the assets table) is EXCLUDED, not passed through. An unknown value is an error listing the allowed ones, never a silently ignored filter.'}, 'classification': {'type': 'string', 'description': 'Optional: earnings | preliminary_results | earnings_conference | regulatory | ma | guidance | operational | other.'}}}
get_asset_signals
Szanse i ryzyka wykryte automatycznie dla spółki, każde z podpiętym dowodem w danych.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'symbol': {'type': 'string', 'description': 'Ticker spółki; serwer kanonikalizuje aliasy GPW.'}, 'symbols': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 20, 'description': 'Opcjonalna lista tickerów. Dla pytania o cały portfel użyj jednego wywołania z tą listą zamiast wielu wywołań symbol po symbolu.'}, 'universe': {'enum': ['polish-stocks', 'us-stocks'], 'type': 'string', 'description': 'Opcjonalny rynek. Podaj, gdy ten sam kod istnieje na obu rynkach; bez tego wygrywa GPW, ale WYŁĄCZNIE spośród wierszy aktywnych. Inna wartość niż te dwie to błąd, nie ciche puste.'}}}
get_bond_orderbook
Arkusz zleceń dla obligacji - na razie niedostępny, zwraca informację o odroczeniu.
읽기 전용
입력 스키마
{'type': 'object', 'required': ['series'], 'properties': {'series': {'type': 'string', 'description': 'Catalyst series ticker, e.g. KRU1130.'}}}
get_bond_series
Wyszukiwanie serii obligacji z Catalyst po emitencie, marży i terminie wykupu.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'number', 'description': 'Max results. Default 25, max 100.'}, 'issuer': {'type': 'string', 'description': "Optional case-insensitive issuer substring, e.g. 'kruk' matches 'KRUK SA'."}, 'sector': {'enum': ['real_estate', 'consumer_finance', 'banking', 'industrial', 'renewables', 'logistics', 'health', 'other'], 'type': 'string'}, 'couponPctMin': {'type': 'number', 'description': 'Minimum current annual coupon percentage. Works for floating and fixed rate types.'}, 'marginPctMin': {'type': 'number', 'description': 'Minimum margin over the floating reference rate. Read referenceRate in each result for the exact tenor. Default unset.'}, 'includeMatured': {'type': 'boolean', 'description': 'If true include already matured series. Default false.'}, 'issuerEquitySymbol': {'type': 'string', 'description': 'Optional exact listed equity ticker, e.g. KRUK returns KRUK SA bonds.'}, 'maturityWithinDays': {'type': 'number', 'description': 'Only return series maturing within this many days from now.'}}}
get_codex_pipeline_stats
Statystyki potoku ekstrakcji danych ze sprawozdań.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {}}
get_company_analysis
Podgląd analizy fundamentalnej spółki. Pełna treść jest dostępna w PRO.
읽기 전용
입력 스키마
{'type': 'object', 'required': ['symbol'], 'properties': {'symbol': {'type': 'string'}}}
get_company_dossier
Źródłowa pamięć decyzyjna: trwałe przewagi, słabości, otwarte ryzyka, potwierdzone wzorce i kontekst biznesowy.
읽기 전용
입력 스키마
{'type': 'object', 'required': ['symbol'], 'properties': {'symbol': {'type': 'string'}, 'perCategoryLimit': {'type': 'number', 'description': 'Max entries per category. Default 10.'}}}
get_concentration_risk
Ile portfela stoi na jednej spółce, sektorze i rynku.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'thresholds': {'type': 'object', 'properties': {'warningPct': {'type': 'number'}, 'criticalPct': {'type': 'number'}}, 'description': 'Optional override of {warningPct, criticalPct}. Default tied to risk tolerance. Apply same threshold to all 3 axes if provided.'}, 'topDriversPerSymbol': {'type': 'number', 'description': 'How many drivers per symbol to count toward driver-level exposure. Default 1 (primary), max 3.'}}}
get_conference_reminders
Nadchodzące konferencje wynikowe spółek, które śledzisz.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'symbol': {'type': 'string', 'description': 'Optional single-symbol filter (canonicalized server-side).'}, 'daysAhead': {'type': 'number', 'description': 'Window in days. Default 60, max 365.'}}}
get_conference_summary
Streszczenie konferencji wynikowej: cytaty zarządu, prognozy i sygnały ostrzegawcze.
읽기 전용
입력 스키마
{'type': 'object', 'required': ['symbol'], 'properties': {'limit': {'type': 'number', 'description': 'Max meetings (newest-first). Default 1.'}, 'symbol': {'type': 'string', 'description': 'Required. Server canonicalizes.'}, 'conferenceDate': {'type': 'string', 'description': 'Optional ISO date for a specific past conference. If omitted, returns the latest.'}}}
get_cross_market_peers
Odpowiedniki spółki na drugim rynku, z korelacją i różnicą wyceny - do porównania GPW z USA.
읽기 전용
입력 스키마
{'type': 'object', 'required': ['symbol'], 'properties': {'market': {'enum': ['us-stocks', 'european-stocks'], 'type': 'string', 'description': 'Optional peer market filter.'}, 'symbol': {'type': 'string', 'description': 'Either side of the PL<->US mapping; server canonicalizes.'}}}
get_daily_brief
Odprawa na dziś: co się zmieniło w Twoim portfelu i na watchliście.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {}}
get_dividends
Historia i znane przyszłe dywidendy spółki, z kwotą, datą, źródłem i świeżością.
읽기 전용
입력 스키마
{'type': 'object', 'required': ['symbol'], 'properties': {'symbol': {'type': 'string', 'description': 'Ticker spółki.'}}}
get_drivers
Bieżące czynniki makro: surowce, waluty, stopy, nastroje na rynku amerykańskim.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'symbols': {'type': 'array', 'items': {'type': 'string'}, 'description': "Symbols for forumSentyment, e.g. ['KGHM','XTB']. Max 20."}, 'includeForumSentiment': {'type': 'boolean', 'description': 'When true, append driver-like forumSentyment rows for provided symbols.'}}}
get_earnings_calendar
Kalendarz zbliżających się raportów okresowych.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'symbols': {'type': 'array', 'items': {'type': 'string'}, 'description': "Optional filter. Server resolves canonical symbols before lookup. Default: all user's holdings and watchlist."}, 'daysAhead': {'type': 'number', 'description': 'Window in days. Default 60, max 365.'}, 'includePast': {'type': 'boolean', 'description': 'If true also returns lastEarningsDate alongside upcoming (default false — upcoming only).'}}}
get_earnings_deepdive
Pogłębione omówienie raportu kwartalnego: co zaskoczyło, co niepokoi, co zapowiedział zarząd.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'number', 'description': 'Max results (newest-first). Default 1.'}, 'symbol': {'type': 'string', 'description': 'Required. Server canonicalizes.'}, 'quarter': {'type': 'string', 'description': "Optional 'YYYY-Qn' (e.g. '2026-Q1'). Default: latest."}, 'symbols': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 20, 'description': 'Opcjonalna lista tickerów do pobrania w jednym wywołaniu dla całego portfela.'}}}
get_evaluation_outcomes
Rozliczenie dawnych alertów po cenach: co się sprawdziło, a co nie, na tle indeksu.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'days': {'type': 'integer', 'maximum': 365, 'minimum': 1, 'description': 'Rolling calendar-day window over evaluatedAt (market time); takes precedence over sinceIso.'}, 'limit': {'type': 'number', 'description': 'Default 20, max 100. Response includes effectiveLimit and truncated=true when a larger request is capped.'}, 'symbol': {'type': 'string', 'description': 'Filter by single symbol (canonicalized server-side, e.g. KGH.PL → KGHM).'}, 'sinceIso': {'type': 'string', 'description': 'ISO8601 lower bound for evaluatedAt. Default: 90 days ago. Ignored when days is provided.'}, 'hitBandOnly': {'type': 'boolean', 'description': 'If true, only outcomes where hitBand=true (alerts that landed inside their predicted range).'}}}
get_event_risks
Kalendarz zdarzeń makro, które mogą poruszyć rynkiem.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'daysAhead': {'type': 'number', 'description': 'Forward window in calendar days. Default 30.'}}}
get_factor_context
Zmiana wybranego czynnika makro dla spółki z udokumentowanym źródłem i ekspozycją.
읽기 전용
입력 스키마
{'type': 'object', 'required': ['symbol', 'seriesId', 'currentObservationKey', 'asKnownAt'], 'properties': {'symbol': {'type': 'string', 'description': 'Symbol GPW, np. UNIMOT.'}, 'seriesId': {'type': 'string', 'description': 'Id serii z rejestru, np. fx.usd_pln_legacy_mixed.'}, 'asKnownAt': {'type': 'string', 'description': 'Kotwica wiedzy w ISO 8601.'}, 'currentObservationKey': {'type': 'string', 'description': 'Dokładny observationKey bieżącej obserwacji.'}, 'baselineObservationKey': {'type': 'string', 'description': 'Opcjonalny observationKey podstawy porównania.'}}}
get_forecast
Prognoza wyników spółki na najbliższe kwartały. Wycena modelowa jest dostępna w PRO.
읽기 전용
입력 스키마
{'type': 'object', 'required': ['symbol'], 'properties': {'symbol': {'type': 'string'}}}
get_forecast_accuracy
Historyczna celność modeli prognostycznych i to, czy model przeszedł bramkę jakości.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'number', 'description': 'Leaderboard size, 1-50 (default 10).'}, 'symbol': {'type': 'string', 'description': 'Optional GPW ticker.'}}}
get_intraday_candles
Świece godzinowe z bieżącej i poprzednich sesji.
읽기 전용
입력 스키마
{'type': 'object', 'required': ['symbol'], 'properties': {'period': {'enum': ['1d', '1w'], 'type': 'string', 'description': "Lookback window. '1d' = last 24h, '1w' = last 7d. Default '1d'."}, 'symbol': {'type': 'string'}, 'intervalSec': {'enum': [3600], 'type': 'number', 'description': 'Bar interval in seconds. Only 3600 (1h) supported in Faza B; 15m/5m planned for a later phase.'}}}
get_intraday_quote
Kwotowanie w trakcie sesji: cena, otwarcie, zakres dnia, zmiana wobec zamknięcia.
읽기 전용
입력 스키마
{'type': 'object', 'required': ['symbols'], 'properties': {'symbols': {'type': 'array', 'items': {'type': 'string'}, 'description': "1-10 tickers (e.g. ['KGHM','CDPROJEKT'])."}}}
get_market_anomalies
Ruchy cen odstające od zwykłej zmienności spółki, wyłapane automatycznie.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'symbolsScope': {'enum': ['portfolio', 'watchlist', 'both', 'all_covered'], 'type': 'string', 'description': "What universe to scan. Default 'both' (portfolio + watchlist). ⛔ 'all_covered' now means EVERY ACTIVE polish-stocks name - 392 as measured 2026-08-19. Until then it meant [symbols that happen to have a forecast document], which was 35 names, i.e. 8.4% of the market, and a criterion unrelated to price movement: of the ten largest moves that day, ZERO were inside the scan. The same label already meant [every GPW name with a sector tag] in sector_pulse_pl, so this removes a 12x split between two populations sharing one name. Cost measured before the change: candle read 35 docs / 110 kB / 163 ms versus 389 docs / 1169 kB / 356 ms; the live-quote fan-out runs under a 20 s budget and falls back to daily closes past it, so the scan cannot hang the response."}, 'withSynthesis': {'type': 'boolean', 'description': 'If true, run a Sonnet 4.6 call per flagged anomaly to write a 1-2 sentence Polish hypothesis (~$0.05 per anomaly). Default false — caller can synthesize itself or post-hoc.'}, 'sigmaThreshold': {'type': 'number', 'description': 'Min |move|/σ to flag. Default 1.5 (catches mid-magnitude moves). Use 2 for stricter, 1 for noisier.'}, 'includeMarketContext': {'type': 'boolean', 'description': "If true, also return WIG / WIG20 / mWIG40 / sWIG80 today's change as context. Default true."}}}
get_my_alert_performance
Skuteczność alertów, które dostałeś: ile się sprawdziło.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'days': {'type': 'number', 'maximum': 365, 'minimum': 1, 'description': 'Lookback window in days. Default 90, max 365. Preferred over the legacy windowDays alias.'}, 'universe': {'enum': ['polish-stocks', 'us-stocks'], 'type': 'string', 'description': 'Optional market filter. Every number in the response is then computed on that market ALONE, and the response carries `universe` plus `alertsOutsideUniverse` so the scope is readable after the fact. Why it matters: the unfiltered hit rate is an average over two markets with very different source coverage (PAP/ESPI for GPW vs an EODHD firehose for US) - measured on one account over 90 days, 1655 settled US outcomes against 284 PL. Without this filter the question [are the GPW alerts worth reading] cannot be answered from this tool. Alerts whose market cannot be determined are excluded from the filtered set.'}, 'windowDays': {'type': 'number', 'maximum': 365, 'minimum': 1, 'description': 'Deprecated alias for days, retained for existing clients. Do not pass both unless the values match.'}}}
get_news_history
Historia depesz o spółce razem z ich oceną.
읽기 전용
입력 스키마
{'type': 'object', 'required': ['symbol'], 'properties': {'limit': {'type': 'number', 'description': 'Max results. Default 20, max 100.'}, 'symbol': {'type': 'string', 'description': 'Required. Server canonicalizes.'}, 'sources': {'type': 'array', 'items': {'enum': ['gpw-espi', 'gpw-espi-archive', 'pap:biznes', 'strefa-inwestorow', 'bankier:gielda', 'comparic:feed', 'stockwatch:forum', 'eodhd-news'], 'type': 'string'}, 'description': "Optional allowlist of source values. Applied before limit; e.g. ['gpw-espi', 'gpw-espi-archive', 'pap:biznes'] returns ESPI and PAP without forum rows. Omit to preserve the default of all sources."}, 'sinceIso': {'type': 'string', 'description': 'ISO date. Default 30 days ago.'}, 'universe': {'enum': ['polish-stocks', 'us-stocks'], 'type': 'string', 'description': 'Opcjonalny rynek symbolu. Ten sam ticker może należeć do spółek na obu rynkach, więc podaj universe, aby wskazać właściwy instrument; bez niego jednoznaczny symbol rozstrzyga kolekcja assets, a homograf domyślnie wybiera polish-stocks. Odpowiedź zawsze zwraca universeUsed, a przy domyślnym wyborze homografu także universeNote.'}, 'classification': {'type': 'string', 'description': 'Optional: earnings | preliminary_results | earnings_conference | regulatory | ma | guidance | operational | sentiment | macro | management | other.'}, 'includeOtherSubjects': {'type': 'boolean', 'description': "Default false. When true, also returns evaluations written about OTHER companies that merely tag this ticker (pre-2026-08-18 behaviour). Use only when you want the full article context, not this company's own newsflow."}}}
get_outcome_settlement_health
Stan rozliczania wyników alertów i prognoz.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {}}
get_pipeline_health
Stan potoków danych: świeżość źródeł, opóźnienia, awarie.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'windowHours': {'type': 'number', 'description': 'Lookback window for the recent-evals check. Default 2. NIE dotyczy `alerts_recent` - ten mierzy alerty OD OTWARCIA SESJI i wydaje werdykt dopiero po 16:00, bo okno dwugodzinne dawalo ostrzezenie w 53% przebiegow (po pivocie GPW-only mediana to 8 alertow na cala sesje).'}}}
get_portfolio_analytics
Krzywa kapitału portfela dzień po dniu, ze stopą zwrotu, obsunięciem, zmiennością i porównaniem z WIG-iem lub S&P 500.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'period': {'enum': ['30d', '90d', '1y', 'ytd'], 'type': 'string', 'default': '30d', 'description': 'Lookback period. Default 30d.'}, 'benchmark': {'enum': ['WIG', 'SPY', 'QQQ'], 'type': 'string', 'description': 'Optional benchmark series. WIG (polish-stocks beta), SPY (broad US beta), QQQ (US growth/AI tilt).'}}}
get_portfolio_context
Obraz portfela użytkownika: pozycje, gotówka, watchlista z oceną analityka i powodem obserwacji, cele alokacji. Analiza i wycena wymagają PRO.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'include': {'type': 'array', 'items': {'enum': ['holdings', 'profile', 'watchlist', 'alerts', 'snapshots', 'drivers', 'risk'], 'type': 'string'}, 'description': 'Sekcje do zwrócenia. Pominięcie = pełna odpowiedź (jak dotąd). Nieznana nazwa to BŁĄD z listą dozwolonych, nie ciche pominięcie.'}}}
get_portfolio_stats
Statystyki ryzyka i wyniku portfela liczone z historii transakcji.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'broker': {'type': 'string', 'description': 'Optional broker filter, e.g. xtb or bossa.'}, 'account': {'type': 'string', 'description': 'Optional account filter.'}, 'curveLimit': {'type': 'number', 'description': 'Max equityCurve points returned. Default 260, max 750.'}, 'periodDays': {'type': 'number', 'description': 'Lookback window in calendar days. Default 365, max 1825.'}, 'excludeTestBrokers': {'type': 'boolean', 'description': 'Default true for combined scope. Excludes broker/account test or audit rows unless explicitly disabled.'}, 'includeOpeningBalance': {'type': 'boolean', 'description': 'Default true. Adds synthetic opening-balance buys from current holdings when broker_transactions history is incomplete.'}}}
get_portfolio_value_history
Historia wartości portfela w czasie.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'days': {'type': 'number', 'default': 180, 'maximum': 730, 'minimum': 1, 'description': 'Lookback in calendar days. Default 180, maximum 730.'}}}
get_priced_events
Lista śledzonych zdarzeń wycenionych.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'number', 'description': '1-200, default 50.'}, 'status': {'type': 'string', 'description': 'pending | resolved | cancelled | all. Default: pending.'}, 'symbol': {'type': 'string', 'description': 'Optional symbol filter.'}, 'universe': {'enum': ['polish-stocks', 'us-stocks'], 'type': 'string', 'description': 'Optional universe scope. Joins through assets to restrict by symbol universe. Accepts `universeFilter` as alias.'}, 'eventType': {'type': 'string', 'description': 'Optional event-type filter.'}, 'universeFilter': {'enum': ['polish-stocks', 'us-stocks'], 'type': 'string', 'description': 'Alias of `universe`.'}}}
get_price_series
Świece OHLC i zmienność zrealizowana - do stop-lossów i wielkości pozycji.
읽기 전용
입력 스키마
{'type': 'object', 'required': ['symbol'], 'properties': {'days': {'type': 'integer', 'maximum': 365, 'minimum': 1, 'description': 'Exact rolling lookback in calendar days; takes precedence over period. Max 365 for daily and 7 for intraday intervals.'}, 'period': {'enum': ['1d', '1w', '30d', '90d', '1y'], 'type': 'string', 'description': 'Lookback period (default 30d for daily, 1d for intraday)'}, 'symbol': {'type': 'string'}, 'interval': {'enum': ['1d', '1h', '15min', '5min'], 'type': 'string', 'description': "Bar size. '1d' (default) -> daily candles, period 30d/90d/1y. '1h'/'15min'/'5min' -> intraday, period clamped to 1d/1w. Requires EODHD intraday subscription."}}}
get_quarterly_kpis
Wyniki kwartalne spółki: przychód, zysk, bilans i przepływy, wraz z oceną jakości każdego wiersza.
읽기 전용
입력 스키마
{'type': 'object', 'required': ['symbol'], 'properties': {'symbol': {'type': 'string', 'description': "Required. XTB-style 'KGH.PL' canonicalized."}, 'quartersBack': {'type': 'number', 'description': 'How many recent quarters to return. Default 8, max 20.'}}}
get_ranking_performance
Jak ranking sprawdzał się w przeszłości.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'horizonDays': {'type': 'number', 'default': 21, 'maximum': 120, 'minimum': 1, 'description': 'Horyzont zwrotu forward w dniach kalendarzowych. Default 21. Ta sama liczba wyznacza odstep, przy ktorym okna uznaje sie za niezalezne.'}}}
get_realized_pnl
Zrealizowany wynik od początku roku i okazje do rozliczenia strat podatkowych.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'year': {'type': 'number', 'description': 'Calendar year (default current)'}}}
get_report_event
Jeden raport kwartalny jako zdarzenie: co mówi, co rozliczył, co zmienił, co zostaje otwarte, z wiekiem i źródłem każdej liczby.
읽기 전용
입력 스키마
{'type': 'object', 'required': ['symbol'], 'properties': {'symbol': {'type': 'string'}, 'eventId': {'type': 'string', 'description': 'Exact report-event id (24 hex chars) when you already have one; overrides `quarter`.'}, 'quarter': {'type': 'string', 'description': "Target quarter as YYYY-Qn, e.g. 2026-Q2. Omit for the company's most recent report."}}}
get_risk_dashboard
Zbiorczy obraz ryzyka rynkowego: jego poziom i aktywne motywy razem.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {}}
get_risk_regime
Ryzyko rynkowe: spokój, lekka nerwowość, silna nerwowość czy kryzys.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {}}
get_risk_themes
Motywy ryzyka aktywne w tej chwili.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {}}
get_signal_prediction_performance
Celność liczbowych przewidywań ruchu ceny: trafienia, kierunek, średni błąd.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'kind': {'type': 'string', 'description': 'Opcjonalny filtr rodzaju sygnału, np. opportunity | risk.'}, 'symbol': {'type': 'string', 'description': 'Opcjonalny ticker; serwer kanonikalizuje aliasy GPW.'}, 'universe': {'type': 'string', 'description': 'Opcjonalne uniwersum: polish-stocks | us-stocks. Domyślnie wszystkie.'}}}
get_spot_price
Bieżąca cena jednej spółki, z informacją, czy pochodzi z zamknięcia, czy z kwotowania w trakcie sesji.
읽기 전용
입력 스키마
{'type': 'object', 'required': ['symbol'], 'properties': {'symbol': {'type': 'string'}}}
get_stock_rankings
Ranking spółek GPW według wybranego kryterium.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'number', 'default': 20, 'maximum': 50, 'description': 'Maksymalna liczba pozycji. Default 20, max 50.'}, 'runId': {'type': 'string', 'pattern': '^[a-fA-F0-9]{24}$', 'description': 'Identyfikator opublikowanego runu wybranej kategorii.'}, 'dateKey': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Data opublikowanego runu wybranej kategorii. Brak nigdy nie wraca do bieżącego dnia.'}, 'category': {'enum': ['overall', 'defensive', 'dividend', 'growth'], 'type': 'string', 'default': 'overall', 'description': 'Ranking category. overall sorts by Agent Rynku score; growth, dividend, and defensive sort by category fit. Default: overall.'}, 'minAdvPLN': {'type': 'number', 'description': 'Dodatkowy filtr ADV w PLN. Zawęża opublikowanych członków bez zmiany ich rang. Próg samego przebiegu to od 29.09.2026 50000 w overall, growth, dividend i defensive (plus obrót w 80% z 63 sesji).'}}}
get_sygnal_score
Ocena spółki z GPW. Dokładny wynik 0-100, wymiary i uzasadnienie są dostępne w PRO. Do oceny wchodzą tylko wymiary z dowodem, najwyżej sześć: Płynność pokazujemy osobno i nie punktujemy.
읽기 전용
입력 스키마
{'type': 'object', 'required': ['symbol'], 'properties': {'days': {'type': 'number', 'description': 'Price-history lookback window for momentum/risk. Default 365, min 90, max 730.'}, 'symbol': {'type': 'string', 'description': 'GPW symbol or broker alias, e.g. KGHM, KGH.PL, ASBIS.'}}}
get_top_opportunities
Ta sama lista spółek spoza portfela co w kafelku Top okazje na pulpicie.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'number', 'description': 'Maksymalna liczba wyników. Domyślnie 5, maksymalnie 20.'}}}
get_total_portfolio_view
Portfel zsumowany ze wszystkich rachunków maklerskich, przeliczony na jedną walutę.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'topN': {'type': 'number', 'description': 'Default 10. Max concentration rows in response.'}, 'baseCurrency': {'enum': ['PLN', 'USD'], 'type': 'string', 'description': "Default 'PLN'. USD requires usdPlnRate driver - falls back to PLN with warning if missing."}}}
get_transaction_history
Historia transakcji użytkownika, od najnowszej.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'side': {'enum': ['buy', 'sell'], 'type': 'string', 'description': 'Optional transaction side filter.'}, 'limit': {'type': 'number', 'maximum': 200, 'minimum': 1, 'description': 'Maximum rows to return. Default 50, max 200.'}, 'broker': {'type': 'string', 'description': 'Optional broker filter (normalized to lowercase).'}, 'symbol': {'type': 'string', 'description': 'Optional symbol filter (normalized to uppercase).'}, 'sinceIso': {'type': 'string', 'description': 'Optional ISO timestamp; only transactions at or after it are returned.'}}}
get_wza_summary
Streszczenie walnego zgromadzenia akcjonariuszy.
읽기 전용
입력 스키마
{'type': 'object', 'required': ['symbol'], 'properties': {'limit': {'type': 'number', 'description': 'Max meetings to return (newest-first). Default 1. Use 5+ for historical comparison.'}, 'symbol': {'type': 'string', 'description': 'Required. Server canonicalizes.'}, 'wzaDate': {'type': 'string', 'description': 'Optional ISO date for a specific past WZA. If omitted, returns the latest.'}}}
historical_event_hit_rate
Jak podobne zdarzenia wpływały na cenę w przeszłości.
읽기 전용
입력 스키마
{'type': 'object', 'required': ['symbol', 'eventType'], 'properties': {'symbol': {'type': 'string', 'description': 'Alias OR canonical symbol.'}, 'eventType': {'type': 'string', 'description': 'earnings_beat | earnings_miss | dividend | regulatory | ma_close | guidance_raise | product_launch | capacity_addition | contract_award.'}, 'lookbackQuarters': {'type': 'number', 'description': '1-20, default 8 (≈2 years for dividends — typical GPW issuers pay annually so this captures 1-2 events per stock).'}}}
list_decision_rule_proposals
Propozycje reguł decyzyjnych wynikające z Twojego zachowania.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'number', 'description': '1-100, default 20.'}, 'ruleId': {'type': 'string', 'description': 'Optional ObjectId filter to a specific rule.'}, 'status': {'enum': ['pending', 'confirmed', 'rejected', 'all'], 'type': 'string', 'description': 'Default pending.'}}}
list_decision_rules
Lista Twoich reguł decyzyjnych.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'number', 'description': 'Default 50, max 200.'}, 'statusFilter': {'enum': ['active', 'paused', 'expired'], 'type': 'string', 'description': 'Optional status filter.'}}}
list_feature_requests
Lista zgłoszeń i ich stan.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'sort': {'enum': ['priority', 'newest', 'oldest'], 'type': 'string', 'description': "Ordering. 'priority' (default) = queue order: P0 first, oldest first within a rank, unranked treated as P2. 'newest' = createdAt desc (what this tool did before). 'oldest' = createdAt asc."}, 'brief': {'type': 'boolean', 'description': 'Headline mode: id, type, status, title, priority, createdAt, updatedAt, truncated founderNote, autoImplAttempts. Omits description and autoImplLastError.'}, 'limit': {'type': 'number', 'description': 'Default 20, max 50.'}, 'owner': {'type': 'string', 'description': "Optional filter by owner handle. 'operator' finds what needs a human decision, 'unassigned' finds requests nobody owns."}, 'offset': {'type': 'number', 'description': "Skip this many rows IN THE SELECTED ORDER before returning the page. Default 0. With the default sort:'priority' that means skipping queue-ordered rows (so a large offset skips urgent work, not old history) - pass sort:'newest' when you want to page back through history. Combine with total/hasMore to walk the whole list."}, 'status': {'enum': ['pending', 'reviewing', 'triaged', 'planned', 'in_progress', 'implemented', 'blocked', 'deferred', 'shipped', 'wontdo', 'duplicate'], 'type': 'string', 'description': 'Optional filter.'}, 'priority': {'enum': ['P0', 'P1', 'P2', 'P3'], 'type': 'string', 'description': "Optional filter by declared priority. Matches legacy spellings of the same rank too (P1 also finds 1 and 'high'). Requests nobody ranked are NOT returned by any value - absent priority is a separate state."}, 'reporter': {'type': 'string', 'description': "Optional filter by reporter handle. Pass your own session name to see everything YOU filed, whoever ended up owning it. 'unassigned' finds requests filed before reporters were recorded."}}}
list_webhook_events
Zdarzenia z webhooka - do sprawdzenia, czy TradingView dochodzi do Agenta Rynku.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'number', 'description': '1-100, default 20.'}, 'sourceFilter': {'enum': ['tradingview', 'n8n', 'custom'], 'type': 'string', 'description': 'Optional source filter.'}}}
macro_attribution
Co najprawdopodobniej stało za ostatnim ruchem WIG20.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'date': {'type': 'string', 'description': 'Optional YYYY-MM-DD. Defaults to latest WIG20 driver history date.'}, 'topN': {'type': 'number', 'description': 'How many ranked drivers to return. Default 6, max 12.'}}}
modify_chat_settings
Ustawienia powiadomień: próg istotności, kanały, wyciszone klasy alertów.
입력 스키마
{'type': 'object', 'required': [], 'properties': {'channels': {'type': 'array', 'items': {'enum': ['telegram', 'email', 'webhook'], 'type': 'string'}, 'description': 'Active alert channels. SMS not yet supported. Empty array silences alerts entirely.'}, 'alertWeighting': {'enum': ['flat', 'portfolio_first'], 'type': 'string', 'description': "How the per-ticker daily alert cap treats companies you do NOT hold. 'flat' (default, unchanged behaviour): every ticker gets the same 5/day cap. 'portfolio_first': tickers absent from your holdings get 2/day instead; positions you hold keep 5/day. Measured on a real 90-day account (3875 candidates): 1840 alerts under flat vs 1482 under portfolio_first, with a watchlist-only ticker dropping 186 → 95 and the largest position unchanged at 5 (its cap was never the binding constraint — it had 5 candidates in 90 days). Alias-aware: a position stored as KGH counts as held when the news says KGHM. With an empty holdings list this setting does nothing, so it cannot mute everything."}, 'notificationEmail': {'type': 'string', 'description': 'Override email (null clears, falling back to UserDoc.email).'}, 'impactThresholdPct': {'type': 'number', 'description': 'Minimum extent of the predicted range from zero in percentage points: max(|rangeLowPct|, |rangeHighPct|) (default 2, ≥ 0). This filters range extent, not the expected directional move.'}, 'espiCommunicationsEnabled': {'type': 'boolean', 'description': 'Send every official ESPI/EBI filing for watched companies. These entries are marked as communications, not alerts, and do not enter alert limits or performance history.'}, 'mutedAlertClassifications': {'type': 'array', 'items': {'enum': ['earnings', 'preliminary_results', 'earnings_conference', 'guidance', 'ma', 'regulatory', 'management', 'operational', 'macro', 'sentiment', 'other'], 'type': 'string'}, 'description': 'Mute-lista klasyfikacji alertów — te typy nie będą wysyłane jako alerty o nowych zdarzeniach. Pusta = nic nie wyciszone.'}}}
modify_holdings
Ręczna zmiana pozycji w portfelu.
입력 스키마
{'type': 'object', 'required': [], 'properties': {'add': {'type': 'array', 'items': {'type': 'object', 'required': ['symbol', 'quantity'], 'properties': {'notes': {'type': 'string'}, 'symbol': {'type': 'string'}, 'quantity': {'type': 'number'}, 'universe': {'type': 'string'}, 'avgCostPLN': {'type': 'number'}}}}, 'remove': {'type': 'array', 'items': {'oneOf': [{'type': 'string'}, {'type': 'object', 'required': ['symbol', 'broker'], 'properties': {'broker': {'type': 'string'}, 'symbol': {'type': 'string'}, 'account': {'type': 'string'}}}]}, 'description': 'A symbol string removes only manual entries. Use {symbol, broker, account?} to remove a specific broker-synced position.'}, 'update': {'type': 'array', 'items': {'type': 'object', 'required': ['symbol'], 'properties': {'notes': {'type': 'string'}, 'broker': {'type': 'string', 'description': 'Broker identifier for a broker-synced position. Omit for manual-only matching.'}, 'symbol': {'type': 'string'}, 'account': {'type': 'string', 'description': 'Broker account identifier. Defaults to an empty string when broker is provided.'}, 'quantity': {'type': 'number'}, 'avgCostPLN': {'type': 'number'}}}}}}
modify_profile
Zmiana profilu inwestora.
입력 스키마
{'type': 'object', 'required': [], 'properties': {'about': {'type': 'string', 'description': 'Free-form self-description, ≤2000 chars.'}, 'confirmed': {'type': 'boolean', 'default': False, 'description': 'false/omitted = preview only, no profile write. true = consume a matching, non-expired preview and persist exactly its fields once; otherwise refuse.'}, 'constraints': {'type': 'string', 'description': 'Constraints / no-go list, ≤2000 chars.'}, 'tradingStyle': {'enum': ['long-term', 'swing', 'day-trade', 'mixed'], 'type': 'string'}, 'riskTolerance': {'enum': ['conservative', 'moderate', 'aggressive'], 'type': 'string'}, 'defaultHorizonMonths': {'type': 'number', 'description': '1..120. Investment horizon in months.'}}}
modify_watchlist
Dodanie lub usunięcie spółki z watchlisty.
입력 스키마
{'type': 'object', 'required': [], 'properties': {'add': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Symbols to add (uppercased server-side).'}, 'remove': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Symbols to remove.'}, 'setAlarm': {'type': 'array', 'items': {'type': 'object', 'required': ['symbol', 'price'], 'properties': {'price': {'type': ['number', 'null'], 'description': "Price in the market's native currency. Pass null to clear the alarm."}, 'symbol': {'type': 'string'}, 'direction': {'enum': ['above', 'below'], 'type': 'string', 'description': 'Optional crossing direction; inferred from the latest known price when omitted.'}}}, 'description': "Set, re-arm, or clear one-shot price alarms. Example: `setAlarm: [{symbol: 'KGHM', price: 130, direction: 'below'}]`."}, 'universe': {'type': 'string', 'description': "Asset universe. Default: 'polish-stocks'. ROZSTRZYGA HOMOGRAF: ten sam kod bywa dwiema spółkami (CRM to Cormay na GPW i Salesforce w USA), a wpis watchlisty jest parą (rynek, symbol). Bez tego pola operacja na kodzie, który użytkownik trzyma na OBU rynkach, nie zgaduje strony - wraca w polu `niejednoznaczne` z prośbą o rynek i nie zmienia niczego."}, 'setThreshold': {'type': 'array', 'items': {'type': 'object', 'required': ['symbol'], 'properties': {'symbol': {'type': 'string'}, 'minImpactPct': {'type': 'number', 'description': 'Override of the global minimum predicted-range extent from zero for this symbol: max(|rangeLowPct|, |rangeHighPct|). It is not an expected directional move. 0 = no range-extent gate. Pass null to clear.'}, 'minSentimentAbs': {'type': 'number', 'description': 'Minimum |sentiment| (0..5) to fire — independent of impact. 0 = no gate.'}}}, 'description': 'Set per-asset notification threshold for one or more symbols already in the watchlist. Symbols not yet on the watchlist are auto-added.'}}}
query_companion
Zapytanie do asystenta Agenta Rynku w języku naturalnym.
입력 스키마
{'type': 'object', 'required': ['message'], 'properties': {'silent': {'type': 'boolean', 'description': 'If true, neither user message nor reply is persisted. Use for cron-driven agent checks. Default false.'}, 'message': {'type': 'string', 'description': 'Question/message in Polish.'}, 'agentLabel': {'type': 'string', 'description': "Optional tag (e.g. 'Claude-makler', 'PortfolioBot-1'). Persists the call but flags it as agent-origin so summarizer + RAG skip it."}, 'reasoningMode': {'enum': ['minimal', 'standard', 'verbose'], 'type': 'string', 'description': 'Anti-slop guardrail: minimal = final answer only, standard = default natural prose, verbose = explicit data→fakt→implikacja→wniosek chain with ≥3 sources cited.'}}}
rank_revenue_growth
Ranking wzrostu przychodów.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'number', 'description': 'Max rows, default 20, max 50'}, 'minAdvPLN': {'type': 'number', 'default': 1000000, 'minimum': 0, 'description': 'Minimum average daily turnover in PLN. Default 1000000; set 0 to disable.'}, 'maxQuarterAgeDays': {'type': 'number', 'default': 180, 'minimum': 0, 'description': 'Maximum age in full days of the latest report used for a row. Default 180. Rows without reportedAt cannot be age-filtered and remain eligible.'}, 'minBaseRevenuePLN': {'type': 'number', 'default': 5000000, 'minimum': 0, 'description': 'Minimum revenue in the comparison quarter, in PLN. Default 5000000; set 0 to retain micro-base rows (flagged with microBase).'}}}
rank_thematic
Ranking spółek w obrębie wybranego motywu inwestycyjnego.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'number', 'description': 'Maksymalna liczba spółek. Default 20, max 50.'}, 'theme': {'type': 'string', 'description': 'Opcjonalny id tematu, np. ai, gaming, defense. Bez argumentu narzędzie zwraca tematy dostępne do rankingu.'}}}
recommend_diversification
Propozycje dywersyfikacji tam, gdzie portfel jest skupiony.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'exclude': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Symbols to omit from this response. The server canonicalizes GPW and broker aliases; this list is not stored.'}, 'candidatesPerSector': {'type': 'number', 'description': 'How many ranked candidates to return per under-represented sector. Default 2, max 5.'}, 'minImpliedUpsidePct': {'type': 'number', 'description': 'Forwarded to the underlying find_opportunities scoring. Default 5.'}, 'underweightThresholdPct': {'type': 'number', 'description': 'Sector treated as under-represented when current weight < threshold. Default 5pp.'}}}
recommend_position_size
Podpowiedź wielkości pozycji z uwzględnieniem zmienności i koncentracji portfela. Wycena wymaga PRO.
읽기 전용
입력 스키마
{'type': 'object', 'required': ['symbol', 'conviction'], 'properties': {'symbol': {'type': 'string', 'description': 'Required ticker. Server canonicalizes GPW aliases.'}, 'account': {'type': 'object', 'required': ['broker'], 'properties': {'broker': {'type': 'string', 'description': 'Broker key as returned in availableCashByAccount, e.g. bossa, xtb, mbank.'}, 'account': {'type': 'string', 'description': 'Account id or type, e.g. 164655 or IKE. Omit to sum every account of that broker.'}}, 'description': 'Optional cash scope: size the position from ONE account instead of the sum over all of them. Use when the order goes to a specific brokerage account (a retirement account cannot fund a purchase on a standard one).'}, 'conviction': {'oneOf': [{'enum': ['high', 'medium', 'low'], 'type': 'string'}, {'type': 'number', 'maximum': 10, 'minimum': 1}], 'description': 'Conviction level. Strings high/medium/low or numeric 1-10 (7-10 high, 4-6 medium, 1-3 low).'}, 'stopLossPct': {'type': 'number', 'maximum': 100, 'description': 'Optional stop-loss percent (>0). When provided, sizing also respects risk-per-trade R-multiple budget. Omit (or pass null) to skip R-multiple sizing.', 'exclusiveMinimum': 0}, 'availableCash': {'type': 'number', 'description': 'Cash available for the position, in PLN. Optional; defaults to portfolio cash when omitted. Mutually exclusive with `account`.'}, 'holdingPeriodMonths': {'type': 'number', 'description': 'Optional intended holding period. Defaults to user.profile.defaultHorizonMonths; reserved for future horizon-aware tuning.'}}}
resolve_priced_event_now
Natychmiastowe rozliczenie zdarzenia po bieżącej cenie.
입력 스키마
{'type': 'object', 'required': ['eventId'], 'properties': {'eventId': {'type': 'string', 'description': 'ObjectId hex of the priced event to resolve.'}}}
run_predictive_scan
Skan spółek pod kątem zbliżających się raportów i przewidywanego zaskoczenia.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'number', 'description': 'Max candidates. Default 8, max 100.'}, 'universe': {'type': 'string', 'description': "Universe to scan. Default 'polish-stocks' (currently supported universe)."}, 'peThreshold': {'type': 'number', 'description': 'Max forward P/E to include. Default 15; symbols above threshold are dropped.'}, 'excludeSectors': {'type': 'array', 'items': {'type': 'string'}, 'description': "Sector names to omit, e.g. ['Energetyka']."}, 'excludeSymbols': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Symbols to omit. Server canonicalizes XTB-style tickers.'}, 'pricingInPenaltyWeight': {'type': 'number', 'description': 'PRO only. Weight applied to the pricing-in penalty. Default 1.0; set 0 to disable. FREE uses the default and receives ranking order without exact score.'}}}
screen_stocks
Przesiew spółek GPW po kapitalizacji, dynamice EBITDA lub przychodów r/r, powiadomieniach insiderów o nabyciu i wybiciu z maksimum na wolumenie; osobno spółki, których nie dało się ocenić.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'integer', 'default': 30, 'maximum': 50, 'minimum': 1, 'description': 'Ile spółek spełniających warunki (i osobno nierozstrzygniętych) pokazać.'}, 'wybicie': {'type': 'boolean', 'description': 'true: tylko spółki z wybiciem, czyli zamknięciem powyżej maksimum okna przy wolumenie powyżej krotności średniej.'}, 'wybicieMiesiecy': {'type': 'integer', 'default': 6, 'maximum': 12, 'minimum': 1, 'description': 'Długość okna maksimum w miesiącach. Tylko razem z wybicie: true.'}, 'insiderzyNabycia': {'type': 'boolean', 'description': 'true: tylko spółki, w których osoby z zarządu lub rady zgłosiły w oknie wyłącznie nabycia (kierunek z tytułu powiadomienia, bez wolumenów).'}, 'insiderzyOknoDni': {'type': 'integer', 'default': 90, 'maximum': 365, 'minimum': 1, 'description': 'Okno powiadomień insiderów w dniach. Tylko razem z insiderzyNabycia: true.'}, 'wybicieSesjiWstecz': {'type': 'integer', 'default': 1, 'maximum': 10, 'minimum': 1, 'description': 'Wybicie w którejkolwiek z tylu ostatnich sesji. Tylko razem z wybicie: true.'}, 'wybicieWolumenRazy': {'type': 'number', 'default': 2, 'maximum': 10, 'description': 'Ile razy wolumen sesji ma przewyższać średnią z 20 poprzednich sesji (porównanie ścisłe). Tylko razem z wybicie: true.', 'exclusiveMinimum': 1}, 'kapitalizacjaMaxPLN': {'type': 'number', 'minimum': 0, 'description': 'Maksymalna kapitalizacja w złotych, włącznie.'}, 'kapitalizacjaMinPLN': {'type': 'number', 'minimum': 0, 'description': 'Minimalna kapitalizacja w złotych (np. 200000000 dla 200 mln zł), włącznie.'}, 'dynamikaEbitdaRrMaxPct': {'type': 'number', 'description': 'Maksymalna zmiana EBITDA rok do roku w procentach, włącznie.'}, 'dynamikaEbitdaRrMinPct': {'type': 'number', 'description': 'Minimalna zmiana EBITDA ostatniego kwartału wobec tego samego kwartału rok wcześniej, w procentach (np. 20 dla +20%), włącznie.'}, 'dynamikaPrzychodowRrMaxPct': {'type': 'number', 'description': 'Maksymalna zmiana przychodów rok do roku w procentach, włącznie.'}, 'dynamikaPrzychodowRrMinPct': {'type': 'number', 'description': 'Minimalna zmiana przychodów ostatniego kwartału wobec tego samego kwartału rok wcześniej, w procentach, włącznie.'}}}
sector_pulse_pl
Puls sektorów GPW: które radzą sobie dziś lepiej, a które gorzej.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'universe': {'enum': ['all_covered', 'portfolio', 'watchlist', 'both'], 'type': 'string', 'description': "Which symbols to aggregate. Default 'all_covered' = every polish-stocks asset carrying a sector tag - 412 as measured 2026-08-02 with the handler's own predicate, NOT the ~197 this description claimed for months (so coverage is roughly double what an agent reading the old text would assume). 'both' = portfolio ∪ watchlist (personalised view). 'portfolio'/'watchlist' restricts to one set."}, 'topMoversPerSector': {'type': 'number', 'description': 'How many extreme movers to return per sector (sorted by |change|). Default 2, max 5.'}, 'minSymbolsPerSector': {'type': 'number', 'description': "Skip sectors with fewer covered symbols than this. Default 2 (avoids 1-stock 'sectors'). Max 10."}, 'includeMarketContext': {'type': 'boolean', 'description': "If true, also return WIG / WIG20 / mWIG40 / sWIG80 today's change for cross-reference. Default true."}}}
set_agent_prefs
Ustawienia zachowania agenta.
입력 스키마
{'type': 'object', 'required': [], 'properties': {'tone': {'enum': ['kumpel', 'neutralny', 'formalny'], 'type': 'string', 'description': 'kumpel = luźny forumowicz-trader, neutralny = rzeczowo, formalny = profesjonalny rejestr.'}, 'emoji': {'type': 'boolean', 'description': 'true = emoji dozwolone, false = całkowicie bez emoji.'}, 'focus': {'type': 'array', 'items': {'enum': ['portfel', 'makro', 'tezy', 'ryzyko', 'newsy'], 'type': 'string'}, 'description': 'Obszary na których agent ma się skupiać. Pusta tablica = wszystko.'}, 'jargon': {'enum': ['laik', 'standard', 'pro'], 'type': 'string', 'description': 'laik = tłumacz terminy, pro = pełny żargon rynkowy bez tłumaczenia.'}, 'verbosity': {'enum': ['zwiezle', 'standard', 'szczegolowo'], 'type': 'string', 'description': 'Długość odpowiedzi.'}}}
set_cash_balance
Ustawienie salda gotówki na rachunku.
입력 스키마
{'type': 'object', 'required': ['broker', 'account', 'currency', 'amount'], 'properties': {'amount': {'type': 'number', 'minimum': 0, 'description': 'Stan po zmianie w walucie natywnej (nie delta).'}, 'broker': {'type': 'string', 'description': 'Identyfikator brokera, np. xtb.'}, 'account': {'type': 'string', 'description': 'Numer lub alias konta.'}, 'currency': {'enum': ['PLN', 'USD', 'EUR'], 'type': 'string'}}}
submit_alert_feedback
Ocena alertu - ten sam sygnał, co kciuki w Telegramie.
입력 스키마
{'type': 'object', 'required': ['verdict'], 'properties': {'alertId': {'type': 'string', 'description': 'Hex alertId from get_alerts. Server resolves the underlying evaluationId.'}, 'verdict': {'enum': ['hit', 'miss', 'spam'], 'type': 'string', 'description': "hit = direction matched and was actionable; miss = wrong / unactionable; spam = routine ESPI noise that shouldn't have alerted at all (drives future filter tightening)."}, 'evaluationId': {'type': 'string', 'description': 'Alternative: hex evaluationId directly.'}}}
submit_broker_transactions
Wgranie historii transakcji do rozliczeń i podatków.
입력 스키마
{'type': 'object', 'required': ['broker', 'account', 'transactions'], 'properties': {'broker': {'type': 'string'}, 'account': {'type': 'string'}, 'transactions': {'type': 'array', 'items': {'type': 'object', 'required': ['externalId', 'symbol', 'side', 'quantity', 'pricePLN', 'tsIso'], 'properties': {'side': {'enum': ['buy', 'sell'], 'type': 'string'}, 'notes': {'type': 'string', 'description': 'Optional audit note, e.g. import batch id or user-entered trade rationale.'}, 'tsIso': {'type': 'string'}, 'feePLN': {'type': 'number'}, 'source': {'enum': ['manual', 'broker_api', 'broker_screenshot_ocr', 'telegram_bot', 'csv_import'], 'type': 'string', 'description': 'Optional source of the transaction row. Defaults to broker_api.'}, 'symbol': {'type': 'string'}, 'pricePLN': {'type': 'number'}, 'quantity': {'type': 'number'}, 'externalId': {'type': 'string'}}}}}}
submit_feature_request
Zgłoszenie błędu, pomysłu albo brakujących danych do zespołu Agenta Rynku.
입력 스키마
{'type': 'object', 'required': ['type', 'title', 'description'], 'properties': {'type': {'enum': ['feature', 'bug', 'improvement', 'question'], 'type': 'string'}, 'owner': {'type': 'string', 'description': "WHO WORKS ON IT. Optional: defaults to the main coding agent, which is correct for almost every request. Override only when the work clearly belongs elsewhere, or pass 'operator' when the request exists purely to get a human decision. Unlike `reporter`, this moves as the work moves."}, 'title': {'type': 'string', 'description': 'Krótki tytuł (3-200 znaków)'}, 'context': {'type': 'string', 'description': 'Optional: co próbowałeś, expected vs actual behavior'}, 'priority': {'enum': ['P0', 'P1', 'P2', 'P3'], 'type': 'string', 'description': 'Optional declared urgency: P0 is most urgent, P3 least urgent. Omit only when the request has not been ranked.'}, 'reporter': {'type': 'string', 'description': "WHO IS FILING THIS: your own session name, e.g. 'BOSSA makler', 'XTB makler', 'AR PM'. Spaces and capitals are fine, they are folded for you ('AR PM' becomes 'ar-pm'). NEVER CHANGES afterwards - it is the record of where the report came from. A broker agent is a reporter on many tickets and the owner of none."}, 'description': {'type': 'string', 'description': 'Pełny opis (10-5000 znaków)'}, 'callback_url': {'type': 'string', 'description': 'Optional URL. Agent Rynku will POST { id, status, founderNote, updatedAt } when status changes.'}}}
submit_portfolio_snapshot
Wgranie stanu rachunku z zewnętrznego brokera.
입력 스키마
{'type': 'object', 'required': ['broker', 'account', 'asOfIso', 'holdings'], 'properties': {'notes': {'type': 'string'}, 'broker': {'type': 'string', 'description': "Broker identifier: 'xtb', 'bossa', 'mbank', etc."}, 'account': {'type': 'string', 'description': "Account identifier: number, alias, or ''."}, 'asOfIso': {'type': 'string', 'description': 'ISO 8601 timestamp from broker API.'}, 'cashPLN': {'type': 'number', 'description': 'PLN cash balance (optional, legacy single-currency field).'}, 'holdings': {'type': 'array', 'items': {'type': 'object', 'required': ['symbol', 'quantity'], 'properties': {'symbol': {'type': 'string'}, 'quantity': {'type': 'number'}, 'universe': {'type': 'string', 'description': 'Optional asset universe. Defaults to polish-stocks.'}, 'avgPricePLN': {'type': 'number', 'description': "Average cost in PLN (broker's reporting currency)."}}}}, 'cashByCurrency': {'type': 'object', 'description': 'Native multi-currency cash, keyed by ISO code, e.g. {"PLN": 22578, "USD": 144}. Preferred over cashPLN for multi-currency accounts (keeps USD/EUR cash in native currency — no manual FX conversion). Values are numbers or null; non-ISO keys ignored.', 'additionalProperties': {'type': ['number', 'null']}}, 'totalEquityPLN': {'type': 'number', 'description': 'Total equity for sanity check.'}}}
suggest_order_size
Wielkość zlecenia z uwzględnieniem dostępnej gotówki na konkretnym rachunku.
읽기 전용
입력 스키마
{'type': 'object', 'required': ['broker', 'intent', 'targetQty'], 'properties': {'broker': {'enum': ['bossa', 'xtb', 'mbm'], 'type': 'string', 'description': "Broker fee schedule to use. 'bossa' (0.291% min 5 PLN), 'xtb' (0% to 100k EUR MTD turnover, then 0.2% min 10 EUR), 'mbm' (0.39% min 5 PLN)."}, 'intent': {'enum': ['buy', 'sell'], 'type': 'string', 'description': 'Direction. Affects commission for some brokers (currently none — symmetric — but kept for future).'}, 'symbol': {'type': 'string', 'description': 'Ticker. Used for commission calculation only — server canonicalizes for diagnostics.'}, 'targetQty': {'type': 'number', 'description': 'How many shares to transact total.'}, 'currentPrice': {'type': 'number', 'description': 'Last known price PLN/share. If omitted, server reads price_history_daily.'}, 'xtbCurrentMtdEur': {'type': 'number', 'description': "XTB only: user's MTD stocks turnover EUR. Default 0 (assume tier-1 free). Used to compute when remaining order cliffs into 0.2% paid tier."}}}
track_priced_event
Zapisanie zdarzenia, którego wpływ na cenę chcesz rozliczyć później.
입력 스키마
{'type': 'object', 'required': ['symbol', 'eventType', 'expectedDateIso', 'expectedDirection', 'expectedMagnitudePct'], 'properties': {'note': {'type': 'string', 'description': 'Free-text user note <=500 chars.'}, 'symbol': {'type': 'string', 'description': 'Alias OR canonical symbol - server canonicalises.'}, 'alertRef': {'type': 'string', 'description': 'Optional ObjectId of the alert that triggered this flag.'}, 'eventType': {'type': 'string', 'description': 'earnings_beat | earnings_miss | dividend | regulatory | ma_close | guidance_raise | product_launch | capacity_addition | contract_award.'}, 'thesisRef': {'type': 'string', 'description': 'Optional legacy user thesis id (old position_theses id, still recorded on the ledger claim).'}, 'expectedDateIso': {'type': 'string', 'description': 'ISO date or datetime when event is expected to occur.'}, 'expectedDirection': {'type': 'string', 'description': 'up | down - direction of expected price impact.'}, 'probabilityEstimate': {'type': 'number', 'description': '0-100 confidence event will occur. Default 50.'}, 'expectedMagnitudePct': {'type': 'number', 'description': 'Absolute magnitude in pct (e.g. 5 = 5%, sign in expectedDirection).'}}}
update_decision_rule
Zmiana reguły decyzyjnej.
입력 스키마
{'type': 'object', 'required': ['ruleId', 'patch'], 'properties': {'patch': {'type': 'object', 'description': 'Allowed fields: status active|paused|expired, cooldownMinutes 0-43200, expiresAt ISO|null.'}, 'ruleId': {'type': 'string', 'description': 'ObjectId hex of the rule.'}}}
update_priced_event
Zmiana szczegółów śledzonego zdarzenia.
입력 스키마
{'type': 'object', 'required': ['eventId'], 'properties': {'note': {'type': 'string', 'description': 'Free-text ≤500 chars (overwrites).'}, 'eventId': {'type': 'string', 'description': 'ObjectId hex of the event to update.'}, 'thesisRef': {'type': 'string', 'description': 'Cross-link to a legacy user thesis id (old position_theses id still recorded on the ledger claim, must belong to user). Empty string clears the link.'}, 'expectedDateIso': {'type': 'string', 'description': 'New expected date (ISO).'}, 'expectedDirection': {'type': 'string', 'description': 'up | down.'}, 'probabilityEstimate': {'type': 'number', 'description': '0-100.'}, 'expectedMagnitudePct': {'type': 'number', 'description': '0 < magnitude ≤ 100.'}}}
whats_moving_now
Co się dziś rusza na rynku - największe zmiany sesji.
읽기 전용
입력 스키마
{'type': 'object', 'required': [], 'properties': {'topAlerts': {'type': 'number', 'description': 'How many recent material alerts (last 24h) to surface. Default 3, max 10.'}, 'topSectors': {'type': 'number', 'description': 'How many sectors (by abs median move) to surface. Default 3, max 5.'}, 'topAnomalies': {'type': 'number', 'description': 'How many σ-anomalies (from all_covered scan) to surface. Default 5, max 10.'}, 'withNarrative': {'type': 'boolean', 'description': 'If true, run a single Sonnet 4.6 call (~$0.05) that weaves sectors+anomalies+alerts+market context into a 2-4 sentence Polish hypothesis (LABELED). Default false.'}, 'sigmaThreshold': {'type': 'number', 'description': 'Min |move|/σ for the anomaly leg. Default 1.5.'}}}
추가됨
screen_stocks
2026년 10월 1일 2:42 AM
변경됨
get_stock_rankings
2026년 10월 1일 2:42 AM
변경됨
get_risk_dashboard
2026년 10월 1일 2:42 AM
변경됨
get_risk_regime
2026년 10월 1일 2:42 AM
변경됨
update_priced_event
2026년 9월 29일 2:48 AM
변경됨
track_priced_event
2026년 9월 29일 2:48 AM
변경됨
compare_symbols
2026년 9월 29일 2:48 AM
변경됨
run_predictive_scan
2026년 9월 29일 2:48 AM
변경됨
find_overheat_candidates
2026년 9월 29일 2:48 AM
변경됨
find_dip_candidates
2026년 9월 29일 2:48 AM
변경됨
find_opportunities
2026년 9월 29일 2:48 AM
변경됨
modify_chat_settings
2026년 9월 29일 2:48 AM
변경됨
get_sygnal_score
2026년 9월 29일 2:48 AM
변경됨
get_factor_context
2026년 9월 29일 2:48 AM
변경됨
get_company_analysis
2026년 9월 29일 2:48 AM
변경됨
get_forecast
2026년 9월 29일 2:48 AM
변경됨
recommend_position_size
2026년 9월 29일 2:48 AM
변경됨
get_portfolio_context
2026년 9월 29일 2:48 AM
추가됨
rank_thematic
2026년 9월 27일 2:40 AM
추가됨
rank_revenue_growth
2026년 9월 27일 2:40 AM
추가됨
get_stock_rankings
2026년 9월 27일 2:40 AM
추가됨
get_ranking_performance
2026년 9월 27일 2:40 AM
추가됨
get_outcome_settlement_health
2026년 9월 27일 2:40 AM
추가됨
get_codex_pipeline_stats
2026년 9월 27일 2:40 AM
추가됨
get_event_risks
2026년 9월 27일 2:40 AM
추가됨
get_risk_dashboard
2026년 9월 27일 2:40 AM
추가됨
get_risk_themes
2026년 9월 27일 2:40 AM
추가됨
get_risk_regime
2026년 9월 27일 2:40 AM
추가됨
resolve_priced_event_now
2026년 9월 27일 2:40 AM
추가됨
get_activity_feed
2026년 9월 27일 2:40 AM