S&P 500 MCP 服务器 一个 MCP(模型上下文协议)服务器和 Next.js Web 应用程序,用于从 Supabase 查询 S&P 500 公司数据。它提供了 M…
S&P 500 MCP 服务器 一个 MCP(模型上下文协议)服务器和 Next.js Web 应用程序,用于从 Supabase 查询 S&P 500 公司数据。它提供了 M…
An MCP (Model Context Protocol) server and Next.js web app for querying S&P 500 company data from Supabase. It exposes MCP tools for company fundamentals, annual financial metrics, historical price data, news sentiment, officers, and SEC filings, plus a web UI and embedded MCP App resources for browsing and testing those tools.
| Tool | Description |
|---|---|
get_company_info |
Company basics, financials, leadership, address, and business summary |
get_company_financials |
Annual financial metrics with chart-ready trends and matrix output |
get_company_price_data |
Historical daily OHLCV price rows with date filters |
get_company_news |
Recent company news with sentiment filtering |
get_company_officers |
Executive officers and compensation |
get_company_filings |
SEC filings history, with filing type and date filters |
search_companies is an internal symbol resolver, not an exposed MCP tool. User queries are resolved through getCompanySymbol.
For ambiguous matches, elicitation-capable clients are asked to choose a company. Modern clients receive an input_required
result; the SDK compatibility layer serves the same flow to 2025-era Streamable HTTP clients. Clients without elicitation
support continue with the first match.
.nvmrc)apps/web)apps/web-app and served as tool UI resourcesmcp-handler v2 at apps/web/app/mcp/route.ts; /mcp serves modern and legacy Streamable HTTPapps/web/app/[transport]/utils/supabase.tspackages/uipnpm installSUPABASE_URL=your_supabase_url
SUPABASE_ANON_KEY=your_supabase_anon_key
LOGO_DEV_TOKEN=your_logo_dev_publishable_keySUPABASE_URL and SUPABASE_ANON_KEY are required. LOGO_DEV_TOKEN is required for the /api/logo/* proxy.
pnpm --filter @apps/web-app buildpnpm devThe Next.js web app runs on http://localhost:3000; the MCP endpoint is http://localhost:3000/mcp. The apps/web-app dev server proxies /mcp to port 3000 when run separately.
pnpm dev # Start apps/* dev tasks via Turbo
pnpm build # Build apps/web and apps/web-app via Turbo
pnpm start # Start production server for apps/web
pnpm type-check # Type-check apps/web and apps/web-app
pnpm lint # ESLint + Prettier rule checksFocused commands:
pnpm --filter @apps/web dev
pnpm --filter @apps/web-app dev
pnpm --filter @apps/web-app build
pnpm exec tsc -p apps/web/tsconfig.json --noEmit
pnpm exec tsc -p apps/web-app/tsconfig.json --noEmit
pnpm exec tsc -p packages/ui/tsconfig.json --noEmitTests are integration tests that connect a real MCP client to http://localhost:3000/mcp, so start the dev server first:
pnpm --filter @apps/web-app build
pnpm dev
pnpm testRun a single tool test:
pnpm vitest run apps/web/tests/tools/get-company-info-tool.test.tsGenerate coverage:
pnpm coverage…apps/web/app/[transport]/tools/app-resource.ts reads generated HTML from apps/web-app/dist, so rebuild apps/web-app after changing embedded MCP App pages.
/mcp handler is stateless and does not require RedisFull guides and examples: https://sp500-mcp.vercel.app/
Feel free to dive in! Open an issue or submit PRs.
Standard Readme follows the Contributor Covenant Code of Conduct.
This project exists thanks to all the people who contribute.
GNU Affero General Public License v3.0 © MichaelSun
暂无开放 Issues,或尚未同步最近议题。