# SEC EDGAR Full-Text Search MCP — 35M+ Filings (`andrew_avina/edgar-fulltext-mcp`) Actor

The SEC EDGAR Full-Text Search MCP is an Apify actor that exposes the SEC's EDGAR Full-Text Search System (EFTS) via the Model Context Protocol. It enables AI assistants — Claude, GPT-4, and any MCP-compatible agent — to perform natural language full-text search across 35 mill...

- **URL**: https://apify.com/andrew\_avina/edgar-fulltext-mcp.md
- **Developed by:** [Andrew Avina](https://apify.com/andrew_avina) (community)
- **Categories:** MCP servers, Business
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

$3.00 / 1,000 result item returneds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## SEC EDGAR Full-Text Search MCP
#### Search Inside 35M+ SEC Filings — No Auth, No Cost

The **SEC EDGAR Full-Text Search MCP** is an Apify actor that exposes the SEC's EDGAR Full-Text Search System (EFTS) via the Model Context Protocol. It enables AI assistants — Claude, GPT-4, and any MCP-compatible agent — to perform natural language full-text search across **35 million+ SEC filings** spanning every public company since the 1990s.

This is fundamentally different from searching SEC's EDGAR company lookup or financial data APIs. This actor searches **the actual text inside filings** — finding the exact paragraph where a company discloses a material weakness, mentions climate risk, or announces a CEO departure.

**Important:** This actor covers EDGAR full-text search. For company financial data (income statements, balance sheets, XBRL data), see the companion `sec-edgar-mcp` actor.

---

### Why Full-Text Search of SEC Filings Matters

Public companies are legally required to disclose material risks, events, and financial conditions in SEC filings. The information is all there — buried in thousands of pages of 10-K risk factors, 8-K event disclosures, proxy statements, and activist investor schedules.

The problem is **discoverability**. There was no easy way to search across all filings for a specific phrase or concept — until EDGAR's full-text search API and this MCP actor.

**What you can now find:**
- Every 10-K that mentions "artificial intelligence" as a material risk factor (2020–2024)
- Every 8-K where a CEO resigned in the last 90 days across all public companies
- Every company that disclosed a "material weakness in internal controls" this year
- Every activist 13-D filed mentioning "board reconstitution" targeting a specific company
- Every S-1 IPO filing that disclosed "going concern" doubts before going public
- Every proxy statement discussing executive compensation tied to ESG metrics

---

### Who This Is For

#### Equity Research Analysts and Portfolio Managers
- Screen for earnings quality red flags (material weakness mentions in 10-Ks)
- Monitor real-time 8-K event filings for portfolio companies
- Find companies building AI infrastructure by searching 10-K capex disclosures
- Track sector-wide disclosure trends (e.g., how many companies disclosed "Russia exposure" in 2022?)

#### M&A and Private Equity Teams
- Search acquisition targets for undisclosed litigation or regulatory risk disclosures
- Find all companies that disclosed "strategic alternatives" in 8-Ks (potential acquisition targets)
- Review target's history of restatements, auditor changes, or going concern opinions
- Screen for supply chain concentration risk disclosures by geography or supplier

#### ESG and Sustainability Analysts
- Extract climate risk disclosures from 10-K filings across an entire sector
- Find companies that mention specific TCFD (Task Force on Climate Disclosures) frameworks
- Search for "Scope 3 emissions" disclosures to assess ESG data quality
- Track how "net zero" commitments have evolved in proxy statement language over time

#### Corporate Intelligence and Competitive Research
- Monitor competitor 8-Ks for strategic announcements the moment they hit EDGAR
- Search proxy statements for executive compensation benchmarking data
- Find 13-D/13-G activist investor disclosures targeting sector peers
- Track patent litigation expense disclosures across an industry

#### Legal and Compliance Teams
- Search all 8-Ks mentioning "SEC investigation" or "DOJ subpoena" to monitor regulatory exposure
- Find all companies that disclosed "FCPA" (Foreign Corrupt Practices Act) violations
- Screen for sanctions risk exposure in 10-K risk factor sections
- Review cybersecurity incident disclosures across public company peers (SEC Rule 8-K Item 1.05)

#### Journalists and Financial Researchers
- Find companies that quietly disclosed layoffs inside 8-K filings
- Track "dividend suspended" or "share buyback" language trends
- Search for "going concern" disclosures that precede bankruptcies
- Find IPO S-1 filings with unusual risk factor language

---

### Data Source

**SEC EDGAR Full-Text Search System (EFTS)** — operated by the US Securities and Exchange Commission at `https://efts.sec.gov/`

The EFTS API:
- Covers **35M+ SEC filings** from all public companies and registered entities
- Indexes **full text** of every filing, not just metadata
- Updates in **near real-time** — new 8-Ks appear within minutes of SEC acceptance
- Is **completely free** — no registration, no API key, no rate limits for reasonable use
- Serves as the backend for EDGAR's own full-text search interface at `efts.sec.gov`

---

### MCP Tools

#### 1. `search_filings`

Full-text search across any combination of SEC filing types.

**Parameters:**
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `query` | string | Yes | Full-text search query. Multi-word queries are searched as exact phrases. |
| `form_types` | array of strings | No | Filter by filing type(s). E.g. `["10-K"]`, `["8-K"]`, `["13D","13G"]` |
| `company` | string | No | Filter by company name or ticker |
| `startdt` | string | No | Start date filter (YYYY-MM-DD) |
| `enddt` | string | No | End date filter (YYYY-MM-DD) |
| `limit` | integer | No | Max results (default 20, max 100) |

**Output fields per filing:**
| Field | Description |
|-------|-------------|
| `company_name` | Filing company name |
| `ticker` | Stock ticker symbol |
| `form_type` | SEC form type (10-K, 8-K, S-1, etc.) |
| `filed_at` | Filing date (YYYY-MM-DD) |
| `period_of_report` | Period covered by the filing |
| `description` | Filing description or display text (truncated to 300 chars) |
| `accession_no` | SEC accession number (unique filing ID) |
| `cik` | SEC Central Index Key (company ID) |
| `url` | Direct link to the filing on SEC.gov |
| `source` | Always `"sec.gov/edgar"` |

**Example — find climate risk disclosures in 2024 annual reports:**
```json
{
  "name": "search_filings",
  "arguments": {
    "query": "climate risk transition",
    "form_types": ["10-K"],
    "startdt": "2024-01-01",
    "enddt": "2024-12-31",
    "limit": 20
  }
}
````

**Example — find activist investor disclosures mentioning "board reconstitution":**

```json
{
  "name": "search_filings",
  "arguments": {
    "query": "board reconstitution",
    "form_types": ["13D"],
    "startdt": "2023-01-01",
    "limit": 30
  }
}
```

**Example — find companies disclosing AI investment plans:**

```json
{
  "name": "search_filings",
  "arguments": {
    "query": "artificial intelligence capital expenditure",
    "form_types": ["10-K", "10-Q"],
    "startdt": "2024-01-01",
    "limit": 50
  }
}
```

***

#### 2. `search_8k_events`

Search 8-K current reports specifically, optimized for finding material corporate events. 8-Ks must be filed within 4 business days of any material event, making this the fastest way to surface breaking corporate disclosures.

**Parameters:**
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `query` | string | Yes | Event keyword or phrase |
| `company` | string | No | Filter by company name or ticker |
| `startdt` | string | No | Start date (YYYY-MM-DD) |
| `enddt` | string | No | End date (YYYY-MM-DD) |
| `limit` | integer | No | Max results (default 20, max 100) |

**High-value 8-K search queries:**

| Signal | Query | Use Case |
|--------|-------|----------|
| Executive departure | `"CEO resigned effective"` | Leadership change monitoring |
| M\&A announcement | `"merger agreement"` | Deal flow intelligence |
| Cybersecurity incident | `"data breach"` or `"cybersecurity incident"` | Risk monitoring |
| Internal controls | `"material weakness"` | Earnings quality screening |
| Bankruptcy risk | `"going concern"` | Distressed investing signals |
| Regulatory action | `"SEC investigation"` or `"DOJ subpoena"` | Legal risk monitoring |
| Dividend change | `"dividend suspended"` or `"special dividend"` | Income investing signals |
| Guidance cut | `"withdraw guidance"` | Earnings risk monitoring |
| Layoffs | `"reduction in force"` | Labor market intelligence |
| Strategic review | `"strategic alternatives"` | M\&A target identification |

**Example — monitor CEO departures in real time:**

```json
{
  "name": "search_8k_events",
  "arguments": {
    "query": "Chief Executive Officer resigned",
    "startdt": "2024-10-01",
    "limit": 25
  }
}
```

***

#### 3. `get_filing_types`

Return all supported SEC form types with descriptions. Use this to discover valid codes for the `form_types` parameter.

**No parameters required.**

**Supported form types include:**

| Form Type | Description |
|-----------|-------------|
| `10-K` | Annual report — audited full-year financials and risk factors |
| `10-Q` | Quarterly report — unaudited interim financials |
| `8-K` | Current report — material events within 4 business days |
| `S-1` | IPO registration statement |
| `DEF 14A` | Proxy statement — executive pay, board elections |
| `13D` | Activist investor disclosure (>5% ownership, active intent) |
| `13G` | Passive investor disclosure (>5% ownership, passive intent) |
| `13F` | Institutional manager holdings (>$100M AUM, quarterly) |
| `4` | Insider trading report (executives and directors) |
| `SC TO-T` | Tender offer — third-party acquisition bids |
| `20-F` | Foreign private issuer annual report |
| `D` | Regulation D private placement notice |
| ... | 20 form types total |

***

### Quick Start

#### Option 1: Batch Mode (Apify Dataset)

Run with standard Apify input, results pushed to a dataset downloadable as JSON/CSV/XLSX.

**Search for material weakness disclosures in 2024 annual reports:**

```json
{
  "query": "material weakness internal controls",
  "form_types": ["10-K"],
  "startdt": "2024-01-01",
  "enddt": "2024-12-31",
  "limit": 50
}
```

**Find IPO filings that mentioned going concern doubts:**

```json
{
  "query": "going concern substantial doubt",
  "form_types": ["S-1"],
  "limit": 30
}
```

#### Option 2: MCP Server Mode (Live AI Integration)

```json
{
  "serveMcp": true
}
```

**Claude Desktop config:**

```json
{
  "mcpServers": {
    "edgar-fulltext": {
      "command": "npx",
      "args": ["-y", "@apify/actor-mcp-bridge", "your-actor-run-url:4321"]
    }
  }
}
```

Once connected, Claude can answer:

- *"Find all 10-K filings that mention 'PFAS' contamination liability from 2023-2024"*
- *"Search for proxy statements discussing executive compensation tied to carbon reduction targets"*
- *"What companies filed 8-Ks disclosing SEC investigations in Q1 2024?"*
- *"Find every S-1 IPO filing that used the phrase 'we have a history of losses' in the past 2 years"*
- *"Search 13-D filings mentioning 'Elliott Management' in the last 6 months"*

***

### Input Schema Reference

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `query` | string | `"climate risk material weakness"` | Full-text search query |
| `form_types` | array | `["10-K"]` | SEC form type filter |
| `company` | string | `""` | Company name or ticker filter |
| `startdt` | string | `"2024-01-01"` | Filing date start filter |
| `enddt` | string | `"2024-12-31"` | Filing date end filter |
| `mode` | string | `"search"` | Mode: `search`, `8k`, or `types` |
| `limit` | integer | `20` | Max results (1–100) |
| `serveMcp` | boolean | `false` | Enable MCP server mode on port 4321 |

***

### Advanced Use Cases

#### ESG Screening Pipeline

```
Query: "Scope 3 emissions" in 10-K filings, 2022-2024
→ Identify which S&P 500 companies disclose Scope 3
→ Filter for companies that include targets vs. disclosure-only
→ Build ESG scoring data from primary source (not third-party aggregators)
```

#### Earnings Quality Forensics

```
Query: "material weakness" in 10-K, 10-Q, 2020-2024
→ Find companies with repeated internal control failures
→ Cross-reference with stock price performance
→ Build leading indicator model for earnings restatements
```

#### Activist Target Identification

```
Query: "strategic alternatives" in 8-K, last 90 days
→ Identify companies in active strategic review processes
→ These are potential acquisition or breakup targets
→ Cross-reference with 13-D filings for existing activist positions
```

#### Cybersecurity Risk Intelligence

```
Query: "cybersecurity incident" in 8-K (Item 1.05), 2023-2024
→ Catalog all mandatory cybersecurity disclosures since SEC Rule effective Dec 2023
→ Identify sector concentration of incidents
→ Assess third-party vendor exposure patterns
```

#### IPO Pre-Filing Intelligence

```
Query: "confidentially submitted" in S-1 filings
→ Find companies that emerged from confidential IPO testing period
→ Identify upcoming IPO pipeline before roadshow
```

***

### EDGAR EFTS API Notes

**Response structure:**

```json
{
  "hits": {
    "hits": [
      {
        "_id": "...",
        "_source": {
          "entity_name": "Company Name",
          "ticker": "TICK",
          "file_type": "10-K",
          "file_date": "2024-03-15",
          "period_of_report": "2023-12-31",
          "accession_no": "0001234567-24-000123",
          "entity_id": "1234567"
        }
      }
    ],
    "total": {"value": 1247}
  }
}
```

This actor extracts the `_source` object from each hit and normalizes it into the output schema above.

***

### Technical Notes

- **Data source:** SEC EDGAR EFTS (`https://efts.sec.gov/LATEST/search-index`)
- **Authentication:** None required (public API)
- **Rate limits:** SEC asks for reasonable use; include `User-Agent` header (this actor does)
- **Coverage:** All SEC registrants from 1993 to present (~35M+ filings)
- **Update frequency:** Near real-time; 8-Ks appear within minutes of SEC acceptance
- **MCP port:** 4321 (GET `/mcp/tools`, POST `/mcp/call`)
- **Docker base:** `apify/actor-python:3.11`
- **Dependencies:** `apify>=2.0.0`, `httpx>=0.24.0`
- **Error handling:** All tool failures return `{"_meta": {"error": "...", "fallback_tried": true}}`

***

### Related Actors

- **sec-edgar-mcp** — Financial data API (income statements, balance sheets, XBRL filings)
- **pacer-intelligence-mcp** — Federal court records search via CourtListener
- **federal-register-mcp** — Federal regulatory activity and rulemaking tracking

***

### Compliance Note

All data returned by this actor is public information from the SEC's EDGAR system. SEC filings are public records available to all investors and researchers. This actor does not bypass any access controls or access any non-public information. Use of the EDGAR EFTS API is governed by SEC's standard terms of service.

# Actor input Schema

## `query` (type: `string`):

Keywords or phrase to search inside the full text of SEC filings. Multi-word queries are searched as exact phrases. Examples: 'material weakness internal controls', 'climate risk transition', 'going concern substantial doubt', 'CEO resigned effective', 'artificial intelligence risk factor'

## `form_types` (type: `array`):

SEC form types to search. Leave empty to search all types. Common values: 10-K (annual), 10-Q (quarterly), 8-K (current events), DEF 14A (proxy), S-1 (IPO), 13D/13G (activist/passive >5%), 13F (institutional holdings).

## `company` (type: `string`):

Filter results to a specific company (e.g. 'Apple', 'AAPL', 'Tesla Inc', 'Alphabet'). Leave blank to search all public companies.

## `startdt` (type: `string`):

Only return filings filed on or after this date

## `enddt` (type: `string`):

Only return filings filed on or before this date

## `mode` (type: `string`):

What to search: general filing search, 8-K events only, or get list of filing types

## `limit` (type: `integer`):

Maximum number of filings to return (max 100)

## `serveMcp` (type: `boolean`):

When enabled, starts an MCP-compatible HTTP server on port 4321 instead of returning a batch dataset. Use this to connect Claude Desktop or any MCP client directly to EDGAR full-text search.

## Actor input object example

```json
{
  "query": "climate risk material weakness",
  "form_types": [
    "10-K"
  ],
  "company": "",
  "startdt": "2024-01-01",
  "enddt": "2024-12-31",
  "mode": "search",
  "limit": 20,
  "serveMcp": false
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("andrew_avina/edgar-fulltext-mcp").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("andrew_avina/edgar-fulltext-mcp").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call andrew_avina/edgar-fulltext-mcp --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=andrew_avina/edgar-fulltext-mcp",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "SEC EDGAR Full-Text Search MCP — 35M+ Filings",
        "description": "The SEC EDGAR Full-Text Search MCP is an Apify actor that exposes the SEC's EDGAR Full-Text Search System (EFTS) via the Model Context Protocol. It enables AI assistants — Claude, GPT-4, and any MCP-compatible agent — to perform natural language full-text search across 35 mill...",
        "version": "0.1",
        "x-build-id": "CRpstNWJmsJTvfsrX"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/andrew_avina~edgar-fulltext-mcp/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-andrew_avina-edgar-fulltext-mcp",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/andrew_avina~edgar-fulltext-mcp/runs": {
            "post": {
                "operationId": "runs-sync-andrew_avina-edgar-fulltext-mcp",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/andrew_avina~edgar-fulltext-mcp/run-sync": {
            "post": {
                "operationId": "run-sync-andrew_avina-edgar-fulltext-mcp",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "query": {
                        "title": "Full-Text Search Query",
                        "type": "string",
                        "description": "Keywords or phrase to search inside the full text of SEC filings. Multi-word queries are searched as exact phrases. Examples: 'material weakness internal controls', 'climate risk transition', 'going concern substantial doubt', 'CEO resigned effective', 'artificial intelligence risk factor'",
                        "default": "climate risk material weakness"
                    },
                    "form_types": {
                        "title": "Filing Types",
                        "type": "array",
                        "description": "SEC form types to search. Leave empty to search all types. Common values: 10-K (annual), 10-Q (quarterly), 8-K (current events), DEF 14A (proxy), S-1 (IPO), 13D/13G (activist/passive >5%), 13F (institutional holdings).",
                        "default": [
                            "10-K"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "company": {
                        "title": "Company Name or Ticker",
                        "type": "string",
                        "description": "Filter results to a specific company (e.g. 'Apple', 'AAPL', 'Tesla Inc', 'Alphabet'). Leave blank to search all public companies.",
                        "default": ""
                    },
                    "startdt": {
                        "title": "Start Date (YYYY-MM-DD)",
                        "type": "string",
                        "description": "Only return filings filed on or after this date",
                        "default": "2024-01-01"
                    },
                    "enddt": {
                        "title": "End Date (YYYY-MM-DD)",
                        "type": "string",
                        "description": "Only return filings filed on or before this date",
                        "default": "2024-12-31"
                    },
                    "mode": {
                        "title": "Search Mode",
                        "enum": [
                            "search",
                            "8k",
                            "types"
                        ],
                        "type": "string",
                        "description": "What to search: general filing search, 8-K events only, or get list of filing types",
                        "default": "search"
                    },
                    "limit": {
                        "title": "Result Limit",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Maximum number of filings to return (max 100)",
                        "default": 20
                    },
                    "serveMcp": {
                        "title": "MCP Server Mode",
                        "type": "boolean",
                        "description": "When enabled, starts an MCP-compatible HTTP server on port 4321 instead of returning a batch dataset. Use this to connect Claude Desktop or any MCP client directly to EDGAR full-text search.",
                        "default": false
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
