Financial questions usually straddle two sources: what the filings say and what happened this week. Keeping them in separate servers means the agent picks per question instead of one server growing a news module, and the repository shows both halves plus the agent that routes between them. Read it as a reference implementation you extend, not a hosted service — you supply the keys, the processes and the ports.
A TypeScript project that runs a stock-market server and a news server side by side, and a LangChain agent that calls them through tool use. It is a working reference for splitting financial data across separate MCP servers rather than one, and it connects to an IDE the same way any other server does.
- Company information for a listed company, from the stocks server
- Quarterly financials and annual financial reports for the same company
- News articles retrieved in real time, from the news server
- Query-based news search, so the article set can be narrowed to a topic
- A LangChain agent that decides which of the two servers to call, included in the repository
Node.js 16.x or higher and TypeScript 4.x or higher, plus API keys for the stock data service and OpenAI, set as `STOCK_API_KEY` and `OPENAI_API_KEY` in a `.env` file. After `npm install` and `npm run build`, the two servers run in separate terminals and expose SSE endpoints on `http://127.0.0.1:3000/sse` and `http://127.0.0.1:3001/sse`; Cursor connects by adding both URLs to `mcp.json`. The agent is started separately.
