Equibles
Equibles
An open-source, self-hosted mini Bloomberg Terminal for AI agents. Scrapes, stores, and serves SEC filings, institutional holdings, insider trading, congressional trades, short data, economic indicators, and daily stock prices — and exposes it all via MCP so your AI assistant can query it directly.
Powers equibles.com.
See docs/ for the user guide and technical documentation.
What's Included
Domain | Data Source | Description |
SEC Filings | SEC EDGAR | 10-K, 10-Q, 8-K annual/quarterly/current reports with full-text search |
Financial Statements | SEC XBRL | Parsed income statement, balance sheet, and cash flow facts per fiscal period |
Holdings | SEC 13F-HR | Institutional ownership — who owns what, how much, and trend over time |
Fund Filings | SEC NPORT / N-CEN / Form D | Fund portfolio holdings, registered-fund operations (service providers), and exempt offerings (private placements) |
Investment Advisers | SEC Form ADV | SEC-registered advisers — assets under management, main office, employee count, fee structure |
Insider Trading | SEC Form 3/4/144 | Director, officer, and 10% owner transactions, plus proposed (Form 144) sales |
Congressional Trading | House/Senate disclosures | Stock trades by members of Congress |
Short Data | SEC / FINRA | Fails-to-deliver (SEC), daily short volume and short interest (FINRA) |
Economic Indicators | FRED (Federal Reserve) | Interest rates, inflation, employment, GDP, yield spreads, and more |
Stock Prices | Yahoo Finance | Daily OHLCV prices with technical indicators (SMA, RSI, MACD) |
Futures Positioning | CFTC | Commitments of Traders (COT) data for 30+ futures contracts |
Market Indicators | CBOE | VIX volatility index (1990+) and put/call ratios by category |
Government Contracts | USAspending.gov | Federal contract awards to public companies — amounts, awarding agencies, dates, and NAICS/PSC codes |
FDA Catalysts | FDA.gov | Advisory-committee (AdComm) meeting calendar — scheduled FDA panel dates, center, and title that act as regulatory catalysts for biotech/pharma stocks |
Related MCP server: FinClaw
Quick Start
Docker Compose (recommended)
The fastest way to get everything running. Requires Docker.
git clone https://github.com/daniel3303/Equibles.git
cd Equibles
cp .env.example .env
# Edit .env and set SEC_CONTACT_EMAIL (required by SEC EDGAR fair access policy)
docker compose upThis starts:
Service | Port | Description |
db | 5432 | ParadeDB (PostgreSQL + pgvector + pg_search) |
web | 8080 | Web portal for browsing data |
mcp | 8081 | MCP server for AI assistants |
worker | — | Scrapers (SEC, FINRA, Congress, FRED, Yahoo, CFTC, CBOE, USAspending, FDA) |
Data scraping starts automatically. SEC filings, holdings, insider trades, and congressional trades will begin populating within minutes.
Configuration
All settings can be configured via a .env file in the project root (recommended for Docker) or environment variables.
FINRA Short Data (free API key required):
The FINRA scraper (short volume and short interest) requires a free API key. Without it, the scraper skips gracefully and all other scrapers run normally. Fails-to-deliver data comes from SEC and works without FINRA credentials.
To get a key:
Go to the FINRA API Console and sign in (a Google account works)
Open the API Credentials menu and create a new API Key
Copy the Client ID and Client Secret
Set
Finra__ClientIdandFinra__ClientSecretin your.envfile or environment variables
The older
developer.finra.org"Teams & Apps" flow has been retired — use the API Console above.
FRED Economic Data (free API key required):
The FRED scraper requires a free API key from the Federal Reserve Bank of St. Louis. Without it, the scraper skips gracefully and all other scrapers run normally.
To get a key:
Register at fred.stlouisfed.org/docs/api/api_key.html
Copy the 32-character API key
Set
Fred__ApiKeyin your.envfile or environment variables
Ticker Filtering (optional):
By default, all tickers are synced. To limit data syncing to specific stocks, set a single ticker list that applies to all scrapers:
# .env — sync only these tickers (applies to all scrapers)
Worker__TickersToSync__0=AAPL
Worker__TickersToSync__1=MSFT
Worker__TickersToSync__2=GOOGLWhen not set, all stocks are synced.
Minimum Sync Date (optional):
By default, all scrapers start from January 2020. Set a more recent date for faster initial sync, or go as far back as 2000-01-01 for more historical data:
# .env — start syncing from 2024 instead of 2020
Worker__MinSyncDate=2024-01-01Embedding (opt-in):
Setting | Default | Description |
|
| Set to |
|
|
|
| — | Embedding endpoint (e.g., |
| — | Model name (e.g., |
| — | Bearer token, if the server requires one (e.g. vLLM |
|
| Texts per embedding batch |
Update notifications (optional):
Setting | Default | Description |
|
| When |
Authentication (optional):
Setting | Default | Description |
| — | Web portal username (auth disabled if empty) |
| — | Web portal password (auth disabled if empty) |
| — | MCP server API key (auth disabled if empty) |
When set, the web portal requires login and the MCP server requires Authorization: Bearer <key> header. When unset, everything is open access (default).
Updating
The web portal checks GitHub Releases on a schedule and shows a banner when a newer version is available (disable with CHECK_FOR_UPDATES=false). To update to the latest release:
Docker Compose:
git pull
docker compose up -d --buildFrom source:
git pull
dotnet build Equibles.slnDatabase migrations are applied automatically on startup. Review the changelog for notable changes before upgrading.
Web Portal
The web portal at http://localhost:8080 provides a browser-based interface for exploring data:
Stocks — Browse and search all tracked companies, view price charts with technical indicators (SMA, EMA, RSI, MACD, Bollinger Bands), golden/death-cross and price-streak badges, performance versus SPY, plus per-stock tabs for institutional holdings, short data, SEC filings, financial statements, insider trading, proposed (Form 144) sales, fund holdings (NPORT), fund operations (N-CEN), exempt offerings (Form D), and congressional trades
Institutions — Browse institutional holders (hedge funds, asset managers), view detailed profiles with portfolio breakdowns, industry allocation, quarterly activity, backtesting, and side-by-side comparisons. Filers are scored on risk-adjusted performance (alpha vs. a benchmark) and a Smart Money Index page aggregates the highest-scoring funds into a consensus signal. Includes a holdings screener with filters (filer count, value, float %, location, AUM/position-count, industry) and CSV export
Advisers — Browse SEC-registered investment advisers (
/advisers), ranked by assets under management, with per-firm profiles (regulatory AUM, main office, employee count, fee structure)Insider Trading — Dashboard showing the top insider buys, sells, and biggest transactions over the last 90 days
Short Activity — Most-shorted leaderboard (
/most-shorted, ranked by FINRA short interest) and largest daily short volume (/short-volume), each with a date selector, server-side sort, and paginationEconomy — Browse FRED economic indicators grouped by category (interest rates, inflation, employment, GDP, etc.) with charts and statistics
Futures — CFTC Commitments of Traders positioning data for 30+ futures contracts (commodities, indices, currencies) with commercial/non-commercial position charts
Market — CBOE market indicators: VIX volatility index with OHLC charts, put/call ratios (equity, index, total, VIX, ETP)
Search — Global search across stocks, institutions, insiders, and congress members with category filtering and date ranges
Status — System health, worker status, data counts, and error log
MCP Server
The MCP server exposes financial data tools for AI assistants (Claude, ChatGPT, etc.):
Institutional Holdings — Top holders, ownership history, institution portfolios and summary, sector allocation, quarterly activity, most-held stocks, consensus holdings, fund overlap, market-wide 13F activity, institution search
Insider Trading — Insider transactions, ownership summary, proposed (Form 144) sales, insider search
Congressional Trading — Trades for a ticker, trades by one member, member search
SEC Documents — Full-text search, semantic search, document browsing, keyword search within filings
Financial Statements — XBRL fact time series per ticker, cross-ticker fact comparison, full income statement / balance sheet / cash flow per fiscal period
Fund & Adviser Filings — Fund portfolio holdings (NPORT), registered-fund operations (N-CEN), exempt offerings (Form D), and SEC-registered investment-adviser lookup and search (Form ADV)
Short Data — Daily short volume, market-wide largest daily short volume, bi-monthly short interest, and the latest short-interest snapshot across tickers
Economic Indicators — FRED data lookup, latest macro snapshot, indicator search across categories
Stock Prices — Daily OHLCV history with adjusted close, latest close across one or more tickers, and on-demand technical indicators (EMA, Stochastic Oscillator, Average True Range, On-Balance Volume, Bollinger Bands)
Futures Positioning — COT positioning data, latest snapshot across all contracts, contract search
Market Indicators — VIX historical data, put/call ratios by type (equity, index, total, VIX, ETP)
Government Contracts — Federal contract awards won by a ticker (awarding agency, amount, period dates) and a ranking of the top public-company contractors by total federal dollars over a date range (USAspending.gov)
FDA Catalysts — Scheduled FDA advisory-committee (AdComm) meetings over a date range — the regulatory catalyst dates that move biotech and pharma stocks (FDA.gov)
Connecting to Claude Desktop
Add this to your Claude Desktop config file (claude_desktop_config.json):
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"equibles": {
"url": "http://localhost:8081/mcp"
}
}
}Restart Claude Desktop and the Equibles tools will be available. You can then ask questions like "Who are the top institutional holders of AAPL?" or "Search Apple's latest 10-K for revenue growth discussion."
Connecting to Claude Code
Add the MCP server to Claude Code:
claude mcp add equibles --transport http http://localhost:8081/mcpConnecting to ChatGPT Desktop
Add this to your ChatGPT Desktop config file:
macOS: ~/Library/Application Support/com.openai.chat/mcp.json
Windows: %APPDATA%\com.openai.chat\mcp.json
{
"servers": {
"equibles": {
"url": "http://localhost:8081/mcp"
}
}
}Restart ChatGPT Desktop and the Equibles tools will be available.
Connecting to OpenClaw
In OpenClaw, add an MCP server with the URL http://localhost:8081/mcp (HTTP transport).
Other MCP Clients
Any MCP-compatible client can connect to http://localhost:8081/mcp (HTTP transport).
Vector Embeddings (advanced, opt-in)
Vector embeddings enable semantic search over SEC filings (e.g., "find revenue growth discussion in Apple's 10-K"). This requires downloading the Ollama runtime (~2GB) and the Qwen3-Embedding-0.6B model (~640MB).
docker compose --profile embedding upThis adds:
Service | Port | Description |
embedding | 11434 | Ollama server with Qwen3-Embedding-0.6B model |
worker-embedding | — | Worker with embedding generation enabled |
Without the embedding profile, BM25 full-text search via ParadeDB still works out of the box — vector search is purely additive.
Bundled Ollama is the default because it needs no GPU and runs anywhere. For bulk embedding at scale, point Embedding__Provider=OpenAI at a batched server such as vLLM or Text-Embeddings-Inference — they continuously batch on the GPU and are far faster than Ollama for large corpora. See docs/guide/how-to-use-external-embedding-endpoint.md.
Screenshots
Contributing
See CONTRIBUTING.md for development setup, project architecture, and how to extend the platform. Contributors must sign the Contributor License Agreement — this is handled automatically by a bot when you open a pull request.
License
Author
Daniel Oliveira
This server cannot be installed
Maintenance
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/daniel3303/Equibles'
If you have feedback or need assistance with the MCP directory API, please join our Discord server