Filinglens

io.github.CloudCorpRecordsPublished by GitHub account CloudCorpRecordsv0.1.0Updated Nov 7, 2026

SEC-filed company financials with citations, plus market data and technical indicators.

VerifiedSTDIODesktop onlyFinanceData & Analytics

Overview

AI-generated overview

Local bridge to the hosted Finbolt server, giving an assistant SEC-filed company financials with citations, plus market data and technical indicators.

What you can do
  • Look up symbols and companies, and fetch quotes, daily/weekly/monthly OHLCV series, exchange rates and news sentiment
  • Pull income statements, balance sheets, cash flow and earnings from SEC filings, newest period first
  • Retrieve a single reported figure with its accession number, form, filing date and XBRL tag
  • Get one-call stock briefs and side-by-side comparisons of 2 to 6 stocks
  • Compute SMA, EMA, MACD, RSI and Bollinger Bands indicators
When to use it
Useful when you want an assistant to answer questions about public-company fundamentals that must be traceable to actual SEC filings, or to combine those figures with quotes, price history and technical indicators for personal research.
Requirements
Runs as a local process via npx (Node.js) or Docker, stdio transport, desktop only. It forwards calls to the hosted Finbolt endpoint over the network; FINBOLT_MCP_URL optionally overrides that endpoint and FINBOLT_API_KEY optionally adds a bearer token. No account is required by default.
Before you install
Tool calls are forwarded to a third-party hosted service, so the symbols and queries you send leave your machine. The optional FINBOLT_API_KEY is sent as a bearer header to that upstream. Data is marked for personal research only; results are read-only with no trading or account tools, and the server holds no data of its own.

Installation

In SourceWeft

  1. Open Filinglens in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

filinglens

filinglens is a small local bridge to the hosted Finbolt MCP server. Its centre of gravity is company financials taken from SEC filings, with every figure traceable to the filing it came from: ask for one reported fact and you get the value together with its accession number, form, filing date and XBRL tag; ask for a statement and you get the income statement, balance sheet or cash-flow statement newest period first. Around that core sit market data — quotes, daily / weekly / monthly time series, exchange rates and news sentiment — and the usual technical indicators.

The bridge holds no data of its own. It serves the upstream server's captured tool list locally and forwards each tool call upstream, returning the result untouched.

Labelled subset — 21 of 23 tools

This rebuild is a labelled subset: it serves 21 of the 23 tools in the live capture. The two omitted tools are find_tool and run_tool, a meta-dispatch pair that searches and runs "all 113 data tools, including ones not in the default list". That is a dynamic surface onto roughly 92 unenumerated tools whose schemas are nowhere published, so it cannot be parity-pinned and is deliberately not registered here. Their absence is asserted in the test suite.

The 21 served tools are entirely read-only: SEC-filing financials with citations, market data, and technical indicators. There is no trading, order, or account tool among them. Upstream descriptions mark the data "Personal research only"; respect that in use.

Tools

Time series, search and quotes:

  • fetch_time_series_daily — daily OHLCV. Required: symbol.
  • fetch_time_series_weekly — weekly OHLCV. Required: symbol.
  • fetch_time_series_monthly — monthly OHLCV. Required: symbol.
  • search_endpoint — symbol / company search. Required: keywords.
  • fetch_quote — latest price and trading info. Required: symbol.
  • fetch_news_sentiment — news sentiment. Required: tickers.
  • fetch_company_overview — overview, ratios, market cap. Required: symbol.
  • fetch_exchange_rate — currency conversion. Required: from_currency, to_currency.

Statements and earnings:

  • fetch_income_statement — Required: symbol.
  • fetch_balance_sheet — Required: symbol.
  • fetch_cash_flow — Required: symbol.
  • fetch_earnings — EPS estimates vs actuals. Required: symbol.

Technical indicators:

  • fetch_sma — Required: symbol, interval, time_period.
  • fetch_ema — Required: symbol, interval, time_period.
  • fetch_macd — Required: symbol, interval.
  • fetch_rsi — Required: symbol, interval.
  • fetch_bbands — Required: symbol, interval.

SEC-filing tools:

  • analyze_stock — one-call brief: filed fundamentals (each filing cited by accession), market figures and derived ratios. Required: symbol.
  • compare_stocks — side-by-side table for 2–6 stocks. Required: symbols.
  • get_fact — one reported figure with its citation; a figure never reported comes back as missing, never estimated. Required: company, concept.
  • financials — a full statement from SEC filings, newest period first, every null carrying a reason. Required: company.

Configuration

  • FINBOLT_MCP_URL (optional) — override the upstream endpoint. Defaults to https://api.getfinbolt.com/mcp. (The override hook is this rebuild's own labelled reconstruction.)
  • FINBOLT_API_KEY (optional) — when set, every upstream request carries an Authorization: Bearer <key> header. When it is not set, no key header is sent. (The header name is pinned by the registry record; the Bearer scheme and the env forwarding are labelled reconstructions — the original surface was captured keyless.)

Forwarding mechanics

On the first tool call the client opens a streamable HTTP session with the upstream: a JSON-RPC initialize request (protocolVersion 2025-03-26, clientInfo name filinglens), then a notifications/initialized notification, then the tools/call request carrying the caller's arguments unchanged. When the upstream answers initialize with an Mcp-Session-Id header, that value rides on every later request of the session, which is reused for the life of the process. Replies may arrive as plain JSON or as server-sent events; both are read.

Successful upstream results pass through verbatim, including any isError flag the upstream sets. Failures — a JSON-RPC error, a non-2xx status, an unreadable response, or a request that cannot be completed — come back as an isError result whose text starts with filinglens error: (this rendering is this rebuild's own labelled reconstruction).

CLI

Each tool is also a subcommand taking one JSON argument string:

bash
npx @reneturcios/filinglens fetch_quote '{"symbol":"AAPL"}'npx @reneturcios/filinglens get_fact '{"company":"AAPL","concept":"revenue"}'npx @reneturcios/filinglens financials '{"company":"AAPL","statement":"income"}'npx @reneturcios/filinglens --version

Exit codes: 0 on success, 1 on an isError result, 2 on a usage error.

MCP server

bash
npx -y @reneturcios/filinglens mcp

MCP client config:

json
{  "mcpServers": {    "filinglens": {      "command": "npx",      "args": ["-y", "@reneturcios/filinglens", "mcp"]    }  }}

Docker

bash
docker run -i ghcr.io/cloudcorprecords/filinglensdocker run --rm ghcr.io/cloudcorprecords/filinglens --version

The container's default command is mcp, so the first form is a stdio MCP server; any other arguments reach the CLI normally.

Development

bash
npm installnpm run buildnpm testnpm run dev

The test suite runs entirely against a stubbed JSON-RPC upstream — no live network calls.

License

MIT — see LICENSE.

Source: README.md at commit c97a51a

Tools

21

fetch_time_series_daily

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

Parameterssymbolrequireddatatypeend_dateoutputsizestart_datemax_data_points

fetch_time_series_weekly

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

Parameterssymbolrequireddatatypeend_datestart_datemax_data_points

fetch_time_series_monthly

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

Parameterssymbolrequireddatatypeend_datestart_datemax_data_points

search_endpoint

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

Parameterskeywordsrequired

fetch_quote

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

Parameterssymbolrequired

fetch_news_sentiment

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

Parameterssortlimittopicstickersrequiredtime_todatatypetime_from

fetch_company_overview

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

Parameterssymbolrequired

fetch_income_statement

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

Parameterssymbolrequired

fetch_balance_sheet

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

Parameterssymbolrequired

fetch_cash_flow

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

Parameterssymbolrequired

fetch_earnings

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

Parameterssymbolrequired

fetch_exchange_rate

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

Parametersto_currencyrequiredfrom_currencyrequired

fetch_sma

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

Parameterssymbolrequireddatatypeend_dateintervalrequiredstart_dateseries_typetime_periodrequiredmax_data_points

fetch_ema

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

Parameterssymbolrequireddatatypeend_dateintervalrequiredstart_dateseries_typetime_periodrequiredmax_data_points

fetch_macd

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

Parameterssymbolrequireddatatypeend_dateintervalrequiredfastperiodslowperiodstart_dateseries_typesignalperiodmax_data_points

fetch_rsi

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

Parameterssymbolrequireddatatypeend_dateintervalrequiredstart_dateseries_typetime_periodmax_data_points

fetch_bbands

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

Parameterssymbolrequirednbdevdnnbdevupdatatypeend_dateintervalrequiredstart_dateseries_typetime_periodmax_data_points

analyze_stock

[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.

Parameterssymbolrequired

compare_stocks

[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.

Parameterssymbolsrequired

get_fact

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.

Parametersas_ofperiodcompanyrequiredconceptrequired

financials

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).

Parametersas_oflimitcompanyrequiredstatementperiod_type

Version history

1
  1. v0.1.0LatestNov 4, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts