by zhensherlock
Provides an MCP endpoint and a Next.js web UI for querying S&P 500 company fundamentals, news sentiment, executive officers, and SEC filings stored in Supabase.
A server and web application that expose a set of MCP tools for retrieving detailed information about S&P 500 companies—including basic profile, financials, recent news with sentiment analysis, officer compensation, and SEC filing history—backed by a Supabase database.
pnpm install..env file with SUPABASE_URL, SUPABASE_ANON_KEY, optionally REDIS_URL and MCP_MAX_DURATION.pnpm dev starts the Next.js app at http://localhost:3000 and the MCP endpoint at http://localhost:3000/mcp./mcp using the MCP protocol, or interact via the built‑in web UI at /tools.pnpm test or run individual tool tests via Vitest.get_company_info, get_company_news, get_company_officers, get_company_filings.Q: Do I need a Supabase account?
A: Yes, the server reads all company data from Supabase tables. Provide the URL and anon key in the .env file.
Q: Is Redis mandatory?
A: No. Redis (REDIS_URL) is only required for Server‑Sent Events in production. Local development works without it.
Q: How can I extend the tool set?
A: Add a new TypeScript file under apps/web/app/[transport]/tools/ and register it in the MCP handler (route.ts). The framework will expose it automatically.
Q: What is the maximum execution time?
A: Controlled by MCP_MAX_DURATION (default 60 seconds). Increase it on Vercel if your plan supports longer Fluid compute durations.
Q: Can I run the server with npm instead of pnpm?
A: Yes, but the repository assumes pnpm 10 for workspace linking. Use npm install and equivalent scripts if preferred.
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, news sentiment, officers, and SEC filings, plus a web UI for browsing and testing those tools.
| Tool | Description |
|---|---|
get_company_info |
Company basics, financials, leadership, address, and business summary |
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.
.nvmrc)apps/web)mcp-handler at apps/web/app/[transport]/route.ts; /mcp is the active endpointapps/web/app/[transport]/utils/supabase.tspackages/uipnpm install
SUPABASE_URL=your_supabase_url
SUPABASE_ANON_KEY=your_supabase_anon_key
MCP_MAX_DURATION=60
REDIS_URL=your_redis_url
SUPABASE_URL and SUPABASE_ANON_KEY are required. REDIS_URL is only needed for production SSE.
pnpm dev
The web app runs on http://localhost:3000; the MCP endpoint is http://localhost:3000/mcp.
pnpm dev # Start apps/web via Turbo
pnpm build # Production build for apps/web
pnpm start # Start production server for apps/web
pnpm lint # ESLint + Prettier rule checks
Type-check the packages directly:
pnpm exec tsc -p apps/web/tsconfig.json --noEmit
pnpm exec tsc -p packages/ui/tsconfig.json --noEmit
pnpm type-check currently calls tsc --noEmit without a root tsconfig.json, so it exits with TypeScript help instead of checking the app.
Tests are integration tests that connect a real MCP client to http://localhost:3000/mcp, so start the dev server first:
pnpm dev
pnpm test
Run a single tool test:
pnpm vitest run apps/web/tests/tools/get-company-info-tool.test.ts
Generate coverage:
pnpm coverage
apps/web/
app/[transport]/route.ts MCP GET/POST/DELETE handler
app/[transport]/tools/ MCP tool registrations
app/[transport]/utils/ Supabase, symbol resolution, summaries
app/api/tools/call/route.ts HTTP proxy for the web tool tester
app/tools/ Tool catalog page
components/ App-specific UI
tests/tools/ MCP integration tests
packages/ui/
src/components/ Shared shadcn UI primitives
src/styles/globals.css Shared Tailwind CSS
MCP_MAX_DURATION defaults to 60; set a higher duration for long-running production calls when your Vercel plan supports itdisableSse: false); production SSE requires Redis via REDIS_URLFull 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
Please log in to share your review and rating for this MCP.
Explore related MCPs that share similar capabilities and solve comparable challenges
by stripe
Provides SDKs and tools to integrate Stripe's billing and API services with large language models, agent frameworks, and token‑metering for AI‑powered products and businesses.
by goat-sdk
Enables AI agents to send and receive payments, purchase goods and services, execute investment strategies, tokenize assets, and obtain financial insights by leveraging blockchains, stablecoins, and wallets.
by financial-datasets
Provides access to income statements, balance sheets, cash flow statements, stock prices, market news, and cryptocurrency data through MCP tools for AI assistants.
by alpacahq
Enables large language models to trade stocks and options, retrieve real‑time and historical market data, and manage portfolios using plain English commands through a local or remote MCP server.
by stefanoamorelli
Provides an MCP server that connects AI models to SEC EDGAR filings, enabling real‑time retrieval of company filings, financial statements, and insider‑trading data with exact XBRL precision and verifiable filing references.
by imbenrabi
Provides AI assistants with direct access to Financial Modeling Prep data, including real‑time stock quotes, company fundamentals, financial statements, market indexes, news, and alternative data sets via the Model Context Protocol.
by ariadng
Enables AI LLMs to execute trades on the MetaTrader 5 platform through the Model Context Protocol.
by XeroAPI
Provides a bridge between the Model Context Protocol and Xero's API, enabling standardized access to Xero accounting and business features.
by kukapay
Provides a comprehensive set of cryptocurrency technical analysis indicators and ready‑to‑use trading strategies through an MCP interface, enabling AI agents and applications to generate buy, hold, or sell signals.