SEC Dataset Statistics
sec_statsRetrieve key statistics on SEC EDGAR filings including total counts, form type distribution, date range, and last update time. Free to use.
Instructions
Get statistics about the SEC filings dataset: total filings, form type breakdown, date range, and last updated timestamp. Free endpoint, no payment required.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/tools/sec.ts:211-232 (handler)Handler function for the sec_stats tool. Makes a GET request to /api/v1/sec/stats and returns the JSON response.
async () => { const res = await apiGet<SecStatsResponse>("/api/v1/sec/stats"); if (!res.ok) { return { content: [ { type: "text" as const, text: `API error (${res.status}): ${JSON.stringify(res.data)}`, }, ], isError: true, }; } return { content: [ { type: "text" as const, text: JSON.stringify(res.data, null, 2) }, ], }; }, ); - src/tools/sec.ts:31-36 (schema)TypeScript interface for the SEC stats API response schema.
interface SecStatsResponse { dataset: string; source: string; update_frequency: string; stats: Record<string, unknown>; } - src/tools/sec.ts:202-232 (registration)Registration of the sec_stats tool with the MCP server, specifying it has no input parameters.
server.registerTool( "sec_stats", { title: "SEC Dataset Statistics", description: "Get statistics about the SEC filings dataset: total filings, form type breakdown, " + "date range, and last updated timestamp. Free endpoint, no payment required.", inputSchema: {}, }, async () => { const res = await apiGet<SecStatsResponse>("/api/v1/sec/stats"); if (!res.ok) { return { content: [ { type: "text" as const, text: `API error (${res.status}): ${JSON.stringify(res.data)}`, }, ], isError: true, }; } return { content: [ { type: "text" as const, text: JSON.stringify(res.data, null, 2) }, ], }; }, ); - src/index.ts:13-40 (registration)Import of the registerSecTools function in the main entry point.
import { registerSecTools } from "./tools/sec.js"; import { registerPacerTools } from "./tools/pacer.js"; import { registerWeatherTools } from "./tools/weather.js"; import { registerOtcTools } from "./tools/otc.js"; import { registerTrademarkTools } from "./tools/trademarks.js"; import { registerPatentTools } from "./tools/patents.js"; import { registerCompanyTools } from "./tools/company.js"; import { registerCryptoTools } from "./tools/crypto.js"; import { registerSanctionsTools } from "./tools/sanctions.js"; import { registerWhaleTools } from "./tools/whales.js"; import { registerLabelTools } from "./tools/labels.js"; import { registerHolderTools } from "./tools/holders.js"; import { registerDexTools } from "./tools/dex.js"; import { registerContractTools } from "./tools/contracts.js"; import { registerPmTools } from "./tools/pm.js"; import { registerPmArbTools } from "./tools/pm_arb.js"; import { registerPmResolutionTools } from "./tools/pm_resolution.js"; import { registerEconTools } from "./tools/econ.js"; import { registerPmMicroTools } from "./tools/pm_micro.js"; function createMcpServer() { const server = new McpServer({ name: "verilex-data", version: "0.3.3", }); registerNpiTools(server); registerSecTools(server); - src/index.ts:40-40 (registration)Registration call that wires sec_stats (and all other SEC tools) into the MCP server.
registerSecTools(server);