Connects Claude to SEC EDGAR filings through three tools: search_filings, get_filing_sample, and purchase_filing. Data comes from Supabase views populated by the finance-factory pipeline. The purchase flow uses x402 payment rails with USDC on Polygon and returns a transaction hash for redelivery. You can test search and preview operations for free on the Cloud Run endpoint or Glama sandbox. Production access runs through xpay for metering and billing. Useful when you need structured access to corporate filings with agent-friendly search and optional paid full document retrieval. The repo includes A2A agent card discovery and detailed handoff docs for distribution.
SEC EDGAR structured filing MCP for agents: search_filings, get_filing_sample, purchase_filing. Data lives in Supabase views (fi_listings_portfolio, fi_listings_portfolio_compact) populated by the finance-factory pipeline.
| Read first | File |
|---|---|
| Try without xpay key | docs/TRY_WITHOUT_XPAY.md — Glama sandbox or Cloud Run upstream |
| Distribution (you vs repo) | docs/DISTRIBUTION.md · docs/HANDOFF.md |
| Build / handoff | MCP_FINANCE_BUILD.md |
| Env template | .env.example → copy to .env |
| Glama | glama.json (maintainers: stagproject); build fix: GLAMA_BUILD.md |
| A2A / x402 | docs/A2A.md — Agent Card + payment mapping |
| MCP Registry | io.github.stagproject/sec-filings-mcp — docs/MCP_REGISTRY.md |
| Discovery URLs | docs/DISCOVERY.md |
Template reference: mcp_server.py (patent MCP, unmodified). Runtime: mcp_server_finance.py.
| Layer | How to use |
|---|---|
| MCP (production) | xpay URL below — tools/call on search_filings, get_filing_sample, purchase_filing |
| A2A (discovery) | Agent Card on Cloud Run upstream (xpay blocks /.well-known/*): https://sec-filings-mcp-1065601264332.us-central1.run.app/.well-known/agent-card.json |
| x402 (payment) | purchase_filing — 402 + Polygon USDC + tx_hash redelivery |
Native A2A JSON-RPC task API is on the roadmap; today agents invoke via MCP Streamable HTTP. Details: docs/A2A.md.
| Path | URL / action |
|---|---|
| Glama sandbox | Open server → Try in Browser |
| Cloud Run trial | https://sec-filings-mcp-1065601264332.us-central1.run.app/mcp — search_filings + get_filing_sample without ?key= |
Details: docs/TRY_WITHOUT_XPAY.md.
xpay proxy always needs a key; per-tool $0 is allowed on xpay (docs) but is not the same as “no signup.”
| Endpoint | URL |
|---|---|
| xpay (billing + catalog) | https://sec-edgar-filings.mcp.xpay.sh/mcp?key=YOUR_XPAY_KEY |
| Cloud Run (upstream) | https://sec-filings-mcp-1065601264332.us-central1.run.app/mcp |
Register / manage on xpay.tools. Slug: sec-edgar-filings.
Publisher checklist (finance collection, awesome list): docs/DISTRIBUTION.md.
git clone https://github.com/stagproject/sec-filings-mcp.git
cd sec-filings-mcp
copy .env.example .env
# Edit .env with Supabase + x402 keys
uv sync
# Run once in Supabase SQL Editor: sql/fi_processed_transactions.sql
uv run python mcp_server_finance.py --sse
# MCP: http://127.0.0.1:8081/mcp (PORT in .env)
Tests:
uv run python test_finance_mcp.py
uv run python test_finance_mcp.py --xpay-only --e2e
gcloud run deploy sec-filings-mcp `
--source . `
--region us-central1 `
--allow-unauthenticated `
--port 8080
Set env vars from .env (not committed). Do not deploy .env.cloudrun.yaml to git.
Listed at glama.ai/mcp/servers/stagproject/sec-filings-mcp — use Try in Browser for a no-key sandbox; production traffic uses xpay or Cloud Run above.
io.github.stagproject/sec-filings-mcp
Publish / update: docs/MCP_REGISTRY.md. Search: https://registry.modelcontextprotocol.io
MIT — see LICENSE.md.
com.mcparmory/google-search
io.github.pipeworx-io/brave-search
marcopesani/mcp-server-serper
brave/brave-search-mcp-server
com.mcparmory/google-search-console
acamolese/google-search-console-mcp