Sec Filing Analyzer

io.github.kyliemckinleydemov1.0.0Updated Oct 1, 2026

AI-analyzed SEC filings: filings, analysis, screening, 30-day signals, track record.

VerifiedStreamable HTTPWeb executableData & AnalyticsFinanceKnowledge & Memory

Overview

AI-generated overview

Lets an assistant query SEC filings, AI risk scores, fundamentals screening, and 30-day alpha signals for 800+ US companies.

What it does
A remote, read-only MCP server with seven tools: filings, filing analysis, company snapshot, company search, fundamentals screening, top signals, and model track record. Answers about 10-K, 10-Q, and 8-K filings are grounded in SEC EDGAR data with citations, and analysis includes AI risk and concern scoring, risk factor changes, sentiment, and executive summaries. A secondary feature predicts 30-day market-relative alpha from a regression model.
When to use it
Useful when an assistant needs cited answers about US public-company filings, risk or concern scores, or screening across S&P 500 constituents. Also relevant for research on filing sentiment, 8-K event categories, or the provider's published signal track record. It is research and educational material, not investment advice.
Requirements
A remote Streamable HTTP endpoint; no package install, account, API key, or environment variable is declared. The assistant's MCP client must be able to reach the provider's endpoint over the network.
Before you install
The server is read-only, but its output includes AI-generated risk scores, sentiment, and 30-day alpha predictions that the provider itself labels research and educational only and not investment advice. Predictions are model estimates with reported backtested accuracy, not guarantees. No credentials are requested by the manifest.

Installation

In SourceWeft

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

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "sec-filing-analyzer": {
      "type": "http",
      "url": "https://www.stockhuntr.net/api/mcp"
    }
  }
}

README

StockHuntr — SEC Filing Analyzer

Chat with SEC filings. Get cited answers and risk scores — free.

StockHuntr is a free AI tool for reading and analyzing SEC filings. Ask about any 10-K, 10-Q, or 8-K in plain English and get clear, cited answers straight from the filing, plus AI risk and concern scoring across 800+ US companies (all S&P 500 constituents). Everything is grounded in primary-source SEC EDGAR data. It also generates 30-day alpha signals as a secondary feature.

It competes with paid AI research tools (Fintool, AlphaSense) and free raw EDGAR — cited AI answers and risk scoring on primary-source filings, at no cost. Research and educational only; not investment advice.

Live at: stockhuntr.net

[Next.js] [TypeScript] [Claude AI] [Prisma] [Tests]

Features

Chat With Filings (Ask the Market)

  • Cited answers — Ask questions in plain English about any 10-K, 10-Q, or 8-K and get answers grounded in the actual filing, with accession numbers and EDGAR links cited
  • Grounded Q&A blocks — Company and filing pages carry server-rendered "key questions" derived from real analysis data, with FAQPage structured data (lib/qa-builders.ts)
  • Natural-language querying — Screen and query the filing corpus at /query

AI-Powered Filing Analysis

  • AI Risk & Concern Scoring — 0–10 concern score (LOW → CRITICAL) with factor breakdown; detects data breaches, litigation, executive departures, restatements, covenant breaches, and more
  • Risk Factor Analysis — Claude AI analyzes risk factor changes between filings, identifying new risks, removed risks, and severity shifts
  • Sentiment Analysis — Management tone detection from MD&A sections (-1 to +1 scale)
  • Executive Summaries — Investor-focused bullet points generated from filing content
  • 8-K Event Classification — Automated categorization of current event filings

30-Day Alpha Prediction (Alpha Model v2 — secondary feature)

  • Stepwise+Ridge regression predicting 30-day market-relative alpha (stock return minus S&P 500)
  • 13 features across 44 Mixture-of-Experts (MoE) models — global + 11 sector experts + 4 cap-tier experts + 29 sector×cap-tier combined experts
  • 4,009 training samples from 500+ companies (10x expansion from v1's 340 samples)
  • Historical price snapshots at filing date (99% coverage) — eliminates stale-price bias from prior model
  • Macro regime features — S&P 500 30-day trend and VIX level at filing date for bull/bear market adjustment
  • EPS surprise — strongest new feature (actual vs. consensus EPS), winsorized to [-50%, +50%]
  • Backtested accuracy: 53.5% directional (74.7% high-confidence), Sharpe ratio ~1.97 (90-day strict walk-forward CV)
  • Paper Trading — Automated virtual portfolio validates live performance (30-day hold period)
  • See MODEL.md for full model documentation

Content & Discovery (server-rendered for SEO / AI crawlers)

  • /learn — Explainer library: plain-language answers about SEC forms and items (10-K vs 10-Q, 8-K items, going concern, EPS surprises, XBRL, Form 4)
  • /sectors & /sectors/[slug] — Sector insight pages with aggregate stats (filings analyzed, avg concern, model accuracy) computed from the corpus
  • /pulse — Recurring "SEC Filing Pulse" report: sector concern heat, most significant filings, strongest 30-day signals (ISR-refreshed, Article JSON-LD)
  • /compare & /compare/[slug] — Comparison landing pages (e.g. Fintool vs StockHuntr, AlphaSense alternatives, Bloomberg Terminal alternatives)
  • MCP server (/api/mcp, docs at /mcp) — Remote Model Context Protocol server (Streamable HTTP) with 7 read-only tools: filings, filing analysis, company snapshot, company search, fundamentals screening, top signals, and model track record — for MCP clients (Claude, ChatGPT, agents). Published to the official MCP Registry as io.github.kyliemckinleydemo/sec-filing-analyzer. Discovery manifest at /.well-known/mcp.json. See MCP-GUIDE.md
  • Stock screener (/screener) — Free server-rendered screener: filter 800+ companies by sector, market cap, P/E, dividend yield, and revenue growth; results link to AI-analyzed filings. Works without JS (native GET form); mirrored by the screen_companies MCP tool
  • Open dataset (scripts/export-dataset.ts) — CC-BY-4.0 export of the analyzed-filing corpus (CSV + JSONL + dataset card) for publication on Hugging Face / Kaggle
  • SEO/GEO infra — Dynamic sitemap.ts & robots.ts, public/llms.txt, JSON-LD (Organization / WebSite / SoftwareApplication / FAQPage / Article / Dataset), Microsoft Clarity analytics, and IndexNow submission

Data Pipeline (Automated Cron Jobs)

  • SEC Filing Ingestion — Fetches new 10-K, 10-Q, 8-K filings via RSS (3x daily), matched to companies by CIK (not ticker) for reliability, with daily-index catch-up
  • AI Analysis — Automated analyze-filings cron keeps recent filings analyzed in bounded, cost-guarded batches
  • Prediction Backfill — backfill-predictions cron persists 30-day alpha predictions so Top Signals / Track Record / MCP stay populated
  • Ticker Audit — Weekly ticker-audit cron surfaces ticker-universe drift (delistings, duplicates, missing companies)
  • Stock Price Updates — Real-time prices from Yahoo Finance (batch rotation 6x daily)
  • Analyst Data — Consensus ratings, target prices, upgrades/downgrades
  • Macro Indicators — S&P 500, VIX, Treasury yields, sector ETFs
  • Paper Trading — Automated position closure after 30-day hold period
  • Supervisor — Health monitoring with auto-recovery and email alerts, including analysis-coverage and stock-price-freshness data checks

User Features

  • Watchlist Alerts — Email notifications for high-concern filings, price moves, analyst activity
  • Company Search — Search 800+ companies by ticker
  • Filing History — Browse 10-K, 10-Q, 8-K with infinite scroll
  • Paper Trading Dashboard — Track virtual portfolio performance
  • Magic Link Auth — Passwordless email authentication

Tech Stack

LayerTechnology
FrameworkNext.js 14 (App Router, Server Components)
LanguageTypeScript
DatabasePostgreSQL + Prisma ORM
AIAnthropic Claude Sonnet 4.5
DataSEC EDGAR API, Yahoo Finance (yahoo-finance2), SEC RSS
EmailResend
UITailwind CSS, shadcn/ui, Recharts, Framer Motion
AI InteropRemote MCP server via mcp-handler at /api/mcp
TestingVitest (244 tests), Playwright (108 E2E tests)
DeploymentVercel (CLI deploy, not GitHub-integrated)

Getting Started

Prerequisites

  • Node.js 18+
  • PostgreSQL database
  • Anthropic API key (get one here)

Installation

bash
git clone https://github.com/kyliemckinleydemo/sec-filing-analyzer.gitcd sec-filing-analyzernpm install

Environment Variables

Create .env.local:

bash
# RequiredDATABASE_URL="postgresql://user:password@localhost:5432/sec_analyzer"ANTHROPIC_API_KEY="sk-ant-api03-your-key-here"
# Cron job authenticationCRON_SECRET="your-cron-secret"
# Email alerts (Resend)RESEND_API_KEY="re_your-key-here"ALERT_EMAIL="[email protected]"
# AuthJWT_SECRET="your-jwt-secret"MAGIC_LINK_SECRET="your-magic-link-secret"

Database Setup

bash
npx prisma generatenpx prisma db push

Run

bash
npm run dev        # Development server at localhost:3000npm test           # Run all 244 Vitest testsnpm run test:e2e   # Run Playwright E2E tests (108)

Project Structure

sec-filing-analyzer/├── app/                              # Next.js App Router│   ├── api/│   │   ├── analyze/[accession]/      # AI filing analysis│   │   ├── predict/[accession]/      # Price prediction│   │   ├── filings/latest/           # Latest filings feed│   │   ├── mcp/                      # Remote MCP server (Streamable HTTP)│   │   ├── cron/                     # Automated cron jobs│   │   │   ├── daily-filings-rss/    # SEC RSS ingestion (CIK-matched) + IndexNow│   │   │   ├── analyze-filings/      # Automated AI analysis (bounded batches)│   │   │   ├── backfill-predictions/ # Persist 30-day predictions│   │   │   ├── ticker-audit/         # Weekly ticker-universe drift audit│   │   │   ├── update-analyst-data/  # Analyst consensus│   │   │   ├── update-stock-prices/  # Full price refresh│   │   │   ├── update-stock-prices-batch/  # Batch rotation│   │   │   ├── update-macro-indicators/    # Macro data│   │   │   ├── watchlist-alerts/     # User email alerts│   │   │   ├── watchlist-alerts-scheduler/ # Alert routing│   │   │   ├── paper-trading-close-positions/ # Position mgmt│   │   │   └── supervisor/           # Health monitoring│   │   ├── auth/                     # Magic link auth│   │   ├── paper-trading/            # Trade execution│   │   ├── watchlist/                # Watchlist CRUD│   │   └── chat/                     # AI chat│   ├── components/                   # Shared components│   │   ├── Navigation.tsx            # Sticky site header/nav│   │   ├── Footer.tsx                # Site-wide footer│   │   └── QASection.tsx             # Grounded Q&A block (FAQPage JSON-LD)│   ├── learn/                        # Explainer library (+ [slug])│   ├── sectors/                      # Sector insight pages (+ [sector])│   ├── pulse/                        # SEC Filing Pulse report│   ├── compare/                      # Comparison landing pages (+ [slug])│   ├── latest-filings/               # Filing feed page│   ├── filing/[accession]/           # Filing detail page│   ├── company/[ticker]/             # Company page│   ├── paper-trading/                # Portfolio dashboard│   ├── watchlist/                    # Watchlist page│   ├── sitemap.ts                    # Dynamic sitemap.xml│   ├── robots.ts                     # robots.txt (allows AI crawlers)│   ├── layout.tsx                    # Root layout: nav, JSON-LD, Clarity│   └── page.tsx                      # Homepage (SSR initial data)├── lib/                              # Core business logic│   ├── alpha-model.ts                # Alpha prediction model│   ├── qa-builders.ts                # Grounded Q&A pair builders│   ├── filings-server.ts            # Server-side latest-filings query│   ├── sector-insights.ts            # Sector aggregate stats│   ├── pulse.ts                      # Pulse report computation│   ├── indexnow.ts                   # IndexNow URL submission│   ├── paper-trading.ts              # PaperTradingEngine class│   ├── supervisor.ts                 # Cron health monitoring│   ├── claude-client.ts              # Anthropic API client│   ├── sec-rss-client.ts             # SEC RSS feed client (CIK matching)│   ├── macro-indicators.ts           # Macro data fetching│   ├── auth.ts                       # JWT + magic link auth│   ├── rate-limit.ts                 # API rate limiting│   └── prisma.ts                     # Prisma client singleton├── public/│   └── llms.txt                      # LLM/AI-crawler site summary├── scripts/│   └── export-dataset.ts             # Open dataset export (CSV/JSONL)├── __tests__/                        # Test suite (244 Vitest + 108 E2E)│   ├── unit/                         # Pure logic tests│   ├── integration/                  # API route + service tests│   │   ├── api/cron/                 # All cron job tests│   │   └── lib/                      # Service layer tests│   ├── e2e/                          # Playwright browser tests│   ├── fixtures/                     # Shared test data│   └── mocks/                        # Prisma + module mocks├── prisma/│   └── schema.prisma                 # Database schema├── scripts/                          # Data pipeline scripts└── vercel.json                       # Cron schedules + config

Cron Jobs

The system runs automated jobs via Vercel Cron (see vercel.json):

JobSchedule (UTC)Description
daily-filings-rss06:00, 14:00, 22:00Fetch SEC filings via RSS (CIK-matched), update company data, run supervisor + IndexNow
analyze-filings07:00, 15:00, 21:00Analyze recent unanalyzed filings with Claude in bounded, cost-guarded batches
backfill-predictions08:00Persist 30-day alpha predictions for analyzed filings that lack one
ticker-auditMon 06:00Weekly audit surfacing ticker-universe drift (delistings, duplicates, gaps)
update-macro-indicators01:00S&P 500, VIX, Treasury, sector ETFs
update-analyst-data03:00Analyst consensus, target prices, upgrades/downgrades
update-stock-prices-batchEvery 4h (6x/day)Batch rotation price updates
watchlist-alerts13:00 (morning), 23:00 (evening)Email digests for watchlist events
paper-trading-close-positions(via supervisor)Close 30-day expired positions
supervisor(via daily-filings)Health checks, auto-recovery, analysis-coverage & price-freshness checks, email alerts

All cron endpoints require Authorization: Bearer <CRON_SECRET> or vercel-cron user-agent. The analyze-filings job only spends on the Anthropic API when ANALYSIS_ENABLED=true (dry-run otherwise).

See CRON-JOBS-README.md for detailed documentation.

Testing

bash
npm test                    # All 244 Vitest testsnpm run test:unit           # Unit tests onlynpm run test:integration    # Integration tests onlynpm run test:coverage       # With coverage reportnpm run test:e2e            # Playwright E2E (108 tests)npm run test:count          # Count tests across suites (static)

Test Coverage

CategoryFilesTestsWhat's Covered
Vitest — Unit4~53Alpha model, auth, rate limiting, builders
Vitest — Integration15~191Cron jobs, supervisor, paper trading, API routes
Playwright — E2E14~108All pages incl. learn/sectors/pulse/compare, nav, Q&A blocks
Total33~352

See TEST-PLAN.md for detailed test architecture.

API Endpoints

Public

MethodEndpointDescription
GET/api/filings/latestLatest filings feed (paginated, filterable)
GET/api/sec/company/{ticker}Company info + filings from SEC EDGAR
GET/api/companies/searchSearch companies by ticker/name
GET/api/stock/{ticker}Stock price data
GET/POST/api/mcpRemote MCP server — 7 tools (filings, analysis, company, search, screening, top signals, track record)

Analysis (requires auth)

MethodEndpointDescription
GET/api/analyze/{accession}Run AI analysis on a filing
GET/api/predict/{accession}Generate price prediction
POST/api/chatAI chat about filings
POST/api/queryNatural language query

Cron (requires CRON_SECRET)

MethodEndpointDescription
GET/api/cron/daily-filings-rssFetch new SEC filings
GET/api/cron/update-analyst-dataUpdate analyst data
GET/api/cron/update-stock-pricesRefresh stock prices
GET/api/cron/update-stock-prices-batchBatch price rotation
GET/api/cron/update-macro-indicatorsMacro indicator update
POST/api/cron/watchlist-alertsSend watchlist alerts
POST/api/cron/watchlist-alerts-schedulerRoute alert checks
GET/api/cron/paper-trading-close-positionsClose expired trades
GET/api/cron/supervisorHealth monitoring

Environment Variables

VariableRequiredDescription
DATABASE_URLYesPostgreSQL connection string
ANTHROPIC_API_KEYYesAnthropic API key for Claude
CRON_SECRETYesAuthentication for cron endpoints
RESEND_API_KEYYesResend API key for email alerts
ALERT_EMAILYesEmail for supervisor alerts
JWT_SECRETYesSecret for JWT token signing
MAGIC_LINK_SECRETYesSecret for magic link tokens

Deployment

Deployed via Vercel CLI (not GitHub auto-deploy):

bash
npm run deploy              # Production deploy with --forcenpm run deploy:preview      # Preview deployment

This runs vercel --prod --force and sets the stockhuntr.net alias.

Database Sync

After schema changes, sync production DB:

bash
vercel env pull .env.prodDATABASE_URL=$(grep DATABASE_URL .env.prod | cut -d= -f2-) npx prisma db pushrm .env.prod

See DEPLOYMENT.md for the full deployment guide.

Documentation

DocumentDescription
README.mdThis file — project overview
DEVELOPER-GUIDE.mdHow to work in the repo: build/test/deploy, adding an MCP tool, SEO/GEO patterns, gotchas
MCP-GUIDE.mdConnecting to and using the remote MCP server (7 tools)
QUICKSTART.mdQuick start guide for new users
TEST-PLAN.mdTest architecture and coverage
CRON-JOBS-README.mdCron job system documentation
DEPLOYMENT.mdVercel deployment guide
MODEL.mdAlpha Model v1.0 architecture and performance
PAPER-TRADING-SYSTEM.mdPaper trading engine docs
CRON-SETUP.mdEmail alerts and supervisor setup

Disclaimer

This tool is for educational and research purposes only. Do not use this as financial advice. Always consult with a qualified financial advisor before making investment decisions. Past performance does not guarantee future results.


Built with Next.js, TypeScript, Claude AI, and Vitest

Source: README.md at commit b0e6b6e

Tools

0
Tool metadata has not been indexed yet.

Version history

1
  1. v1.0.0LatestOct 1, 2026