secapi-mcp
OfficialProvides SEC financial data tools within VS Code via GitHub Copilot, enabling AI-assisted analysis of filings, insider trades, and institutional holdings.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@secapi-mcpsearch for Apple's latest 10-Q filing"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
secapi-mcp
Official Model Context Protocol server for secapi.dev.
Expose SEC filings, financial statements, insider trades, and institutional holdings as AI-native tools for Claude, Cursor, ChatGPT, Windsurf, VS Code, and any MCP-compatible client.
AI Client → MCP Tools → secapi.dev REST API → JSON Response → LLMThis server never talks to databases directly — it is a typed, validated interface over the secapi-node SDK.
Features
9 high-level AI tools designed for reasoning, not REST endpoint mirroring
SDK-first architecture — all API calls go through
secapi-nodeZod validation on every tool input
AI-friendly errors with categories, suggestions, and retry hints
Structured JSON responses with metadata and pagination
Extensible tool registry — add new tools in minutes
Production logging — structured, secrets-safe
Full test suite with Vitest
CI/CD with GitHub Actions and Changesets
Related MCP server: EdgarTools MCP
Installation
npm install -g secapi-mcp
# or
pnpm add -g secapi-mcp
# or run via npx
npx secapi-mcpRequires Node.js 20+.
Quick Start
Get an API key from secapi.dev
Set your environment variable:
export SECAPI_API_KEY="your-api-key"Run the server (stdio transport):
secapi-mcpMCP Client Configuration
Cursor
Add to .cursor/mcp.json (or Cursor Settings → MCP):
{
"mcpServers": {
"secapi": {
"command": "npx",
"args": ["-y", "secapi-mcp"],
"env": {
"SECAPI_API_KEY": "your-api-key"
}
}
}
}Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"secapi": {
"command": "npx",
"args": ["-y", "secapi-mcp"],
"env": {
"SECAPI_API_KEY": "your-api-key"
}
}
}
}VS Code (GitHub Copilot)
Add to your VS Code MCP settings:
{
"mcp": {
"servers": {
"secapi": {
"command": "npx",
"args": ["-y", "secapi-mcp"],
"env": {
"SECAPI_API_KEY": "your-api-key"
}
}
}
}
}Windsurf
Add to Windsurf MCP configuration:
{
"mcpServers": {
"secapi": {
"command": "npx",
"args": ["-y", "secapi-mcp"],
"env": {
"SECAPI_API_KEY": "your-api-key"
}
}
}
}Available Tools
Tool | Description |
| Search SEC filings by ticker/CIK, form type, and date range |
| Get filing metadata and document list for deeper analysis |
| Search companies by name, ticker, or CIK |
| Company profile plus recent filings — ideal research starting point |
| Income statement, balance sheet, or cash flow |
| Financial ratio time series (ROE, margins, liquidity, etc.) |
| Insider buying/selling activity from Form 4 filings |
| Find institutional investors (13F filers) |
| 13F portfolio holdings for a given quarter |
Environment Variables
Variable | Required | Default | Description |
| Yes* | — | API key from secapi.dev |
| Yes* | — | Legacy alias for |
| No |
| API base URL |
| No |
| Request timeout in milliseconds |
| No |
| Retry count for transient failures |
| No |
| Enable debug logging to stderr |
| No |
| User-Agent header |
* One of SECAPI_API_KEY or SEC_API_KEY is required.
Architecture
src/
├── index.ts # stdio entry point
├── server/ # MCP server factory
├── client/ # secapi-node wrapper
├── config/ # Zod-validated configuration
├── errors/ # AI-friendly error categorization
├── logging/ # Structured, secrets-safe logging
├── schemas/ # Shared Zod schemas
├── utils/ # Response formatting
└── tools/
├── registry.ts # Tool registration system
├── types.ts # Tool definition interfaces
├── filings/ # Filing tools
├── companies/ # Company tools
├── financials/ # Financial statement tools
├── insiders/ # Insider trading tools
└── institutions/ # 13F institutional toolsAdding a New Tool
Create a tool definition in the appropriate
src/tools/<domain>/index.ts:
{
name: "my_new_tool",
description: "Clear description for the LLM...",
inputSchema: z.object({ ticker: tickerSchema }),
handler: async (input, { client }) => {
const data = await client.filings.search({ ticker: input.ticker });
return createToolResponse("my_new_tool", data.data, {
pagination: data.pagination,
});
},
}Export the module from
src/tools/index.tsif it's a new domain.
That's it — the registry handles validation, error formatting, and MCP registration.
Development
git clone https://github.com/secapi-dev/secapi-mcp.git
cd secapi-mcp
pnpm install
pnpm test
pnpm buildRun locally:
SECAPI_API_KEY=your-key pnpm startScripts
Script | Description |
| Build to |
| Run Vitest test suite |
| TypeScript type checking |
| ESLint |
| Prettier format |
Troubleshooting
"API key is required" — Set SECAPI_API_KEY in your MCP client config env block.
"Invalid or missing API key" — Verify your key at secapi.dev. Keys are never logged.
"API rate limit exceeded" — Wait and retry, or upgrade your plan.
Server not appearing in Cursor — Restart Cursor after editing MCP config. Check stderr logs with SECAPI_DEBUG=true.
FAQ
Why not mirror REST endpoints 1:1?
AI agents work better with semantic, high-level tools. company_overview is more useful than GET /entities/:id + GET /entities/:id/filings.
Can I self-host?
Yes. Set SECAPI_BASE_URL if using a custom API deployment.
How do I add more tools? See Adding a New Tool. The framework is designed for fast extension.
License
MIT — see LICENSE.
Links
secapi.dev — API platform
secapi-node — TypeScript SDK
Model Context Protocol — MCP specification
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/secapi-dev/secapi-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server