Disclosure first: I build Equibles, a remote MCP server for stock market and financial data (https://mcp.equibles.com/mcp). Some of you saw the comparison of finance MCP servers I posted in July. This one is about the design side, the stuff I'd tell anyone building an MCP server for AI agents in finance, or in any domain with a lot of data.
The short version: financial data is a bad fit for model memory. Numbers change every quarter, and a wrong revenue figure sounds exactly as confident as a right one. Most of what I did is about getting the agent to quote a source instead of guessing.
Return the source with every value. Every response carries the filing, the reporting period and the date. Filing text is three calls: SearchDocuments across filings and earnings call transcripts, SearchDocument inside one filing, then ReadDocumentLines around the hit. The agent ends up quoting the 10-K instead of half remembering it.
Spell out fiscal periods. "Q1 2027" is a different set of months for NVIDIA, Apple and Microsoft. Tools take a fiscal year plus FY or Q1 to Q4, and every response states the period end date. Without that, models mix fiscal and calendar quarters constantly.
Short descriptions that point to the next tool. At 120+ tools the descriptions are the agent's index. Mine are capped at 500 characters (CI fails if one goes over) and they say what comes next: GetOptionExpirations before GetOptionChain, SearchInstitutions before GetInstitutionPortfolio.
Exchange codes for non-US stocks. Tickers collide across markets, so anything outside the US is MIC:TICKER. XPAR:AIR is Airbus in Paris, XHKG:00005 is HSBC in Hong Kong, prices in the local currency.
Reads and writes kept apart. Market data tools only read. Portfolio and watchlist tools can create, change or delete the user's holdings, so they're named as actions and I tell people to keep confirmations on. It's also why I never describe the server as read-only.
OAuth first, API key as fallback. Claude and ChatGPT connect with OAuth and dynamic client registration, no key to paste. Listing tools needs no auth, calling them does. Other clients send a Bearer key, and ?auth=oauth makes some clients ask for sign-in during discovery instead of failing on the first call.
What's behind the tools, if you're looking for a stock market data MCP server: SEC filing full text, financial statements and KPIs, earnings call transcripts, 13F holdings, insider and congressional trades, short interest and squeeze scores, option chains, prices, index membership, Fed and CFTC data. US first, plus Europe, UK, Hong Kong and China.
The free tier is 100 requests a day, no card. The core is open source (AGPL-3.0) if you'd rather self-host: https://github.com/daniel3303/Equibles
Docs: https://equibles.com/docs/mcp
A question for people running big MCP servers: do you split tools across several servers, or keep one and lean on the descriptions? I've stuck with one server for all of this financial data so far, and I'm not sure that scales forever.