SecFeed: SEC EDGAR filings

SEC EDGAR data as tools: filing search, full text, XBRL financials, insider trades, 13F, 8-K events.

Should I use this

Quality & Safety

B
Description quality
76%
Schema completeness
90%
Naming quality
83%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (14)

  • LOWTool 'extract_section' description lacks action verbin extract_section
  • LOWTool 'xbrl_to_json' description lacks action verbin xbrl_to_json
  • LOWTool 'company_facts' description lacks action verbin company_facts
  • LOWTool 'insider_trades' description lacks action verbin insider_trades
  • LOWTool 'form_13f_holdings' description lacks action verbin form_13f_holdings
  • LOWTool 'map_ticker' description lacks action verbin map_ticker
  • LOWTool 'map_cusip' description lacks action verbin map_cusip
  • LOWTool 'shares_outstanding' description lacks action verbin shares_outstanding
  • LOWTool 'pay_vs_performance' description lacks action verbin pay_vs_performance
  • LOWTool 'directors' description lacks action verbin directors

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,102Tokens (tool definitions)
~470 BTypical response size
Moderate attention impact (1.64% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "secfeed": {
      "url": "https://secfeedapi.com/mcp"
    }
  }
}

Remote endpoints

https://secfeedapi.com/mcpstreamable-http

What it can do

Tool inventory

Tools (28)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search_filings(query, size, from)

Search every EDGAR filing with a Lucene-style query, e.g. ticker:AAPL AND formType:"10-K" AND filedAt:[2026-01-01 TO 2026-12-31].

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Lucene-style query"
    },
    "size": {
      "type": "integer",
      "description": "max results, default 20"
    },
    "from": {
      "type": "integer",
      "description": "offset"
    }
  }
}
🟢full_text_search(query, formTypes, startDate, endDate)

Search the full text of every filing and exhibit since 2001. Use quotes for exact phrases.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "words or \"exact phrase\""
    },
    "formTypes": {
      "type": "string",
      "description": "comma separated, e.g. 10-K,8-K"
    },
    "startDate": {
      "type": "string",
      "description": "YYYY-MM-DD"
    },
    "endDate": {
      "type": "string",
      "description": "YYYY-MM-DD"
    }
  }
}
🟢extract_section(url, item)

Return one item of a 10-K (1, 1A, 7, 7A...), 10-Q (part1item2, part2item1a...) or 8-K (2-2, 5-2...) as clean text.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "filing index or primary document URL"
    },
    "item": {
      "type": "string",
      "description": "item id"
    }
  }
}
⚪xbrl_to_json(accessionNo, cik, htmUrl)

All financial statements and cover page of one filing as JSON, from its XBRL.

Input Schema

{
  "type": "object",
  "properties": {
    "accessionNo": {
      "type": "string",
      "description": "accession number"
    },
    "cik": {
      "type": "string",
      "description": "CIK (optional)"
    },
    "htmUrl": {
      "type": "string",
      "description": "or any URL inside the filing"
    }
  }
}
⚪financial_statements(ticker, formType)

Latest income statement, balance sheet and cash flow (totals only) for a company.

Input Schema

{
  "type": "object",
  "properties": {
    "ticker": {
      "type": "string",
      "description": "ticker or CIK"
    },
    "formType": {
      "type": "string",
      "description": "10-K or 10-Q"
    }
  }
}
⚪company_facts(ticker)

Every XBRL fact a company has ever reported (large).

Input Schema

{
  "type": "object",
  "properties": {
    "ticker": {
      "type": "string",
      "description": "ticker or CIK"
    }
  }
}
⚪insider_trades(ticker, code, minValue, owner, startDate, ...)

Form 3/4/5 insider transactions and holdings with owners, prices, footnotes.

Input Schema

{
  "type": "object",
  "properties": {
    "ticker": {
      "type": "string",
      "description": "issuer ticker"
    },
    "code": {
      "type": "string",
      "description": "transaction codes, e.g. P,S"
    },
    "minValue": {
      "type": "number",
      "description": "minimum $ value"
    },
    "owner": {
      "type": "string",
      "description": "insider name contains"
    },
    "startDate": {
      "type": "string",
      "description": "filed from"
    },
    "size": {
      "type": "integer",
      "description": "max rows"
    }
  }
}
⚪form_13f_holdings(cusip, cik, period)

13F holdings rows by CUSIP or filer CIK.

Input Schema

{
  "type": "object",
  "properties": {
    "cusip": {
      "type": "string",
      "description": "CUSIP"
    },
    "cik": {
      "type": "string",
      "description": "filer CIK"
    },
    "period": {
      "type": "string",
      "description": "MM-DD-YYYY quarter end"
    }
  }
}
⚪events_8k(item, cik, startDate, text)

8-K filings by item (1.01, 1.05, 2.02, 4.01, 4.02, 5.02, 5.07...). text=true adds the item text.

Input Schema

{
  "type": "object",
  "properties": {
    "item": {
      "type": "string",
      "description": "item number like 5.02"
    },
    "cik": {
      "type": "string",
      "description": "CIK"
    },
    "startDate": {
      "type": "string",
      "description": "YYYY-MM-DD"
    },
    "text": {
      "type": "string",
      "description": "true/false"
    }
  }
}
⚪structured_form(family, cik, startDate, size)

Parsed XML forms with every data point. family: form-144, form-13f, form-13d-13g, form-d, form-c, reg-a, n-port, n-cen, n-px.

Input Schema

{
  "type": "object",
  "properties": {
    "family": {
      "type": "string",
      "description": "form family"
    },
    "cik": {
      "type": "string",
      "description": "filer CIK"
    },
    "startDate": {
      "type": "string",
      "description": "YYYY-MM-DD"
    },
    "size": {
      "type": "integer",
      "description": "max filings"
    }
  }
}
⚪company_profile(cik)

EDGAR entity profile: name, SIC, addresses, fiscal year end, former names.

Input Schema

{
  "type": "object",
  "properties": {
    "cik": {
      "type": "string",
      "description": "ticker or CIK"
    }
  }
}
⚪map_ticker(ticker)

Ticker to CIK, name and exchange.

Input Schema

{
  "type": "object",
  "properties": {
    "ticker": {
      "type": "string",
      "description": "ticker"
    }
  }
}
⚪map_cusip(cusip)

CUSIP to issuer name and ticker.

Input Schema

{
  "type": "object",
  "properties": {
    "cusip": {
      "type": "string",
      "description": "CUSIP"
    }
  }
}
⚪shares_outstanding(ticker)

Shares outstanding and public float history.

Input Schema

{
  "type": "object",
  "properties": {
    "ticker": {
      "type": "string",
      "description": "ticker or CIK"
    }
  }
}
⚪auditor(ticker)

Auditor name, location and PCAOB ID from the latest annual report.

Input Schema

{
  "type": "object",
  "properties": {
    "ticker": {
      "type": "string",
      "description": "ticker or CIK"
    }
  }
}
⚪enforcement(kind, page, details)

SEC enforcement releases. kind: litigation-releases, administrative-proceedings, aaer, press-releases.

Input Schema

{
  "type": "object",
  "properties": {
    "kind": {
      "type": "string",
      "description": "release list"
    },
    "page": {
      "type": "integer",
      "description": "page, 0 = newest"
    },
    "details": {
      "type": "string",
      "description": "true to include text"
    }
  }
}
🟢sro_filings(org)

SRO rule filings (FINRA, MSRB, DTC, exchanges). Omit org to list organizations.

Input Schema

{
  "type": "object",
  "properties": {
    "org": {
      "type": "string",
      "description": "e.g. finra"
    }
  }
}
⚪pay_vs_performance(ticker)

Pay versus performance table by year from the proxy's XBRL.

Input Schema

{
  "type": "object",
  "properties": {
    "ticker": {
      "type": "string",
      "description": "ticker or CIK"
    }
  }
}
⚪equity_dilution(ticker)

Share counts, dilution, stock comp and buybacks over time.

Input Schema

{
  "type": "object",
  "properties": {
    "ticker": {
      "type": "string",
      "description": "ticker or CIK"
    }
  }
}
⚪executive_compensation(ticker)

Summary Compensation Table by executive and year.

Input Schema

{
  "type": "object",
  "properties": {
    "ticker": {
      "type": "string",
      "description": "ticker or CIK"
    }
  }
}
⚪directors(ticker)

Board members with compensation, age, tenure.

Input Schema

{
  "type": "object",
  "properties": {
    "ticker": {
      "type": "string",
      "description": "ticker or CIK"
    }
  }
}
⚪subsidiaries(ticker)

Subsidiaries from Exhibit 21.

Input Schema

{
  "type": "object",
  "properties": {
    "ticker": {
      "type": "string",
      "description": "ticker or CIK"
    }
  }
}
⚪ipo_filings(formType, startDate)

Registrations and 424B4 offering terms.

Input Schema

{
  "type": "object",
  "properties": {
    "formType": {
      "type": "string",
      "description": "S-1, F-1, 424B4"
    },
    "startDate": {
      "type": "string",
      "description": "YYYY-MM-DD"
    }
  }
}
⚪mergers_acquisitions(ticker, startDate)

M&A filings: merger proxies, tender offers, 425, S-4.

Input Schema

{
  "type": "object",
  "properties": {
    "ticker": {
      "type": "string",
      "description": "ticker or CIK"
    },
    "startDate": {
      "type": "string",
      "description": "YYYY-MM-DD"
    }
  }
}
🟢investment_adviser(query, crd)

Form ADV adviser firms: search by name or get one by CRD.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "firm name"
    },
    "crd": {
      "type": "string",
      "description": "CRD number"
    }
  }
}
🟢list_filing_files(cik, accessionNo)

Every file in a filing (documents, exhibits, XBRL).

Input Schema

{
  "type": "object",
  "properties": {
    "cik": {
      "type": "string",
      "description": "CIK"
    },
    "accessionNo": {
      "type": "string",
      "description": "accession number"
    }
  }
}
🟡governance_dataset(dataset, ticker, startDate, endDate, size)

Structured data extracted from proxy statements, auditor's reports and SEC enforcement releases. dataset: director-compensation, executive-compensation-governance, severance-change-in-control, board-oversight, shareholder-rights, esg-oversight, compliance-signals, vote-standards, shareholder-proposals-proxy-contests, insider-5pct-holder-ownership, fund-reorganizations, audit-reports/financial-statements, audit-reports/icfr, sec-enforcement-actions. Newest filings first.

Input Schema

{
  "type": "object",
  "properties": {
    "dataset": {
      "type": "string",
      "description": "dataset path, e.g. board-oversight"
    },
    "ticker": {
      "type": "string",
      "description": "ticker or CIK"
    },
    "startDate": {
      "type": "string",
      "description": "filed from, YYYY-MM-DD"
    },
    "endDate": {
      "type": "string",
      "description": "filed to, YYYY-MM-DD"
    },
    "size": {
      "type": "integer",
      "description": "max records, up to 50"
    }
  }
}
⚪audit_report_text(id)

Full text of one auditor's report, by the id from the audit-reports datasets.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "audit report id"
    }
  }
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded28 tools