Sec Filing Analyzer

io.github.kyliemckinleydemov1.0.0更新於 Oct 1, 2026

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

已驗證Streamable HTTP可網頁執行Data & AnalyticsFinanceKnowledge & Memory

概覽

AI 產生的概覽

讓助理查詢 800 多家美國公司的 SEC 文件、AI 風險評分、基本面篩選與 30 天 alpha 訊號。

功能
這是一個遠端唯讀 MCP 伺服器,提供七個工具:文件查詢、文件分析、公司快照、公司搜尋、基本面篩選、熱門訊號與模型歷史紀錄。關於 10-K、10-Q 與 8-K 文件的回答以 SEC EDGAR 資料為依據並附引用,分析內容包含 AI 風險與關注度評分、風險因素變化、情緒分析與執行摘要。次要功能是以迴歸模型預測 30 天相對市場 alpha。
適用情境
當助理需要關於美國上市公司文件的附引用回答、風險或關注度評分,或在標普 500 成分股範圍內篩選時適用。也適合研究文件情緒、8-K 事件分類,或該服務商公布的訊號歷史表現。內容僅供研究與教育,不構成投資建議。
執行需求
遠端 Streamable HTTP 端點;清單未聲明需要安裝套件、帳號、API 金鑰或環境變數。助理的 MCP 用戶端需能透過網路存取該端點。
安裝前請注意
伺服器為唯讀,但輸出包含 AI 生成的風險評分、情緒與 30 天 alpha 預測,服務商自行標註這些內容僅供研究與教育、不構成投資建議。預測是模型估計值,其回測準確率不代表未來表現。清單未要求任何憑證。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Sec Filing Analyzer,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "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

來源:README.md,提交 b0e6b6e

工具

0
工具後設資料尚未被收錄。

版本歷史

1
  1. v1.0.0最新Oct 1, 2026