Qanat MCP
An MCP server that screens companies on metrics from filings as of any past date, with no look-ahead
- 331 ★ on the repository
- Last commit
- MIT
Extended access
Why this level
- In the default scope the agent writes steps, sources and company lists into project files
- Sources go out to the network: SEC EDGAR and, if enabled, Yahoo, whose terms do not allow redistributing data
Install
- Works in
Manual install
uv tool install qanat-fdtlOr pip install qanat-fdtl. Requires Python 3.10 or newer. Set SEC_USER_AGENT to your name and email.
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- In the default scope the agent writes steps, sources and company lists into project files
- Sources go out to the network: SEC EDGAR and, if enabled, Yahoo, whose terms do not allow redistributing data
This is third-party code. Review the repository files before installing.
What it does
Qanat reads company filings, computes the metrics you define and answers as the question looked on a chosen past date. Every number is stored with two dates: the period it covers and the day it became public. A question about March 2022 therefore shows only what was known in March 2022. The main job is screening: you set a metric and a threshold and the server returns the companies that pass. For example, `qanat screen --filter '[{"metric":"pe","op":"<","value":30}]' --as-of 2025-12-31`. The answer has three parts: the list that passed on each date, each company's return from its own filing to the next one, and a count of companies that could and could not be evaluated. Averages across years and an equity curve are deliberately not computed. Data comes from SEC EDGAR, Yahoo Finance and your own sources over HTTP, SQL or CSV. There is one store: a DuckDB file or Postgres on localhost. Layers, steps in SQL or Python and metrics are described in a single `qanat.yaml` file, and `qanat check` validates it before a run. The server hands data to the agent over MCP. The `--scope` option sets the tool set, from reading tables and filings only to writing steps, sources and company lists.
Who it is for. For researchers, analysts and developers who test stock screening ideas on company filings through Claude Code or another agent.
Good fit when
- You want to know which companies passed a rule such as P/E below 30 as of a specific past date
- You want the layers, steps and metrics of a study in one file, checked before a run
- You need numbers and sections pulled from 10-K filings on SEC EDGAR for a set of companies
- Your research is built around your own metric formula with a name and a version, and the threshold stays with you
- You want to limit an agent to read-only access: the `--scope data` mode does that
Not a fit when
- You need prices and an answer to what the list did next: the project has no prices yet, and an outside source has to be connected for them
- You need a general data pipeline across many machines: Airflow, Dagster and Prefect fit that, while Qanat solves one problem
- You want ready advice on trades: the server places no orders and never will
- You need grouping by industry: that is not built yet, and a ranking runs within the list of companies you pass in
Example request
Which companies in the demo set passed a P/E below 30 filter at the end of 2022, and how did their reported figures change by the next filing?MCP
- Transport
- stdio
- Authentication
- not required
Environment variables
SEC_USER_AGENTrequired- Your name and email, which the SEC uses to see who is querying EDGAR
Limitations
The project is in beta: it covers its author's own tasks, and few others have run it. The main connector reads 10-K filings from SEC EDGAR, and other sources you bring yourself. There are no prices yet, and the optional Yahoo source through the yfinance library is unofficial and grants no redistribution rights.
Section detection in 10-K filings is a heuristic and can miss on unseen documents, so every found span stores the rule that found it. Python 3.10 or newer is required. Choosing thresholds and formulas stays with you.
How to disable. Remove the server from Claude Code with `claude mcp remove qanat`. The project and its data stay in your folder and can be deleted by hand.
FAQ
How do I connect Qanat to Claude Code?
Run `claude mcp add qanat -- qanat mcp --scope research` from the project folder. For another MCP client use an entry with the command `qanat`, the argument `mcp` and the project working directory.
How do the data, research and default scopes differ?
`data` gives 12 tools to read tables as of a past date and read filings. `research` adds reading steps and screening, 15 tools in total. The default offers 23, including writing steps, sources and company lists.
How does Qanat guard against look-ahead?
Every row stores a period date and a publication date. A step can read only the tables it declared, and a query for a past date returns what was public by then. You and your agent still see the full data while choosing an idea.
Where does the data come from and do I need a key?
The demo downloads four 10-K filings from SEC EDGAR in under a minute. No key or account is needed, only a contact address in the `SEC_USER_AGENT` variable that the SEC asks for.
Can an agent place trades through Qanat?
No. The project places no orders, and the author has no plans to add that.
Discussion
No questions or reviews yet.
Related
MCP serversAn MCP server for SEC EDGAR: US company filings, forms 10-K, 10-Q and 8-K, XBRL-parsed financials and insider trades
MCP lets an agent read a local Chinese-market archive and inspect financial data coverage, provenance and dates
quicken-mac-mcp: Claude access to Quicken for Mac data
quicken-mac-mcp
An agent reads the Quicken for Mac database with no write access: accounts, transactions, category spending and holdings
MCP server over Korean DART and US SEC EDGAR disclosures: company financials, peer comparison and valuation for an agent.
A Python MCP server for SEC EDGAR: 10-K and 8-K filings, XBRL financials, insider trades and fund portfolios, no API key.
The MCP server gives agents daily stock screens, relative-strength ratings, industry rankings and market breadth.
Comparison with similar tools
Cards that share the main search query, and how they differ.
| Tool | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| Qanat (this card) | no | not required | 331 | |
| SEC EDGAR MCP | no | not required | 387 | serves SEC filings, forms 10-K, 10-Q and 8-K and insider trades, without computing metrics as of a past date |
| Financial Datasets MCP | yes | API key | 2,326 | ready financial data, prices and news from an outside API without its own date-aware store |
README in short
The author presents Qanat as a data platform for metrics from filings and notes that website screeners check only today. The project's structure from store to metrics follows, and a cautions section lists what the project lacks.