Koskamo

SEC EDGAR MCP

A remote MCP server providing AI agents with access to SEC EDGAR data, including Form 4 insider trades, cluster buys, company filings, XBRL financials, and full-text search capabilities via a JSON API hosted on Cloudflare Workers.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

SEC EDGAR MCP logo, by monriah-studioCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-01Published by monriah-studio
MCP endpoint (Streamable HTTP)
https://sec-edgar-api.kidriahx.workers.dev/mcp
Vendor documentation

What you can do with it

  • Retrieve Form 4 insider trades for specific companies or insiders
  • Detect market-wide cluster buys involving multiple insiders
  • Access XBRL financial snapshots like revenue and net income
  • Search EDGAR filings using full-text, form, and date filters

Source and maintenance

Community listingRegistry 1.0.0
Maintenance checked

Protocol and capabilities

Server
sec-edgar-mcp 1.0.0
MCP protocol
2025-06-18
Tools
7 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {}
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

U.S. SEC EDGAR data: Form 4 insider trades, market-wide insider buying/cluster buys, filings, XBRL financials and full-text search. Pass a ticker (AAPL) or a CIK (320193) as ticker_or_cik. Results are compact JSON; follow documentUrl/filingUrl links for full documents. Data comes from SEC EDGAR (public domain). Not investment advice.

Tools

7 advertised

get_insider_trades — Insider trades (Form 4) for a company or insider
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Recent SEC Form 4 insider transactions for one company (ticker or issuer CIK) or one insider (reporting-owner CIK). Returns a summary (open-market buy/sell counts, shares, dollar value, distinct insiders) and one row per transaction: date, insider, role, transaction code (P=open-market buy, S=sale, A=award, M=option exercise, F=tax withholding, G=gift), shares, price, value, shares owned after, 10b5-1 flag and filing link. Use side="buy" to see only open-market purchases.

get_insider_trades input schema
{
  "type": "object",
  "required": [
    "ticker_or_cik"
  ],
  "properties": {
    "side": {
      "enum": [
        "buy",
        "sell"
      ],
      "type": "string",
      "description": "Only open-market purchases (buy, code P) or sales (sell, code S)."
    },
    "codes": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 12
      },
      "maxItems": 15,
      "description": "Only these transaction codes, e.g. [\"P\",\"S\"] or [\"M\",\"F\"]."
    },
    "since": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Only filings on or after this date (YYYY-MM-DD)."
    },
    "filings": {
      "type": "integer",
      "default": 5,
      "maximum": 25,
      "minimum": 1,
      "description": "How many of the most recent Form 4 filings to parse (each costs one SEC request). Default 5."
    },
    "max_rows": {
      "type": "integer",
      "default": 25,
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum transaction rows to return. Default 25."
    },
    "ticker_or_cik": {
      "type": "string",
      "maxLength": 12,
      "minLength": 1,
      "description": "Stock ticker (e.g. \"AAPL\", \"BRK.B\") or SEC CIK number (e.g. \"320193\")."
    },
    "include_derivative": {
      "type": "boolean",
      "default": false,
      "description": "Include derivative (option/RSU) transactions. Default false."
    }
  },
  "additionalProperties": false
}
get_insider_trades annotations
{
  "title": "Insider trades (Form 4) for a company or insider",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
get_market_insider_buys — Market-wide insider buying and cluster buys
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Recent open-market insider purchases (Form 4 code P) across all U.S. public companies, grouped by issuer and ranked by number of buying insiders, then dollar value. A "cluster buy" is 2+ insiders buying the same stock. Filter by look-back days, minimum total value, minimum insiders and role. Data is built from a rolling scan of recent EDGAR Form 4 filings (coverage starts at deployment, up to 30 days).

get_market_insider_buys input schema
{
  "type": "object",
  "properties": {
    "days": {
      "type": "integer",
      "default": 7,
      "maximum": 30,
      "minimum": 1,
      "description": "Look-back window in days. Default 7."
    },
    "role": {
      "enum": [
        "officer",
        "director",
        "tenpercent"
      ],
      "type": "string",
      "description": "Only purchases by officers, directors or 10% owners."
    },
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 50,
      "minimum": 1,
      "description": "Maximum issuers to return. Default 10."
    },
    "min_value": {
      "type": "number",
      "minimum": 0,
      "description": "Minimum total purchase value per issuer in USD, e.g. 100000."
    },
    "min_insiders": {
      "type": "integer",
      "default": 1,
      "maximum": 20,
      "minimum": 1,
      "description": "Minimum distinct buying insiders per issuer; use 2 for cluster buys only. Default 1."
    }
  },
  "additionalProperties": false
}
get_market_insider_buys annotations
{
  "title": "Market-wide insider buying and cluster buys",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
get_company_filings — Company SEC filings list
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Latest SEC filings for a company (10-K, 10-Q, 8-K with item numbers, S-1, DEF 14A, 4, 13D/G...), newest first, with filing date, report period, description and direct document URL. Filter by form types and a date range.

get_company_filings input schema
{
  "type": "object",
  "required": [
    "ticker_or_cik"
  ],
  "properties": {
    "forms": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 12
      },
      "maxItems": 15,
      "description": "Only these form types, e.g. [\"10-K\",\"10-Q\",\"8-K\"]. Amendments (/A) are included."
    },
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 50,
      "minimum": 1,
      "description": "Maximum filings to return. Default 10."
    },
    "since": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Only filings on or after this date (YYYY-MM-DD)."
    },
    "until": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Only filings on or before this date (YYYY-MM-DD)."
    },
    "ticker_or_cik": {
      "type": "string",
      "maxLength": 12,
      "minLength": 1,
      "description": "Stock ticker (e.g. \"AAPL\", \"BRK.B\") or SEC CIK number (e.g. \"320193\")."
    }
  },
  "additionalProperties": false
}
get_company_filings annotations
{
  "title": "Company SEC filings list",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
get_company_snapshot — Company financial snapshot (XBRL)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Key financials from a company's 10-K/10-Q XBRL data: revenue, gross profit, operating income, net income, diluted EPS, operating cash flow, total assets, liabilities, equity, cash, long-term debt and shares outstanding. Each metric has the latest annual value, prior annual value, YoY growth % and the latest reported period, plus net margin, gross margin and debt-to-equity. Values in USD as reported.

get_company_snapshot input schema
{
  "type": "object",
  "required": [
    "ticker_or_cik"
  ],
  "properties": {
    "ticker_or_cik": {
      "type": "string",
      "maxLength": 12,
      "minLength": 1,
      "description": "Stock ticker (e.g. \"AAPL\", \"BRK.B\") or SEC CIK number (e.g. \"320193\")."
    }
  },
  "additionalProperties": false
}
get_company_snapshot annotations
{
  "title": "Company financial snapshot (XBRL)",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
get_company_concept — Historical values of one XBRL financial concept
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Time series of a single XBRL concept for a company, from SEC companyconcept data, newest first and de-duplicated by period. Examples: us-gaap NetIncomeLoss, Revenues, RevenueFromContractWithCustomerExcludingAssessedTax, Assets, EarningsPerShareDiluted, LongTermDebt, ResearchAndDevelopmentExpense; dei EntityCommonStockSharesOutstanding. Use period="annual" for fiscal years (10-K) or "quarterly" for 3-month periods.

get_company_concept input schema
{
  "type": "object",
  "required": [
    "ticker_or_cik",
    "concept"
  ],
  "properties": {
    "unit": {
      "type": "string",
      "description": "Unit to return, e.g. \"USD\", \"USD/shares\", \"shares\". Default: the first unit reported."
    },
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 40,
      "minimum": 1,
      "description": "Maximum data points to return. Default 10."
    },
    "period": {
      "enum": [
        "annual",
        "quarterly",
        "all"
      ],
      "type": "string",
      "default": "annual",
      "description": "Which periods to return. Default annual."
    },
    "concept": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]+$",
      "description": "XBRL tag name, e.g. \"NetIncomeLoss\"."
    },
    "taxonomy": {
      "enum": [
        "us-gaap",
        "dei",
        "ifrs-full",
        "srt"
      ],
      "type": "string",
      "default": "us-gaap",
      "description": "XBRL taxonomy. Default us-gaap (ifrs-full for IFRS filers)."
    },
    "ticker_or_cik": {
      "type": "string",
      "maxLength": 12,
      "minLength": 1,
      "description": "Stock ticker (e.g. \"AAPL\", \"BRK.B\") or SEC CIK number (e.g. \"320193\")."
    }
  },
  "additionalProperties": false
}
get_company_concept annotations
{
  "title": "Historical values of one XBRL financial concept",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
search_filings — EDGAR full-text search
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Full-text search across SEC filings since 2001 (EDGAR FTS). Supports quoted phrases ("share repurchase"), boolean OR, and filters for form types, date range and company CIKs. Returns matching filings with company, form, filing date, 8-K items and a document URL. Default range: last 365 days.

search_filings input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "ciks": {
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^\\d{1,10}$"
      },
      "maxItems": 10,
      "description": "Only filings by these company CIKs (use resolve_company to get a CIK from a ticker)."
    },
    "forms": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 12
      },
      "maxItems": 15,
      "description": "Only these form types, e.g. [\"8-K\"] or [\"10-K\",\"10-Q\"]."
    },
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 50,
      "minimum": 1,
      "description": "Maximum hits to return. Default 10."
    },
    "query": {
      "type": "string",
      "maxLength": 500,
      "minLength": 1,
      "description": "Search text. Use double quotes for exact phrases, e.g. \"going concern\"."
    },
    "offset": {
      "type": "integer",
      "default": 0,
      "maximum": 9900,
      "minimum": 0,
      "description": "Result offset for paging (EDGAR returns pages of 100). Default 0."
    },
    "end_date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Latest filing date. Default today (YYYY-MM-DD)."
    },
    "start_date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Earliest filing date. Default 365 days ago (YYYY-MM-DD)."
    }
  },
  "additionalProperties": false
}
search_filings annotations
{
  "title": "EDGAR full-text search",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
resolve_company — Resolve ticker or CIK
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Convert a stock ticker to its SEC CIK and company name, or a CIK to its ticker and name. Use it to get the CIK needed by search_filings.

resolve_company input schema
{
  "type": "object",
  "required": [
    "ticker_or_cik"
  ],
  "properties": {
    "ticker_or_cik": {
      "type": "string",
      "maxLength": 12,
      "minLength": 1,
      "description": "Stock ticker (e.g. \"AAPL\", \"BRK.B\") or SEC CIK number (e.g. \"320193\")."
    }
  },
  "additionalProperties": false
}
resolve_company annotations
{
  "title": "Resolve ticker or CIK",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
438 ms
95th percentile latency
438 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 438 ms · metadata changed · 7 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http sec-edgar-mcp-workers https://sec-edgar-api.kidriahx.workers.dev/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add sec-edgar-mcp-workers --url https://sec-edgar-api.kidriahx.workers.dev/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable sec-edgar-mcp-workers in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "sec-edgar-mcp-workers": {
      "url": "https://sec-edgar-api.kidriahx.workers.dev/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "sec-edgar-mcp-workers": {
      "type": "streamableHttp",
      "url": "https://sec-edgar-api.kidriahx.workers.dev/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start sec-edgar-mcp-workers and inspect its tools.
VS Code configuration
{
  "servers": {
    "sec-edgar-mcp-workers": {
      "type": "http",
      "url": "https://sec-edgar-api.kidriahx.workers.dev/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http sec-edgar-mcp-workers https://sec-edgar-api.kidriahx.workers.dev/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "sec-edgar-mcp-workers": {
      "url": "https://sec-edgar-api.kidriahx.workers.dev/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "sec-edgar-mcp-workers": {
      "serverUrl": "https://sec-edgar-api.kidriahx.workers.dev/mcp"
    }
  }
}

Let your agent find its tools

Find servers like SEC EDGAR MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.