- Brand
- ForInvest
- Category
- Finance
- Primary Subcategory
- Trading & Live Market Data Platforms
Integration details
Description
Forinvest MCP: Real-Time Market Intelligence & Trading Integration Connect your AI assistant directly to the heartbeat of global financial markets. The Forinvest MCP (Model Context Protocol) app transforms ChatGPT into a powerful financial agent with 22 MCP tools, providing secure, low-latency access to: Live Market Data: Instant access to BIST, VIOP, global indices, commodities, and crypto prices. Advanced Analytics: Professional-grade technical analysis tools and financial indicators at your fingertips. Smart Portfolio Insights: Seamlessly retrieve and analyze portfolio data with institutional precision. Seamless Connectivity: Built on the MCP standard for secure, bidirectional communication between ChatGPT and Forinvest's robust financial infrastructure. Whether you're tracking real-time price movements or seeking deep market analysis, Forinvest MCP provides the reliable data layer needed for informed decision-making. We provide a next-generation financial ecosystem, offering real-time Borsa Istanbul (BIST) data, AI-driven stock analysis, and comprehensive financial tools. Our platform streamlines investment processes by integrating deep-dive balance sheet metrics, brokerage expectations, and instant access to public disclosure (KAP) documents. Data collected: ForInvest account credentials (for OAuth authentication), symbol codes and date ranges you query, and session identifiers. Tool inputs and outputs are not stored beyond the active session. Financial data returned by tools is sent back to ChatGPT for display. No personal data is sold or used for advertising. Privacy Policy: https://mcp.forinvest.com/privacy.html
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- Trading & Live Market Data Platforms
- Secondary Subcategories
- None listed
- Brand
- ForInvest
- Access
- Account required
- First tracked
- 2026-06-02
- Tool count
- 22
- Market
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Your score is coming
ChatGPT now suggests Plugins on its own when they match a user's request.Your Plugin Discovery Score measures how often yours appears, and it will show here as soon as it’s ready.
What discovery looks like

Get alerts for ForInvest
Get updates when ForInvest’s Discoverability Score or category rank changes.
Competing in ChatGPT Trading & Live Market Data Platforms
View Category22 tools agents can invoke
Returns analyst forecast and broker model portfolio data for BIST securities. **type="forecast"** — Analyst target price forecasts: - mode="averages": Consensus target prices (lowest/average/highest) and buy/sell/hold counts per symbol. - mode="detail": Target price forecasts filtered by broker and/or symbol. - mode="history": Historical price target revisions by broker for a symbol. **type="portfolio"** — Broker model portfolios: - mode="averages": Broker consensus target prices (lowest/average/highest) and analyst count per symbol. - mode="list": Target prices and portfolio weights filtered by broker, symbol, or both. - mode="updates": Recent broker model portfolio changes. last must be 1, 7, 14, or 30 days; default is 7. Optional client-side reduction (filter → limit → calculate) runs locally; for keyed multi-symbol responses it applies per symbol and preserves symbol keys. In portfolio updates, `last` is the upstream day-window; use `limit` for local trimming. **Examples:** - Forecast averages: type: "forecast", mode: "averages", symbolCodes: ["GARAN", "THYAO"] - Forecast detail: type: "forecast", mode: "detail", brokerCode: "ACP", symbolCode: "GARAN" - Forecast history: type: "forecast", mode: "history", brokerCode: "FNY", symbolCode: "GARAN" - Portfolio averages: type: "portfolio", mode: "averages", symbolCodes: ["GARAN", "ASELS"] - Portfolio list: type: "portfolio", mode: "list", symbolCode: "GARAN" - Portfolio updates: type: "portfolio", mode: "updates", last: 7 Time zone: Europe/Istanbul.
analystData
Resolves one or more broker codes to full brokerage firm records: BrokerId, BrokerCode, BrokerShortName, BrokerName, BrokerLegacyCode, BrokerType, BrokerStatus. Matches both internal codes (GDK) and legacy codes (GDK.B). **Example:** brokerDefinitions with brokerCodes: ["GDK", "FNY.B"] Use when you have verified broker codes from symbolSearchFlex or analystData forecasts/model portfolios and need their names. Time zone: Europe/Istanbul.
brokerDefinitions
Returns historical settlement (takas/custody) positions for BIST symbols. Use mode "at" for one date or "last" for recent days. The optional rc parameter filters the response to specific broker/institution codes; it does not provide order-book depth. Example: { mode: "at", codes: ["GARAN"], at: "20250110", rc: ["CIY.B"] }. Time zone: Europe/Istanbul.
brokerActivity
Returns company profile information for one or more BIST symbols. By default, returns a compact profile with the main identity, activity, dates, capital, management, and employee fields to reduce LLM context size. Use the optional fields parameter to request a different projection. fields must use the exact normalized names: BistCode, IpoDate, EstablishmentDate, FirstTransactionDate, Phone, Fax, FieldOfActivity, RegisteredCapital, GeneralManager, EmployeeUnion, EmployerUnion, NumberOfEmployee, Address, Website, BoardMembers, CompanyName, Partners, Shareholders, ExchangePosition. Large fields such as Partners, Shareholders, BoardMembers, ExchangePosition, Address, Website, Phone, and Fax are not returned by default; request them explicitly when needed. If fields is provided, only those fields are returned. **Examples:** - Compact default: companyInfos with codes: ["GARAN"] - Ownership details: companyInfos with codes: ["GARAN"], fields: ["CompanyName", "Shareholders", "Partners"] - Contact details: companyInfos with codes: ["GARAN"], fields: ["CompanyName", "Address", "Phone", "Website"] Time zone: Europe/Istanbul.
companyInfos
Returns corporate actions data: splits, dividends, rights issues, and future scheduled events. Types: - "historyByCode": Historical corporate actions for specified symbols. Fields: Date, Code, RightsIssuePercent, BonusIssuePercent, DividendPercent, GrossDividendAmount, NetDividendAmount, AdjustmentRatio. - "historyByDate": Corporate actions within a date range. Fields: Date, SymbolCode, RightIssuesPercent, BonusIssuesPercent, DividendPercent, GrossDividendAmount, NetDividendAmount, SplitRatio, SplitStatus, Exchange. Exchange can be BIST, CSE, or ATHEX. - "future": Future scheduled stock splits. Omit codes to return all symbols; when codes are provided the result is keyed by input code. Fields: symbolCode, announcementDate, isExecuted, rightsIssuePercent, bonusIssuePercent, otherRightsPercent, dividendPercent, isSpkApproved, futureCapital, currentCapital, effectiveDate, rightsDate, bonusDate, scripDate, otherRightsDate. - "dividendChamps": Top 20 BIST stocks by dividend yield per year. History GrossDividendAmount and NetDividendAmount are amounts, not percentages; null means unavailable. Date parameters: - "historyByDate" requires full calendar dates in "from" and "to" (YYYYMMDD, e.g. "20240101"; YYYY-MM-DD and an 8-digit number like 20240101 are also accepted). Resolve relative ranges like "last week" or "last 7 days" to explicit full dates yourself before calling — do NOT pass a bare year. A 4-digit year alone is rejected for this type. - "dividendChamps" is the only type that takes numeric years in "from"/"to" (e.g. 2023, 2024). Client-side response reduction is applied after normalization and does not change the upstream request: filter selects rows by fields, limit caps rows after filtering, and calculate supports sum, count, min, max, avg, first, or last. Numeric calculations require field, for example {function: "avg", field: "DividendPercent"}; multiple operations and groupBy are supported in order filter → limit → calculate. For keyed symbol responses, transformations apply independently to each symbol's array and preserve symbol keys. Optional client-side reduction (filter → limit → calculate) runs locally; for keyed symbol responses it applies per symbol and preserves symbol keys. **Examples:** - By code: type: "historyByCode", codes: ["GARAN", "ASELS"] - By date: type: "historyByDate", from: "20240101", to: "20241231", exchange: "BIST" - Future: type: "future", codes: ["GARAN"] — or omit codes for all symbols - Dividend champs: type: "dividendChamps", from: 2023, to: 2024 Time zone: Europe/Istanbul.
corporateActions
Returns economic calendar events: date, country, event name, importance level (1-3), and actual/forecast/previous values. Optional client-side reduction (filter → limit → calculate) runs locally and does not change the upstream request. **Example:** economicCalendar with countryCode: "US", from/to for date range, filter: {field: "ImportanceLevel", op: "gte", value: 2}, limit: 10. Time zone: Europe/Istanbul.
economicCalendar
Returns financial ratio and fundamental analysis data. Modes: - "lastQuarter": Latest quarter metrics (NetProfit, EBITDA, ROA, ROE, debt ratios) per symbol. - "multiPeriod": Financial ratios across multiple quarters. Specify starting term and number of periods. - "snapshot": Real-time fundamental analysis metrics (P/E, P/B, EPS, dividend yield, market cap) per symbol. **Examples:** - lastQuarter: mode: "lastQuarter", codes: ["GARAN", "ASELS"] - multiPeriod: mode: "multiPeriod", codes: ["GARAN"], term: "2024-12", iry: 4 - snapshot: mode: "snapshot", codes: ["GARAN", "THYAO"] Time zone: Europe/Istanbul.
financialRatios
Returns financial statements or discovers companies by financial-statement announcement date. - type "balance": Assets, liabilities, equity line items. Auto-discovers recent periods (use limit). - type "income": Revenue, expenses, net profit line items. Requires explicit term (e.g., "2024-12"). - type "cashFlow": Operating/investing/financing activities. Auto-discovers recent periods (use limit). - type "announcements": Find filings announced in an inclusive Europe/Istanbul date range. No codes required. Searches all four reporting periods in the range's calendar years and the preceding year; returns dates and reporting periods, not statement figures. Check meta for searched scope, limitReached and unusableRecordCount before claiming no filings exist. Parameters: - codes: Required for statement types; optional company filter for announcements - type: "balance" | "income" | "cashFlow" | "announcements" - consolidated: true (default) for statements; announcements includes both consolidation bases - term: Required for income type. Format: "YYYY-M" (e.g., "2024-3", "2024-12") - limit: For balance/cashFlow — number of recent periods to return (default 4, max 20) - from, to: Required for announcements; inclusive announcement dates YYYY-MM-DD, at most 366 days apart. These are publication dates, not reporting periods. - last: Announcements only — upstream row limit per reporting year/period (default/max 500). limitReached means the retrieved list may be incomplete. **Examples:** - Balance: codes: ["GARAN"], type: "balance", limit: 4, consolidated: true - Income: codes: ["GARAN", "ASELS"], type: "income", term: "2024-12", consolidated: true - Cash Flow: codes: ["THYAO"], type: "cashFlow", limit: 4 - Announcements: type: "announcements", from: "2026-10-12", to: "2026-10-12" Time zone: Europe/Istanbul.
financialStatements
Fuzzy, typo-tolerant full-text search over ForInvest symbol definitions (code, name, issuer, exchange, metadata). Resolve a symbol here before using its code in other tools when the exact code is unknown or the user names an asset in natural language. **superDomain is REQUIRED (search mode).** Pick the most specific one; see the superDomain enum for each scope. Do not send "default" — broad default search is an internal fallback only. Non-broker searches auto-fall back to the default index when a scope returns nothing. **Search policy (important for accuracy):** - Preserve the user's natural wording first (e.g. "ons altın", "altın", "petrol"); do NOT prematurely rewrite to a ticker/parity like "XAU/USD". Try English equivalents only if the first search fails. - US equities → superDomain "us-equity" (never route them through "bist-stock" or the default fallback). Treat CBOE/EDGX as the ForInvest feed venue; do not infer a primary NYSE/NASDAQ listing unless a result states it. - Use "fx" for currency pairs and generic precious-metal quotes; "spot" for the SPOT catalog (Grand Bazaar, bank/exchange-office quotes, local precious-metal products). The word "spot", an exchange of "SPOT", or an ounce/gram unit alone does NOT decide the scope. - Use "bist-derivatives" only when the request explicitly targets futures, warrants, options, or VIOP. - where (filter) only when the agent prompt specifies it; do not invent filters. For derivatives you may filter securityType: "Warrant" or "Option". **Returns:** matching symbols with code, name, securityType, domain, exchange, market, marketSector, sector. Multiple keys return the same shape grouped under "queries". **Representative examples:** - "garanti" → { "key": "garanti", "superDomain": "bist-stock" } - "ons altın" / "çeyrek altın" → { "key": "ons altın", "superDomain": "fx" } / { "key": "çeyrek altın", "superDomain": "spot" } - "tesla" → { "key": "Tesla", "superDomain": "us-equity" } - "dolar" → { "key": "dolar", "superDomain": "fx" }; "DAX" → { "key": "DAX", "superDomain": "global-index" }; "bitcoin" → { "key": "bitcoin", "superDomain": "crypto" } - "varant"/"opsiyon"/"viop" → { "key": "akbank", "superDomain": "bist-derivatives" } - "aracı kurum" → { "key": "garanti", "superDomain": "bist-broker" }; "fon" → { "key": "garanti", "superDomain": "tefas-funds" } - Multi: { "keys": ["garanti", "akbank"], "superDomain": "bist-stock" } **mode "byIndex":** lists all BIST symbols in an index code (no search key). Example: { "mode": "byIndex", "index": "XU030" }. Common indexes: XU030, XU050, XU100, XUTUM, XBANK, XUSIN, XUMAL, XUHIZ, XHOLD, XGIDA, XELKT, XTEKS, XKMYA, XTRZM, XBLSM, XUTEK, XTMTU, KATLM. Time zone: Europe/Istanbul.
symbolSearchFlex
Returns licensed fund portfolio report data. Requires LIC_TEFASFUND_AND_EUROBOND. Modes: - mode="periods": Lists every available monthly portfolio report period for a fund. - mode="holdings": Returns all holdings for a monthly report. category can restrict asset groups; fundPeriod defaults upstream to the latest report. limit and sorting apply independently within each category. navWeight is the recommended client-facing weight. - mode="positionChanges": Compares the latest two consecutive reports and groups positions as increased, decreased, new, or exited. category=["stockDomestic"] is recommended for equity-focused views. Examples: - Available periods: { mode: "periods", fundCode: "IPJ" } - Latest holdings: { mode: "holdings", fundCode: "IPJ", category: ["stockDomestic"], sortBy: "navWeight", sortDirection: "DESC" } - A specific report: { mode: "holdings", fundCode: "IPJ", fundPeriod: "2026-07" } - Domestic stock changes: { mode: "positionChanges", fundCode: "IPJ", category: ["stockDomestic"], deltaType: ["increased", "decreased", "new", "exited"] } Time zone: Europe/Istanbul.
fundPortfolio
Global Feed fundamental, analyst and technical data for US equities, addressed by ForInvest codes (e.g. "AAPL:EDGX"). Use for US company profiles/peers, financials, ownership, dividends, analyst recommendations/price targets/EPS, news sentiment, chart patterns, and exchange-based lists. Do NOT use for BIST/non-US markets, standalone symbol discovery (use symbolSearchFlex), or real-time quotes/price history. **Actions:** - companyProfile, peers — company info. - basicFinancials (requires metric, e.g. "all"); financials (requires statement: bs|ic|cf, and freq: annual|quarterly); ownership (exactly one code/symbol); dividends. - recommendation (company-specific analyst history); priceTarget (company price targets, NOT recommendation history); epsEstimate (requires freq); epsSurprises; newsSentiment. - patternRecognition (requires resolution, e.g. "5"); allPatternRecognition (one code/symbol, no resolution). - topPotential, analystRecommendation — exchange-based, require primaryExchange (e.g. "XNAS"), no codes/symbols. Note: recommendation (company) ≠ analystRecommendation (exchange). **Input:** For symbol-based actions provide either `codes` (exact codes like "AAPL:EDGX", sent as-is) OR `symbols` (tickers/names, resolved via us-equity CBOE/EDGX; ambiguous/no match fails — never guess, use symbolSearchFlex). ownership and allPatternRecognition take exactly one. Exchange-based actions take primaryExchange instead. `limit` trims local output only (1-1000; default 100 for ownership/analystRecommendation); ignored for actions that are not list-truncated. Responses are {data:[...]} (no-data/errors use standard MCP responses); list actions add meta {totalCount, returnedCount, truncated}. Time zone: Europe/Istanbul.
globalMarket
Returns historical OHLCV price data for BIST and US market symbols, or tick-level trade data for parity symbols (forex, spot, indices/futures). Two modes: - **Range mode** (from + to): Returns candles within a date range. Use for exact calendar periods. - **Last mode** (last): Returns the most recent N candles/ticks. Use for "last 100 days" queries. Fields (candle): date (ISO 8601), open, high, low, close, volume, amount, weightedAvg, openInterest. Fields (tick): ISO timestamp, last price, bid, ask, amount. Use period: "tick" for forex pairs, spot, foreign indices/futures — NOT for BIST stocks. Large candle responses are auto-summarized (weekly/adaptive, with metadata) once the combined output exceeds ~120 bars or ~24000 chars (whole response, not per symbol). Max 10 codes per request. Optional client-side reduction after normalization (does not change the upstream request): filter → limit → calculate, e.g. {function:"avg",field:"volume"}. For multiple codes it applies per symbol and preserves symbol keys. `last` controls upstream lookback; use `limit` for local output trimming. **Examples:** - Range: codes:["GARAN","ASELS"], period:"1440", from:"20241101000000", to:"20250101000000" - Last: codes:["THYAO"], period:"1440", last:100 - Intraday: codes:["GARAN"], period:"5", from:"20260414094000", to:"20260414180000" - Tick: codes:["EUR/USD"], period:"tick", last:100 Time zone: Europe/Istanbul.
historicalData
Unified KAP data tool for disclosures, asset transactions, business relations, fund details, and fund asset-group distribution. - type="assetPurchase": Returns KAP-disclosed fixed asset purchases (CompanyCode, TransactionDate, TransactionValue, TryEquivalent, AssetTransactionRatio, AssetNature, TransactionImpact, AssetLocation). - type="assetSale": Returns KAP-disclosed fixed asset sales (same fields as assetPurchase). - type="businessRelation": Requires LIC_KAP_INSIGHTS. Returns AI-parsed new business relation insights with sub-modes: - mode="summary": total statistics for a disclosure year. Optional code filters locally. - mode="detail": transaction details for a company and disclosure year. - mode="last": latest new business relation disclosures. - type="fundDetails": Provide exactly one of code, kapFundCode, or legacyCode. - mode="details" (default): KAP fund management, strategy, benchmark, risk, trading/settlement, and fee data when published. - mode="assets": TEFAS/BEFAS asset-group percentages such as equities, deposits, government bonds, and reverse repo. This is not security-level holdings data. - mode="all": Fetches both details and asset-group distribution. Optional client-side reduction (filter → limit → calculate) runs locally. `last` is the upstream KAP retrieval count; use `limit` for local trimming. **Examples:** - kapData with type: "assetPurchase", from: "20230101", to: "20231231", last: 10 - kapData with type: "assetSale", from: "20230101", to: "20231231", last: 10 - kapData with type: "businessRelation", mode: "summary", year: 2025 - kapData with type: "businessRelation", mode: "detail", code: "ASELS", year: 2025 - kapData with type: "businessRelation", mode: "last", last: 10 - kapData with type: "fundDetails", mode: "all", code: "ALE" - kapData with type: "fundDetails", kapFundCode: "AK2" - kapData with type: "fundDetails", mode: "assets", legacyCode: "AK2.FON" Time zone: Europe/Istanbul.
kapData
Resolve the exact field short codes that the `marketData` tool's `fields` parameter expects. Full-text search over the live ForInvest field dictionary (short code ↔ English field name, e.g. l → Last, C → DailyChangePercent, pE → PriceEarning, s1 → SMA(5), DE → Delta). **Why this tool exists:** `marketData.fields` takes short codes (e.g. ["l", "C", "tV"]), NOT human-readable names. Field codes are opaque and must never be guessed. Call fieldSearch to discover the correct code for the metrics you need, then pass those codes to marketData. **Search in English only:** the field dictionary is indexed in English (field names/labels are English regardless of the user's language). Always translate the metric to its English term before searching — e.g. the user asking for "piyasa değeri" → search "market cap", "temettü verimi" → search "dividend yield", "fiyat kazanç" → search "price earning". Searching in Turkish (or any non-English language) returns no results. **When to use:** - Before calling `marketData` with any field beyond the common defaults, to resolve the metric name to its short code. - When the user asks for a specific metric (P/E, RSI, VWAP, market cap, a moving average, an option greek, order-book depth, etc.) and you need its field code. - Common defaults (l=Last, C=DailyChangePercent, tV=TotalVolume, E=Code, h=High, o=Open) are already known; you do not need fieldSearch for those. **Parameters:** - key (optional): A single search term — a metric name, keyword, or partial code (e.g. "price earning", "RSI", "VWAP", "delta", "SMA"). - keys (optional): Multiple search terms; the same where filter applies to all. Returns results grouped under "queries". - At least one non-empty term must be supplied via key or keys. - where (optional): { type } to narrow by value type (e.g. { "type": "NUMBER" }). Supported types: STRING, NUMBER, LONG, INT, TIME. - limit (optional, 1-50, default 15): Maximum matches to return per term. **Returns:** Matching fields with { shortCode, name, display, type }. Use the `shortCode` values in `marketData.fields`. A result may also carry `scope: "stockScreener"` — those are fundamental/meta fields (e.g. grossProfit, sector, ipoDate) that are NOT available through `marketData`; resolve and use them with the `stockScreener` tool instead. Results with no `scope` are live market-data fields usable in `marketData.fields`. **Example queries:** - "P/E ratio" → { "key": "price earning" } → finds pE (PriceEarning) - "RSI" → { "key": "RSI" } → finds r1 (RSI14) - "VWAP" → { "key": "VWAP" } → finds wa (VWAP) - "20-day moving average" → { "key": "SMA" } → finds s3 (SMA20) among SMA fields - "option delta" → { "key": "delta", "where": { "type": "NUMBER" } } → finds DE (Delta) - Multiple metrics at once → { "keys": ["market cap", "dividend yield", "book value"] } Time zone: Europe/Istanbul.
fieldSearch
Returns financial news, KAP announcements, or stock analysis reports. Modes: - "general" (default): Full news with content fetching and attachment parsing. Fields: relatedStock, tags, header, content, attachments, publishDate. Sources: FRKS, KAP, PICNEWS, IHA. Tags: stock codes or category tags (FRKS-W=Son Dakika, FRKS-Y=Analiz, FRKS-A=Ekonomi, FRKS-K=Kripto, FRKS-L=Halka Arz, FRKS-Q=Temettü). gt/lt: ISO date filters. At most 3 entity tags per request; FRKS-* system tags don't count. - "analysis": Lightweight analysis reports per symbol (last 5). Returns grouped by code: RelatedStocks, Tags, AnalysisTitle, ContentUrl, AttachmentUrls, PublishDate. Use codes parameter. Client-side response reduction is applied after normalization and does not change the upstream request: filter selects rows by fields, limit caps rows after filtering, and calculate supports sum, count, min, max, avg, first, or last. Numeric calculations require field, for example {function: "count"} or {function: "avg", field: "PublishDate"}; multiple operations and groupBy are supported in order filter → limit → calculate. In analysis mode, transformations apply independently to each symbol's returned array and preserve symbol keys. The existing last parameter remains the upstream news retrieval count; use limit for local output reduction. **Examples:** - General: mode: "general", source: "FRKS", tags: ["GARAN"], last: 10 - Analysis: mode: "analysis", codes: ["GARAN", "ASELS"] Time zone: Europe/Istanbul.
news
Unified price and fund statistics tool with four modes: - mode="periodic": Returns WTD/WOW/MTD/MOM/YTD/YOY high/low prices with dates, volumes, turnovers, and previous close prices. - mode="changes": Returns percentage and nominal price changes across multiple timeframes (daily, weekly, monthly, 3M, 6M, YTD, 1Y, 3Y, 5Y, all-time). - mode="liquidity": Returns liquidity analysis: market value, trading volumes, transaction ratios, free float data. - mode="fundAnalytics": Returns analytics for 1-20 funds. Fund total value is asset; fund price/return is last/lastChangePercent; investor count is partnerCount; period fund flow is fundFlowTotal. Use .Close as the period-end value of OHLC-style metric objects. assetChangePercent is fund-size change, not investment return. Optional client-side reduction after normalization (does not change the upstream request): filter → limit → calculate, e.g. {function:"avg",field:"WTDVolume"}. For keyed responses it applies per symbol and preserves symbol keys. **Examples:** - mode:"periodic", codes:["GARAN","ASELS"] - mode:"changes", codes:["GARAN","ASELS"] - mode:"liquidity", codes:["GARAN"], period:"1440", from:"20250101000000", to:"20250110000000" - mode:"fundAnalytics", codes:["ALE"], period:"30D", at:"20260731", fields:["asset","lastChangePercent","partnerCount","fundFlowTotal"] Time zone: Europe/Istanbul.
priceStatistics
Returns public offering (IPO) data for Turkish stocks. Modes: - "all": All public offerings list with CompanyCode, CompanyName, PublicOfferingId. CompanyCode may be absent for early-stage offerings. - "calendar": IPO calendar for a year range with full details. from must be less than or equal to to, and the range cannot exceed 3 years. - "detail": Detailed IPO information for a specific company. Optional client-side reduction (filter → limit → calculate) runs locally and does not change the upstream request. **Examples:** - All: mode: "all" - Calendar: mode: "calendar", from: "2024", to: "2026" - Detail: mode: "detail", companyCode: "ARMGD" Time zone: Europe/Istanbul.
publicOffering
Returns real-time snapshot (last price, daily change %, total volume, and custom fields) for BIST and US symbols. Supports sorting. **Field codes:** The `fields` parameter takes short codes, NOT names. Common codes: l=Last, C=DailyChangePercent, tV=TotalVolume, E=Code, h=High, o=Open, pc=PreviousClose, dt=DateTime, D=Date. For ANY other metric (P/E, RSI, VWAP, market cap, moving averages, option greeks, etc.) resolve the exact code with the `fieldSearch` tool first — never guess. If `fields` is omitted, defaults to l, C, tV, E. **Not in this feed:** the real-time snapshot does NOT carry order-book depth (bid/ask levels such as b1/b2/a1, quantities q1/k1, etc.). Requesting those codes returns a `_dataNotes` entry listing them as unavailable; report them as unavailable instead of retrying. Optional client-side reduction runs after the snapshot (does not change the upstream request): filter → limit → calculate. Example: {function:"avg",field:"DailyChangePercent"}. Time zone: Europe/Istanbul.
marketData
Skill management tool with two actions: - "index": Returns the in-memory skill index containing all active skill keys, descriptions, and MCP tool names. Used by the ForMind client to cache the skill list for routing decisions. - "load": Loads one or more skills by key and returns a versioned skill bundle with selected skill versions, merged instructionsMarkdown, an explicit all/allowlist tool policy, canonical tool names, live tool schemas, and validation warnings. **Examples:** - Index: action: "index" - Load: action: "load", keys: ["market-overview"] Time zone: Europe/Istanbul.
skills
Screens Borsa İstanbul equities or ranks TEFAS/BEFAS funds. scope="stock" (default): Filters BIST equities by multi-criteria. Filter fields by category: Definition (code, status, sector, index, subMarket, shortSalePolicy), Price (open, close, last, high, low, vwap, dailyChangePercent, weeklyChangePercent, monthlyChangePercent, moMonthlyChangePercent, yearlyChangePercent, volatility, totalTurnover, totalVolume), Moving Averages (sma5, sma8, sma10, sma20, sma50, sma100, sma200 and matching ema fields), Valuation (marketValue, marketValueUSD, priceEarning, priceBookValue, earningPerShare, bookValue, capital), Profitability (returnOnEquity, grossMargin, netMargin, returnonAssets, grossProfit, netProfit, ebitda, netSales), Ownership (freeFloatRate, dividendYield, individualInvestorRatio, institutionalInvestorRatio). Operators: eq, neq, gt, lt, gte, lte, in, nin, between (2-element array), exists. Value semantics: ROE/ROA/margins are decimals (0.20 = 20%). dividendYield/freeFloatRate are percentage points (3 = 3%). Stock price-change periods: monthlyChangePercent is month-to-date (MTD, since the previous month-end close); moMonthlyChangePercent is trailing one-month change (rolling). For "son 1 ay" / "past one month" performance or rankings, use moMonthlyChangePercent. Use monthlyChangePercent only for "ay başından beri" / "month-to-date" requests. If the upstream result exceeds 100 rows, the tool returns the first 50 rows and asks the caller to narrow the filters. scope="fund": Returns the current top or bottom funds in one fund category. This is ranking, not arbitrary numeric screening. Required category values: YF, EYF, GMF, GSF. Use lastChangePercent for fund-price return, asset for fund size, assetChangePercent for fund-size change, partnerCount for investor count, and fundFlowTotal for period fund flow. Use .Close as the period-end value of OHLC-style metric objects. Top/bottom fund analytics always uses today's date and does not accept an at parameter. Note: `filters` performs upstream screening conditions; the separate `filter` applies optional local post-processing (filter → limit → calculate), which does not change the upstream request. **Examples:** - Stock: filters=[{field:"priceEarning",op:"between",value:[5,15]},{field:"returnOnEquity",op:"gte",value:0.20}], fields=["open","last"] - Fund: scope="fund", fundCategory="YF", period="30D", direction="TOP", sortBy="lastChangePercent", size=10 Time zone: Europe/Istanbul.
stockScreener
Supply-demand active trade analysis. Returns bid volume (bv), ask volume (av), total volume (tv), volume difference (vd), and percentages (bvp, avp, vdp) for the last N minutes. Supported periods: 5, 10, 15, 30, 60, 1440 minutes. Optional client-side reduction (filter → limit → calculate) runs locally per symbol and preserves symbol keys. **Example:** supplyDemandLastMinutes with codes: ["GARAN", "AKBNK"], last: 60, filter: {field: "vd", op: "gt", value: 0}, limit: 10 — parallel execution. Time zone: Europe/Istanbul.
supplyDemandLastMinutes
Returns server-calculated technical indicators. Never compute them from OHLCV. - mode "latest" (default): Latest point per symbol. - mode "history": Last outputCount points per symbol (default 2) for crossover checks. Both support multiple codes. from/to returns a single-symbol series; omit mode, outputCount and last. Output: {date, OHLCV, ...indicator values}. Single-value indicators as flat keys (ema50, rsi14); multi-value as objects (macd_12_26_9: {value, signal, histogram}). Indicator syntax — "param1:value-param2:value": - Single-param (per:N): ADX, ADXR, ARO, ATR, CCI, DEMA, DX, EMA, MOM, RSI, SMA, TEMA, TSF, WIL, WMA - Two-param: APO/PPO (fast:N-slow:N), SAR (acc:N-max:N), VOL (per:N-dev:N), ENVE/ENVS/ENVW (per:N-perc:N), STOF (fastk:N-fastd:N), T3 (per:N-vfactor:N) - Three-param: BOL (per:N-devu:N-devd:N), MACD (fast:N-slow:N-sig:N), STOS (fastk:N-slowk:N-slowd:N), STOCHRSI (fastk:N-fastd:N-per:N) - PVT: "classic" | "camarilla" | "fibonacci" | "woodie" Note: short `last` lookback can yield missing/unstable RSI/MACD. `outputCount` cannot exceed `last`. **Examples:** - Latest: codes:["GARAN","ASELS"], period:1440, indicators:[{"RSI":"per:14"},{"MACD":"fast:12-slow:26-sig:9"}] - History: mode:"history", codes:["GARAN"], outputCount:2, indicators:[{"MACD":"fast:12-slow:26-sig:9"}] - Range: codes:["GARAN"], period:1440, from:"20251101000000", to:"20251201235959", indicators:[{"RSI":"per:14"}] Time zone: Europe/Istanbul.
technicalIndicator
ForInvest ChatGPT Plugin FAQ
How the directory, categories and Discoverability Score work.
Read the methodologyHow do I improve ForInvest's ChatGPT Plugin discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are ForInvest alternatives on ChatGPT?
As of 2026-11-03, ForInvest competes with 0xArchive, ABG Market Data, AlgoVault, Alpaca, Alpaca Live, Alpaca Paper Trading, Alphascope, Ask Gina and 30 more in ChatGPT Trading & Live Market Data Platforms, ranked by public Discoverability Score.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.


