Finbolt

SEC-filed company financials with filing citations, plus market data, for AI agents

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
100%
Naming quality
98%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~4,832Tokens (tool definitions)
~1.6 KBTypical response size
Significant attention impact (3.77% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "finbolt": {
      "url": "https://api.getfinbolt.com/mcp"
    }
  }
}

Remote endpoints

https://api.getfinbolt.com/mcpstreamable-http

What it can do

Tool inventory

Tools (23)

🟒 Read-only🟑 WriteπŸ”΄ Deleteβšͺ Unknown
🟒fetch_time_series_daily(symbol, datatype, outputsize, max_data_points, start_date, ...)

[Personal research only] Fetch daily stock data with OHLCV (Open, High, Low, Close, Volume) information for each trading day.

Input Schema

{
  "type": "object",
  "properties": {
    "symbol": {
      "description": "Stock ticker symbol (e.g., 'AAPL', 'MSFT', 'TSLA') for which to retrieve daily data",
      "type": "string"
    },
    "datatype": {
      "default": "json",
      "description": "Response data type.",
      "type": "string"
    },
    "outputsize": {
      "default": "compact",
      "description": "Data output size.",
      "type": "string"
    },
    "max_data_points": {
      "default": 100,
      "description": "Maximum number of time series data points to return.",
      "minimum": 1,
      "type": "integer"
    },
    "start_date": {
      "default": null,
      "description": "Optional start date filter in YYYY-MM-DD format (inclusive).",
      "type": "string"
    },
    "end_date": {
      "default": null,
      "description": "Optional end date filter in YYYY-MM-DD format (inclusive).",
      "type": "string"
    }
  },
  "required": [
    "symbol"
  ],
  "additionalProperties": false
}
🟒fetch_time_series_weekly(symbol, datatype, max_data_points, start_date, end_date)

[Personal research only] Fetch weekly stock data with OHLCV (Open, High, Low, Close, Volume) aggregated by week.

Input Schema

{
  "type": "object",
  "properties": {
    "symbol": {
      "description": "Stock ticker symbol (e.g., 'AAPL', 'MSFT', 'TSLA') for which to retrieve weekly data",
      "type": "string"
    },
    "datatype": {
      "default": "json",
      "description": "Response data type.",
      "type": "string"
    },
    "max_data_points": {
      "default": 100,
      "description": "Maximum number of time series data points to return.",
      "minimum": 1,
      "type": "integer"
    },
    "start_date": {
      "default": null,
      "description": "Optional start date filter in YYYY-MM-DD format (inclusive).",
      "type": "string"
    },
    "end_date": {
      "default": null,
      "description": "Optional end date filter in YYYY-MM-DD format (inclusive).",
      "type": "string"
    }
  },
  "required": [
    "symbol"
  ],
  "additionalProperties": false
}
🟒fetch_time_series_monthly(symbol, datatype, max_data_points, start_date, end_date)

[Personal research only] Fetch monthly stock data with OHLCV (Open, High, Low, Close, Volume) aggregated by month.

Input Schema

{
  "type": "object",
  "properties": {
    "symbol": {
      "description": "Stock ticker symbol (e.g., 'AAPL', 'MSFT', 'TSLA') for which to retrieve monthly data",
      "type": "string"
    },
    "datatype": {
      "default": "json",
      "description": "Response data type.",
      "type": "string"
    },
    "max_data_points": {
      "default": 100,
      "description": "Maximum number of time series data points to return.",
      "minimum": 1,
      "type": "integer"
    },
    "start_date": {
      "default": null,
      "description": "Optional start date filter in YYYY-MM-DD format (inclusive).",
      "type": "string"
    },
    "end_date": {
      "default": null,
      "description": "Optional end date filter in YYYY-MM-DD format (inclusive).",
      "type": "string"
    }
  },
  "required": [
    "symbol"
  ],
  "additionalProperties": false
}
🟒search_endpoint(keywords)

[Personal research only] Searches for stock symbols and company names based on keywords (e.g., 'Tesla', 'Microsoft Corp').

Input Schema

{
  "type": "object",
  "properties": {
    "keywords": {
      "description": "Keywords to search for company names or stock symbols (e.g., 'Tesla', 'Microsoft Corp', 'AAPL')",
      "type": "string"
    }
  },
  "required": [
    "keywords"
  ],
  "additionalProperties": false
}
🟒fetch_quote(symbol)

[Personal research only] Fetches the latest price and trading information for a stock ticker symbol.

Input Schema

{
  "type": "object",
  "properties": {
    "symbol": {
      "description": "Stock ticker symbol (e.g., 'AAPL', 'MSFT', 'TSLA') for which to fetch the latest price and trading…",
      "type": "string"
    }
  },
  "required": [
    "symbol"
  ],
  "additionalProperties": false
}
🟒fetch_news_sentiment(tickers, datatype, topics, time_from, time_to, ...)

[Personal research only] Fetch news sentiment analysis data with sentiment scores, relevance scores, and article metadata.

Input Schema

{
  "type": "object",
  "properties": {
    "tickers": {
      "description": "Comma-separated list of ticker symbols to filter news articles.",
      "type": "string"
    },
    "datatype": {
      "default": "json",
      "description": "Response data type.",
      "type": "string"
    },
    "topics": {
      "default": null,
      "description": "Optional news topics filter.",
      "type": "string"
    },
    "time_from": {
      "default": null,
      "description": "Start time for news articles in YYYYMMDDTHHMM format (e.g., '20240101T0000')",
      "type": "string"
    },
    "time_to": {
      "default": null,
      "description": "End time for news articles in YYYYMMDDTHHMM format (e.g., '20240131T2359')",
      "type": "string"
    },
    "sort": {
      "default": "LATEST",
      "description": "Sort order for results.",
      "type": "string"
    },
    "limit": {
      "default": 50,
      "description": "Maximum number of news articles to return (1-200).",
      "type": "integer"
    }
  },
  "required": [
    "tickers"
  ],
  "additionalProperties": false
}
🟒fetch_company_overview(symbol)

[Personal research only] Fetch comprehensive company overview including business description, financial ratios, market capitalization, dividend information, and key financial metrics.

Input Schema

{
  "type": "object",
  "properties": {
    "symbol": {
      "description": "Stock ticker symbol (e.g., 'AAPL', 'MSFT', 'TSLA') for which to retrieve comprehensive company over…",
      "type": "string"
    }
  },
  "required": [
    "symbol"
  ],
  "additionalProperties": false
}
🟒fetch_income_statement(symbol)

[Personal research only] Fetch annual and quarterly income statement data including revenue, expenses, net income, EPS, and other profit & loss metrics.

Input Schema

{
  "type": "object",
  "properties": {
    "symbol": {
      "description": "Stock ticker symbol (e.g., 'AAPL', 'MSFT', 'GOOGL') for which to retrieve annual and quarterly inco…",
      "type": "string"
    }
  },
  "required": [
    "symbol"
  ],
  "additionalProperties": false
}
🟒fetch_balance_sheet(symbol)

[Personal research only] Fetch annual and quarterly balance sheet data including assets, liabilities, shareholders' equity, and other financial position metrics.

Input Schema

{
  "type": "object",
  "properties": {
    "symbol": {
      "description": "Stock ticker symbol (e.g., 'AAPL', 'MSFT', 'GOOGL') for which to retrieve annual and quarterly bala…",
      "type": "string"
    }
  },
  "required": [
    "symbol"
  ],
  "additionalProperties": false
}
🟒fetch_cash_flow(symbol)

[Personal research only] Fetch annual and quarterly cash flow statement data including operating, investing, and financing cash flows.

Input Schema

{
  "type": "object",
  "properties": {
    "symbol": {
      "description": "Stock ticker symbol (e.g., 'AAPL', 'MSFT', 'GOOGL') for which to retrieve annual and quarterly cash…",
      "type": "string"
    }
  },
  "required": [
    "symbol"
  ],
  "additionalProperties": false
}
🟒fetch_earnings(symbol)

[Personal research only] Fetch annual and quarterly earnings data including EPS (earnings per share) estimates vs actual results, surprise percentages, and earnings growth trends.

Input Schema

{
  "type": "object",
  "properties": {
    "symbol": {
      "description": "Stock ticker symbol (e.g., 'AAPL', 'MSFT', 'GOOGL') for which to retrieve annual and quarterly earn…",
      "type": "string"
    }
  },
  "required": [
    "symbol"
  ],
  "additionalProperties": false
}
🟒fetch_exchange_rate(from_currency, to_currency)

[Personal research only] Fetch real-time currency exchange rates between two currencies with bid/ask prices and conversion rates.

Input Schema

{
  "type": "object",
  "properties": {
    "from_currency": {
      "description": "Source currency code (e.g., 'USD', 'EUR', 'GBP') to convert from",
      "type": "string"
    },
    "to_currency": {
      "description": "Target currency code (e.g., 'USD', 'EUR', 'JPY') to convert to",
      "type": "string"
    }
  },
  "required": [
    "from_currency",
    "to_currency"
  ],
  "additionalProperties": false
}
🟒fetch_sma(symbol, interval, time_period, series_type, datatype, ...)

[Personal research only] Fetch Simple Moving Average (SMA) technical indicator time series with customizable time periods.

Input Schema

{
  "type": "object",
  "properties": {
    "symbol": {
      "description": "Stock ticker symbol (e.g., 'AAPL', 'MSFT', 'TSLA') for which to calculate Simple Moving Average",
      "type": "string"
    },
    "interval": {
      "description": "Time interval for data points.",
      "type": "string"
    },
    "time_period": {
      "description": "Number of data points to use for moving average calculation (e.g., 20 for 20-day SMA)",
      "type": "integer"
    },
    "series_type": {
      "default": "close",
      "description": "Price data to use for calculation.",
      "type": "string"
    },
    "datatype": {
      "default": "json",
      "description": "Response data type.",
      "type": "string"
    },
    "max_data_points": {
      "default": 100,
      "description": "Maximum number of time series data points to return.",
      "type": "integer"
    },
    "start_date": {
      "default": null,
      "description": "Optional start date filter in YYYY-MM-DD format (e.g., '2024-01-01').",
      "type": "string"
    },
    "end_date": {
      "default": null,
      "description": "Optional end date filter in YYYY-MM-DD format (e.g., '2024-12-31').",
      "type": "string"
    }
  },
  "required": [
    "symbol",
    "interval",
    "time_period"
  ],
  "additionalProperties": false
}
🟒fetch_ema(symbol, interval, time_period, series_type, datatype, ...)

[Personal research only] Fetch Exponential Moving Average (EMA) technical indicator time series with greater weight on recent prices.

Input Schema

{
  "type": "object",
  "properties": {
    "symbol": {
      "description": "Stock ticker symbol (e.g., 'AAPL', 'MSFT', 'TSLA') for which to calculate Exponential Moving Average",
      "type": "string"
    },
    "interval": {
      "description": "Time interval for data points.",
      "type": "string"
    },
    "time_period": {
      "description": "Number of data points to use for moving average calculation (e.g., 12 for 12-period EMA)",
      "type": "integer"
    },
    "series_type": {
      "default": "close",
      "description": "Price data to use for calculation.",
      "type": "string"
    },
    "datatype": {
      "default": "json",
      "description": "Response data type.",
      "type": "string"
    },
    "max_data_points": {
      "default": 100,
      "description": "Maximum number of time series data points to return.",
      "type": "integer"
    },
    "start_date": {
      "default": null,
      "description": "Optional start date filter in YYYY-MM-DD format (e.g., '2024-01-01').",
      "type": "string"
    },
    "end_date": {
      "default": null,
      "description": "Optional end date filter in YYYY-MM-DD format (e.g., '2024-12-31').",
      "type": "string"
    }
  },
  "required": [
    "symbol",
    "interval",
    "time_period"
  ],
  "additionalProperties": false
}
🟒fetch_macd(symbol, interval, series_type, fastperiod, slowperiod, ...)

[Personal research only] Fetch MACD (Moving Average Convergence Divergence) technical indicator time series with signal line and histogram.

Input Schema

{
  "type": "object",
  "properties": {
    "symbol": {
      "description": "Stock ticker symbol (e.g., 'AAPL', 'MSFT', 'TSLA') for which to calculate MACD",
      "type": "string"
    },
    "interval": {
      "description": "Time interval for data points.",
      "type": "string"
    },
    "series_type": {
      "default": "close",
      "description": "Price data to use for calculation.",
      "type": "string"
    },
    "fastperiod": {
      "default": 12,
      "description": "Fast EMA period for MACD calculation (default: 12)",
      "type": "integer"
    },
    "slowperiod": {
      "default": 26,
      "description": "Slow EMA period for MACD calculation (default: 26)",
      "type": "integer"
    },
    "signalperiod": {
      "default": 9,
      "description": "Signal line EMA period for MACD calculation (default: 9)",
      "type": "integer"
    },
    "datatype": {
      "default": "json",
      "description": "Response data type.",
      "type": "string"
    },
    "max_data_points": {
      "default": 100,
      "description": "Maximum number of time series data points to return.",
      "type": "integer"
    },
    "start_date": {
      "default": null,
      "description": "Optional start date filter in YYYY-MM-DD format (e.g., '2024-01-01').",
      "type": "string"
    },
    "end_date": {
      "default": null,
      "description": "Optional end date filter in YYYY-MM-DD format (e.g., '2024-12-31').",
      "type": "string"
    }
  },
  "required": [
    "symbol",
    "interval"
  ],
  "additionalProperties": false
}
🟒fetch_rsi(symbol, interval, time_period, series_type, datatype, ...)

[Personal research only] Fetch RSI (Relative Strength Index) momentum oscillator time series ranging from 0 to 100.

Input Schema

{
  "type": "object",
  "properties": {
    "symbol": {
      "description": "Stock ticker symbol (e.g., 'AAPL', 'MSFT', 'TSLA') for which to calculate RSI",
      "type": "string"
    },
    "interval": {
      "description": "Time interval for data points.",
      "type": "string"
    },
    "time_period": {
      "default": 14,
      "description": "Number of periods for RSI calculation (typically 14)",
      "type": "integer"
    },
    "series_type": {
      "default": "close",
      "description": "Price data to use for calculation.",
      "type": "string"
    },
    "datatype": {
      "default": "json",
      "description": "Response data type.",
      "type": "string"
    },
    "max_data_points": {
      "default": 100,
      "description": "Maximum number of time series data points to return.",
      "type": "integer"
    },
    "start_date": {
      "default": null,
      "description": "Optional start date filter in YYYY-MM-DD format (e.g., '2024-01-01').",
      "type": "string"
    },
    "end_date": {
      "default": null,
      "description": "Optional end date filter in YYYY-MM-DD format (e.g., '2024-12-31').",
      "type": "string"
    }
  },
  "required": [
    "symbol",
    "interval"
  ],
  "additionalProperties": false
}
🟒fetch_bbands(symbol, interval, time_period, series_type, nbdevup, ...)

[Personal research only] Fetch Bollinger Bands technical indicator time series with upper band, lower band, and middle line (SMA).

Input Schema

{
  "type": "object",
  "properties": {
    "symbol": {
      "description": "Stock ticker symbol (e.g., 'AAPL', 'MSFT', 'TSLA') for which to calculate Bollinger Bands",
      "type": "string"
    },
    "interval": {
      "description": "Time interval for data points.",
      "type": "string"
    },
    "time_period": {
      "default": 20,
      "description": "Number of periods for moving average calculation (typically 20)",
      "type": "integer"
    },
    "series_type": {
      "default": "close",
      "description": "Price data to use for calculation.",
      "type": "string"
    },
    "nbdevup": {
      "default": 2,
      "description": "Number of standard deviations for upper band (typically 2)",
      "type": "integer"
    },
    "nbdevdn": {
      "default": 2,
      "description": "Number of standard deviations for lower band (typically 2)",
      "type": "integer"
    },
    "datatype": {
      "default": "json",
      "description": "Response data type.",
      "type": "string"
    },
    "max_data_points": {
      "default": 100,
      "description": "Maximum number of time series data points to return.",
      "type": "integer"
    },
    "start_date": {
      "default": null,
      "description": "Optional start date filter in YYYY-MM-DD format (e.g., '2024-01-01').",
      "type": "string"
    },
    "end_date": {
      "default": null,
      "description": "Optional end date filter in YYYY-MM-DD format (e.g., '2024-12-31').",
      "type": "string"
    }
  },
  "required": [
    "symbol",
    "interval"
  ],
  "additionalProperties": false
}
🟒analyze_stock(symbol)

[Personal research only] One-call stock brief. `filed` holds fundamentals from SEC filings (TTM revenue and growth, gross and operating margin, net income, free cash flow, net debt; for banks net revenue, net interest income, efficiency ratio, PPNR, provisions, loans, deposits, ROE, ROTCE and tangible book; for broker-dealers efficiency ratio, pretax margin, compensation ratio and ROE; for insurers total revenues, premiums earned, net investment income, benefits and losses, a simple combined ratio for P&C insurers, ROE, and book value per share with and without AOCI), each filing cited by accession in sources.edgar (https://www.sec.gov/Archives/edgar/data/{cik}/{accession without dashes}/). A balance input the newest filing omits comes from the latest filing within 15 months, dated in inputs_as_of. `market` holds delayed price, 52-week range, 50/200-day averages and RSI(14); `derived` holds market cap, P/E (on filed diluted EPS LTM), P/B and P/TBV (insurers: P/B and P/B ex-AOCI), each with its inputs. A figure that couldn't be computed is in gaps with its reason; lines that don't apply to the company's layout are left out (layout_note). Up to 4 descriptive observations, including any quarter whose tax rate or non-operating income moves net income. News sentiment on Pro. Start here for "tell me about X". Personal research only: on every plan, this tool's output is for your own personal, non-commercial research. Do not use it in a commercial product, client deliverable or service.

Input Schema

{
  "type": "object",
  "properties": {
    "symbol": {
      "description": "Stock ticker, e.g. 'AAPL'",
      "type": "string"
    }
  },
  "required": [
    "symbol"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
βšͺcompare_stocks(symbols)

[Personal research only] Side-by-side comparison of 2-6 stocks as one table: TTM revenue and growth, pretax margin, net income growth and diluted EPS growth from SEC filings (each row's window ends on its ttm_to), net debt for standard layouts, delayed price, day change, distance from the 52-week high and trend, market cap, and P/E on filed diluted EPS LTM (FY + YTD - prior YTD). `order` lists each filed figure highest first, P/E lowest first. `comparability` says what revenue means per layout; cell_notes say what moves a figure. Filings are cited by accession in sources.edgar: open https://www.sec.gov/Archives/edgar/data/{cik}/{accession without dashes}/. Personal research only: on every plan, this tool's output is for your own personal, non-commercial research. Do not use it in a commercial product, client deliverable or service.

Input Schema

{
  "type": "object",
  "properties": {
    "symbols": {
      "description": "2 to 6 tickers, e.g. ['NVDA', 'AMD']",
      "items": {
        "type": "string"
      },
      "type": "array"
    }
  },
  "required": [
    "symbols"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟒get_fact(company, concept, period, as_of)

One reported figure from SEC filings, with its citation: filing accession number, form, filing date, XBRL tag, period and a link to the filing. Restated values are listed. A figure the company never reported comes back as missing, never estimated. Values are in units as filed (USD, shares, USD/shares). A value and its as_originally_reported version come only from financial statements (10-K, 10-Q, their amendments and transition reports, 20-F, 40-F), never a proxy or an 8-K.

Input Schema

{
  "type": "object",
  "properties": {
    "company": {
      "description": "Ticker (e.g. 'AAPL') or SEC CIK",
      "type": "string"
    },
    "concept": {
      "description": "Line item such as 'revenue', 'net_income', 'eps_diluted', 'total_assets', 'operating_cash_flow', 'shares_outstanding', 'book_value_per_share', 'net_debt', 'dividend_payout_ratio', 'net_revenues', or a raw XBRL tag like 'us-gaap:Revenues'",
      "type": "string"
    },
    "period": {
      "default": "latest",
      "description": "'latest', a fiscal year 'FY2025', a fiscal quarter 'FY2025 Q2', or a period end date '2025-06-28'",
      "type": "string"
    },
    "as_of": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional date: return the figure as it was on file then (before any later restatement)"
    }
  },
  "required": [
    "company",
    "concept"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟒financials(company, statement, period_type, limit, as_of)

A financial statement from SEC filings, newest period first, every value traceable to its filing. Quarterly figures the company reported only year-to-date are derived (e.g. Q4 = FY - 9M) and marked; per-share values and share counts can't be derived that way and are null with reason not_derivable. A line the company tagged with its own element is null with reason custom_element. Common equity and the book values from it are null with reason pending when a preferred issue or redemption follows the last tagged liquidation preference. Every null carries a reason, in cell_notes or (when all of a row's nulls share it) on the row. Banks, insurers and broker-dealers get not_applicable, with a reason, for lines they don't present (capex, current assets, total debt for banks and brokers); banks get loans, allowance and deposits. Broker-dealers and asset managers get the bank layout under net_revenues, with compensation and the compensation ratio. Balance sheets include common equity, book value per share and net debt. A balance the period's own filing didn't present is null, with any later comparative value in a note. A derived or fallback line equal to another row in every column (total equity with no NCI) is named in same_as instead of shown, and a derived Q4 with the opposite sign to Q1-Q3 says so. Values are in units as filed. Values and earlier versions come only from financial statements (10-K, 10-Q, their amendments and transition reports, 20-F, 40-F).

Input Schema

{
  "type": "object",
  "properties": {
    "company": {
      "description": "Ticker (e.g. 'AAPL') or SEC CIK",
      "type": "string"
    },
    "statement": {
      "default": "income",
      "description": "'income', 'balance' or 'cashflow'",
      "type": "string"
    },
    "period_type": {
      "default": "annual",
      "description": "'annual' or 'quarterly'",
      "type": "string"
    },
    "limit": {
      "default": 4,
      "description": "Number of periods, 1 to 8",
      "type": "integer"
    },
    "as_of": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional date: the statement as it was on file then"
    }
  },
  "required": [
    "company"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟒find_tool(query)

Search all 113 data tools, including ones not in the default list.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "description": "What you need, e.g.",
      "type": "string"
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
βšͺrun_tool(name, arguments)

Run any Finbolt data tool by name, including ones not in the default list.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "description": "Exact tool name from find_tool, e.g.",
      "type": "string"
    },
    "arguments": {
      "additionalProperties": true,
      "default": null,
      "description": "Arguments for that tool",
      "type": "object"
    }
  },
  "required": [
    "name"
  ],
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded23 tools