ForInvest
Real Time Financial Data
- 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
- 20
- Geography
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Get alerts for ForInvest
Get updates when ForInvest’s Discoverability Score or category rank changes.
ChatGPT Plugin Discovery Score
ChatGPT Plugin discovery is coming soon
ChatGPT can surface a Plugin when it matches a user's request.Your Plugin Discovery Score measures how often yours appears.
No spam. Unsubscribe any time.
What discovery looks like

Competing in ChatGPT Trading & Live Market Data Platforms
View Category20 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. 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 returns an aggregate or selected row using sum, count, min, max, avg, first, or last. Numeric calculations require field, for example {function: "avg", field: "targetPrice"}; multiple operations and groupBy are supported in order filter → limit → calculate. For keyed multi-symbol responses, transformations apply independently to each symbol's array and preserve symbol keys. The existing last parameter in portfolio updates remains its upstream day-window control; use limit for local output reduction. **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. 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. **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. 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: "EventDate"}; multiple operations and groupBy are supported in order filter → limit → calculate. **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 statement data: balance sheet, income statement, or cash flow. - 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). Parameters: - codes: Symbol codes (parallel execution) - type: "balance" | "income" | "cashFlow" - consolidated: true (default) for consolidated statements - 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) **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 Time zone: Europe/Istanbul.
financialStatements
Fuzzy full-text search across ForInvest symbol definitions. Searches code, name, issuer, exchange, and metadata fields with typo tolerance. Use for BIST, US equities available from the CBOE/EDGX feed, and other ForInvest-indexed symbols. **When to use:** - User mentions a company/asset name partially or with typos (e.g., "garant" → finds "Garanti Bankası") - Search policy: preserve the user's natural wording first. If the user says "ons altın", "altın", or "petrol", search those words first; do not prematurely rewrite them to tickers like "XAU/USD". Only try English equivalents if needed. - Finding symbols when exact code is unknown - Exploring available instruments in a sector or category - Searching US equities (e.g., Tesla, Apple) with superDomain: "us-equity" ** DIRECTIVE: superDomain is required. Always choose the most specific superDomain for the user's query. Do not send "default"; broad default search is used only as an internal fallback when a non-broker superDomain returns no results.** **Available superDomains:** - "bist-stock": Stocks traded on Borsa Istanbul (BIST). Use for Turkish equities, shares, and company stocks. - "us-equity": US equities available from the CBOE/EDGX feed. Use for US stock symbol discovery. Coverage is limited to the feed definitions available to ForInvest. - "fx": Currency pairs and generic precious-metal quotes, including gold, silver, platinum and palladium crosses and available gram-based quotes. - "global-index": International market indexes. Use for foreign indexes. - "crypto": Cryptocurrency instruments. Use for crypto assets and pairs. - "spot": Instruments in ForInvest's SPOT catalog, including Grand Bazaar, bank and exchange-office quotes, local precious-metal products and indicative values. This scope does not cover all non-derivative commodities. - "bist-derivatives": VIOP futures contracts, warrants, and options. Use for derivatives, VIOP sözleşmeleri, varantlar, and opsiyonlar. - "bist-broker": BIST broker/intermediary institutions. Use for searching brokers by code, name, or type. - "tefas-funds": TEFAS mutual funds (yatırım fonları). Use for searching Turkish investment funds by name or code. **Parameters:** - key (optional): Single search term; can be a partial name, ticker, or keyword. Prefer the user's original natural-language wording first; use ticker-style input only if the user explicitly gives it or it is already known. - keys (optional): Multiple search terms of at least 2 characters each. Uses the same where/superDomain for all keys. - At least one non-empty search term must be supplied through key or keys. - topPercent (optional, 1-100, default: 40): Controls the relevance-score cutoff; higher values retain more candidates. Usually leave at default. - where (optional): Filter object with domain, exchange, market, securityType, index, and/or marketSector fields (e.g., { domain: "BIST" }, { domain: "FX" }, { domain: "CBOE", exchange: "EDGX" }, { index: "XU030" }) - superDomain (required): Choose the most specific index to search first (e.g., "bist-stock", "us-equity", "bist-derivatives"). Non-broker searches fall back to the default index if no results are found. **Returns:** For a single key, matching symbols with: code, name, securityType, domain, exchange, market, marketSector, and sector. For multiple keys, returns the same result structure grouped under "queries". **Instructions** - Where clause (filtering) should only be used if specified by the agent prompt. Do not use filters that are not specified here. - For natural-language asset requests, search the asset name/phrase first (e.g., "ons altın"), not a guessed symbol code or parity. - For US equity intent, use superDomain: "us-equity". Do not route US equities through "bist-stock" or rely on the internal default fallback. - Use "fx" for currency pairs and generic precious-metal quotes; use "spot" for the SPOT catalog instruments described above. Use "global-index" for foreign indexes and "crypto" for cryptocurrencies. - Neither the word "spot", an exchange value of "SPOT", nor an ounce/gram unit alone determines the search scope. - Use "bist-derivatives" only when the request explicitly targets futures, warrants, options, or VIOP instruments. - Treat CBOE/EDGX as the ForInvest feed venue. Do not infer a company's primary NYSE/NASDAQ listing unless another reliable result explicitly provides it. **Example queries:** - User asks: "Ons altın saatlik grafikte..." → use { "key": "ons altın", "superDomain": "fx" }, not a guessed symbol code - "çeyrek altın" → spot gold instruments, { "key": "çeyrek altın", "superDomain": "spot" } - "garanti" → GARAN (Garanti Bankası stock), { "key": "garanti", "superDomain": "bist-stock" } - "tesla" → TSLA:EDGX, { "key": "Tesla", "superDomain": "us-equity" } - "apple" → AAPL:EDGX, { "key": "Apple", "superDomain": "us-equity" } - "dolar" or "usd" → FX pairs, { "key": "dolar", "superDomain": "fx" } - "DAX" or "FTSE 100" → foreign indexes, { "key": "DAX", "superDomain": "global-index" } - "bitcoin" or "ethereum" → cryptocurrencies, { "key": "bitcoin", "superDomain": "crypto" } - "bist 30" → XU030 index, eg.: { "key": "BIST 30", "superDomain": "bist-stock" } - "tahvil" or "bond" → Government and corporate bonds, eg.: { "key": "tahvil", "superDomain": "bist-stock" } - "viop" → VIOP futures contracts / VIOP sözleşmeleri, eg.: { "key": "garanti", "superDomain": "bist-derivatives" } - "varant" → Warrants, eg.: { "key": "garanti", "superDomain": "bist-derivatives" } - "opsiyon" → Options, eg.: { "key": "akbank", "superDomain": "bist-derivatives" } - Other words for filtering Varant -> { "securityType": "Warrant" }, Opsiyon -> { "securityType": "Option" } - "aracı kurum" or "broker" → Broker institutions, eg.: { "key": "garanti", "superDomain": "bist-broker" } - "fon" or "yatırım fonu" → TEFAS mutual funds, eg.: { "key": "garanti", "superDomain": "tefas-funds" } - Multi search → { "keys": ["garanti", "akbank"], "superDomain": "bist-stock" } - Index members → { "mode": "byIndex", "index": "XU030" } **mode "byIndex":** Returns all BIST symbols belonging to a given index code. No search key needed. Popular indexes: XU030 (BIST 30), XU050 (BIST 50), XU100 (BIST 100), XUTUM (Tüm), XBANK (Banka), XUSIN (Sınai), XUMAL (Mali), XUHIZ (Hizmetler), XHOLD (Holding), XGIDA (Gıda), XELKT (Elektrik), XTEKS (Tekstil), XKMYA (Kimya), XTRZM (Turizm), XBLSM (Bilişim), XUTEK (Teknoloji), XTMTU (Temettü), KATLM (Katılım 30). **Example:** mode: "byIndex", index: "XU030" 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
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. Response sizing is automatic: raw candles when small (≤60 bars), otherwise weekly/adaptive summaries with metadata. Max 10 codes per request. For indicators use technicalIndicator — never compute manually. Client-side response reduction is applied after normalization and does not change the upstream request: use filter for field conditions, limit for the maximum rows after filtering, and calculate for sum, count, min, max, avg, first, or last. Numeric calculations require field, for example {function: "avg", field: "volume"}. Multiple operations and groupBy are supported and run in order filter → limit → calculate. For multiple codes, operations apply independently to each symbol's returned array and preserve the symbol keys. The existing last parameter controls upstream retrieval/lookback; use limit for local output reduction. Parameters: - codes: Symbol codes (max 10, parallel execution) - period: "tick"/"1"/"5"/"15"/"30"/"60"/"1440" (daily)/"w"/"m"/"y". Default: "1440" - from/to: Date range in YYYYMMDDHHmmss format (range mode, not supported for tick) - last: Number of candles/ticks, max 260 for candles, max 1000 for tick (last mode). **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", "USD/TRY"], 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. 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: "tryEquivalent"}; multiple operations and groupBy are supported in order filter → limit → calculate. The existing last parameter remains the upstream KAP retrieval count; use limit for local output reduction. **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
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. 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: "WTDVolume"}; multiple operations and groupBy are supported in order filter → limit → calculate. For keyed responses, transformations apply independently to each symbol's array and preserve symbol keys. **Examples:** - priceStatistics with mode: "periodic", codes: ["GARAN", "ASELS"] - priceStatistics with mode: "changes", codes: ["GARAN", "ASELS"] - priceStatistics with mode: "liquidity", codes: ["GARAN"], period: "1440", from: "20250101000000", to: "20250110000000" - priceStatistics with 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. Client-side response reduction is applied after the API response is normalized and does not change the upstream request. Use filter for field conditions, limit for the maximum rows after filtering, and calculate for sum, count, min, max, avg, first, or last. Numeric calculations require field, for example {function: "count"} or {function: "avg", field: "IpoHighPrice"}; multiple operations and groupBy are supported in order filter → limit → calculate. **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: symbol code, last price, daily change %, total volume, and custom fields (l=last, C=change%, tV=total volume, E=code, h=high, o=open, dt=DateTime, D=Date). Supports sorting. Usable for BIST and US markets. Client-side response reduction is applied after the normalized snapshot is received and does not change the upstream request. Use filter for field conditions, limit for the maximum rows after filtering, and calculate for sum, count, min, max, avg, first, or last. Numeric calculations require field, for example {function: "avg", field: "DailyChangePercent"}; multiple operations and groupBy are supported in order filter → limit → calculate. 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, 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%). 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. Client-side response reduction is applied after the screener response is normalized and does not change the upstream request. The generic filter parameter is separate from the existing filters parameter: filters performs upstream stock-screening conditions, while filter applies local post-processing. Use limit for the maximum returned rows after filter, and calculate for sum, count, min, max, avg, first, or last; numeric calculations require field, for example {function: "avg", field: "last"}. Multiple operations and groupBy are supported and run in order filter → limit → calculate. **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. Client-side response reduction is applied after normalization and does not change the upstream request. For each requested symbol, filter selects 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: "vd"}; multiple operations and groupBy are supported in order filter → limit → calculate. Symbol keys are preserved. **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 technical indicator values for symbols. Server-side calculation — never compute indicators manually from OHLCV data. Two modes: - **Last mode** (codes + last): Returns latest indicator value(s) per symbol. Multi-code parallel. - **Range mode** (code + from + to): Returns indicator time series for one symbol within date range. Output: {date, open, high, low, close, volume, ...indicator values}. Single-value indicators as flat keys (ema50, rsi14), multi-value as objects (macd_12_26_9: {value, signal, histogram}). Indicator syntax — format: "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" Parameters: - codes: Symbol codes (multi-code in last mode, single code in range mode) - period: 1-1440 (if >60 divisible by 60), "w"/"m"/"y". Default: 1440 (daily) - indicators: Array of indicator objects [{RSI: "per:14"}, {MACD: "fast:12-slow:26-sig:9"}] - last: Calculation lookback, not output count; last mode returns only the latest point. - Sufficient lookback is required to calculate RSI and MACD correctly. Short lookbacks return null or unreliable values. Omit last to use the recommended default of 1000 (max 1400). - from/to: Date range in YYYYMMDDHHmmss format (range mode) **Examples:** - Last: codes: ["GARAN", "ASELS"], period: 1440, indicators: [{"RSI":"per:14"},{"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
How do I improve a ChatGPT Plugin's 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-09-28, ForInvest competes with Alpaca, Alpaca Live, Alpaca Paper Trading, Bajaj Broking, Clear Street, CMC Markets, Co-Invest, Finhay, Fugle-Stock, Gainium, Gate Info, IG Trading: CFD Assistant, Interactive Brokers (IBKR), IOL invertironline, LONA Trading Assistant, Massive, Shinhan Securities Assistant, StrategyTune, TickerLayer, Twelve Data, Vantixs, Webull 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.