The server's data layer now runs on sec-edgar-toolkit 0.2.0. The 21 tools keep the same names and arguments, so existing clients need no changes.
Fixed
search_companiesread attributes off plain dicts and errored on every call.get_company_inforaised when a company had no tickers.get_financialswrote bareNaNfor empty statement cells, which made the response invalid JSON. Non-finite floats now serialize asnull.mcp[cli]is pinned below 2.0. The 2.0 SDK droppedmcp.server.fastmcp, so a fresh install from the unpinned range could not start the server.uv.lockand the conda post-link installers resolved a dependency the project no longer declares.
Internal
- New live end-to-end check that drives all 21 tools against SEC EDGAR through the real dispatch path and rejects any response that is not strict JSON.
- CI: the ruff rule set is pinned so a linter release cannot turn the build red, the Windows matrix no longer hides lint failures, docs validation runs a command the CLI actually has, and the test suite runs for the first time.
- Removed two dead modules:
tools/insider_complex.pyanddocument_parser.py.