Documentation

How to connect your AI agent to KeyVex and query the 38 tools. No account, no API key, no OAuth flow — point your MCP client at the endpoint and go. Last updated 2026-05-22.

On this page

What is KeyVex

KeyVex is a remote Model Context Protocol (MCP) server that exposes US public financial and government disclosures as agent-native tools. Your AI agent (Claude Desktop, Cursor, or any MCP client) connects once and can query 38 tools across dozens of official US government sources — SEC filings, congressional trades, FEC campaign finance, federal contracts and grants, lobbying, regulatory enforcement, sanctions, macroeconomic indicators, and more.

All data is public-record information sourced directly from US government agencies. KeyVex normalizes and indexes it; KeyVex does not provide investment advice, derived signals, or trading recommendations.

Quickstart

1. There's no signup

KeyVex's MCP endpoint is publicly accessible. No account, no API key, no consent flow. Point your client at the URL below and start calling tools.

2. Configure your MCP client

The KeyVex MCP endpoint is:

https://mcp.keyvex.com

For Claude Desktop, add this to your claude_desktop_config.json:

{
  "mcpServers": {
    "keyvex": {
      "url": "https://mcp.keyvex.com",
      "transport": "http"
    }
  }
}

For Cursor or any other MCP client, follow your client's instructions for adding a remote MCP server URL. KeyVex supports the standard Streamable HTTP transport. No authentication headers are required.

3. Make a query

Ask your agent something that touches KeyVex data:

"Show me the largest congressional trades in the past 30 days
 with party and committee context."

The agent will pick the right tools (get_congressional_trades and get_member_profile), run them in parallel, and synthesize an answer.

4. Verify with curl (optional)

You can hit the endpoint directly without any client. Health check:

curl https://mcp.keyvex.com/

Returns server version, tool count, and the full tool list as JSON. List all tools via MCP:

curl -X POST https://mcp.keyvex.com/ \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

No Authorization header is needed. The response is a JSON-RPC envelope containing the full schema of every tool.

Authentication

Authentication: none. KeyVex's public MCP endpoint is openly accessible. There are no accounts, no API keys, no OAuth flow, and no consent screens. Any MCP client can connect and call any tool.

The endpoint advertises this contract in its health-check response: {"auth":"none",...}.

The reason: every tool serves data already public by federal mandate (SEC filings, USAspending records, congressional disclosures, etc.). There's nothing user-specific to gate on. Removing the auth layer also removes a setup step for the agent developer.

Abuse prevention. Because the endpoint is open, two mechanisms protect it from runaway use:

Future paid tiers (when they ship). Paid tiers — with higher quotas, priority routing, and dedicated support — will live on a separate URL (e.g., a /v2 path or sibling subdomain) and will use per-customer Bearer keys we issue at signup. The public endpoint at mcp.keyvex.com will remain authless and free.

Tool reference

KeyVex exposes 38 tools. All are read-only. Every tool's full schema (parameters, filters, response shape) is returned by the MCP tools/list method. The table below is a one-line summary.

SEC filings & market structure

get_insider_transactionsSEC Form 4 / 5 — executive insider buys, sells, option exercises, RSU activity
get_planned_insider_salesSEC Form 144 — planned insider sales with 10b5-1 plan flag
get_institutional_holdingsSEC Form 13F — quarterly institutional fund holdings
get_activist_stakesSEC Schedule 13D / 13G — activist and 5%+ beneficial ownership
get_nport_filingsSEC Form N-PORT — mutual fund monthly portfolio metadata
get_fund_holdingsSEC N-PORT primary-document XML — per-security fund holdings + derivatives
get_registration_statementsSEC Form S-1 / S-3 — IPO and shelf registration statements
get_tender_offersSEC Schedule TO — third-party + issuer tender offers
get_private_placementsSEC Form D — Regulation D exempt offerings
get_material_eventsSEC Form 8-K — M&A, executive changes, earnings, material events
get_proxy_filingsSEC Schedule 14A — proxy statements (DEF 14A annual + merger)
get_fundamentalsSEC EDGAR XBRL — income statement, balance sheet, cash flow per filing
get_sec_fails_to_deliverSEC bi-monthly Fails-to-Deliver settlement data

Congressional activity

get_congressional_tradesSenate eFD + House Clerk Periodic Transaction Reports (member stock trades)
get_member_profileCurrent senators, representatives, committee assignments, contact info
get_annual_financial_disclosuresForm 278 / Public Financial Disclosure (Senate eFD)
get_billsCongress.gov bills + resolutions (HR / S / HJ / SJ / HC / SC / HR / SRes)
get_roll_call_votesHouse + Senate roll-call votes

Campaign finance & influence

get_fec_candidate_profileFEC candidates and linked principal committees
get_fec_contributionsFEC Schedule A — itemized campaign contributions (≥$200)
get_fec_independent_expendituresFEC Schedule E — super-PAC ads supporting/opposing candidates
get_lobbying_filingsSenate LDA — quarterly lobbying registrations and spend
get_foreign_agentsDOJ FARA — foreign agent registrations and principal relationships

Federal awards

get_federal_contractsUSAspending — federal procurement contract awards
get_federal_grantsUSAspending — federal grant + assistance awards

Regulatory & compliance

get_enforcement_actionsSEC + DOJ + CFTC + OCC + FDIC + FTC enforcement press releases
get_ofac_sdnUS Treasury OFAC Specially Designated Nationals sanctions list
get_screening_listUS Consolidated Screening List — 12 export-control / sanctions lists
get_federal_register_documentsFederal Register — rules, proposed rules, notices, presidential documents
get_oig_exclusionsHHS-OIG LEIE — list of excluded healthcare individuals / entities
get_consumer_complaintsCFPB Consumer Complaint Database
get_product_recallsFDA (drug / device / food) + CPSC consumer-product recalls
get_government_publicationsGovInfo — committee reports, public laws, hearings, GAO reports

Macroeconomic & markets

get_economic_indicatorsBLS + FRED + EIA — employment, CPI, rates, GDP, energy series
get_treasury_auctionsUS Treasury Bills / Notes / Bonds / TIPS / FRN auctions
get_cftc_cot_reportsCFTC Commitments of Traders — weekly futures + options positioning

unified_search is the cross-source meta-tool. Pass one or more identifiers (ticker, company_name, cusip, company_cik, bioguide_id, recipient_uei) and it fans out across every applicable tool in parallel, returning a unified envelope.

Useful when you want a full picture of an entity without manually calling 10 tools:

{
  "method": "tools/call",
  "params": {
    "name": "unified_search",
    "arguments": { "ticker": "NVDA" }
  }
}

The fan-out hits insider transactions, congressional trades, institutional holdings, activist stakes, federal contracts, material events, fundamentals, and more — whichever tools match the identifier you passed. get_lobbying_filings is the one collection deliberately excluded from the fan-out (substring scans on 51K+ filings are too slow to parallelize); call it directly for lobbying queries.

Rate limits

The public endpoint is open but rate-limited per IP to prevent abuse and protect hosting cost:

For most agent workflows (a few tool calls per user question, occasional batch catch-up) you will never see the rate limit. If your use case legitimately requires sustained higher volume, email contact@keyvex.com — we can discuss a paid tier on a separate URL when those ship.

Data freshness

KeyVex caches normalized data in Firestore. Refresh cadence per source:

Each tool response includes a scraped_at or last_modified_date field so you can see exactly when the source was last polled.

Troubleshooting

I get HTTP 429 Too Many Requests

Your IP exceeded the 60-requests-per-minute rate limit. The response body and the Retry-After header indicate how long to wait. If your legitimate use case requires higher sustained volume, email contact@keyvex.com.

A tool returns an empty result set when I expect data

Common causes:

My MCP client is asking for an authentication URL or consent flow

It shouldn't. KeyVex serves auth: none in its health-check response and does not return a WWW-Authenticate header on any 401 (because we never return 401 for auth reasons — there's nothing to authenticate). If your client is forcing an OAuth flow regardless, check the client's MCP server configuration — some clients default to OAuth discovery and need to be explicitly told the server is authless. You can also paste a dummy Bearer token if your client requires the field; we'll ignore it.

Can I get historical data older than what a tool returns by default?

Most tools accept since and until filters. The historical depth varies by source — for example, SEC Form 4 goes back to the 2003 mandate, XBRL fundamentals to 2009, FEC contributions to 1980. If a date range returns less than expected, check the data freshness section.

How do I report a bug or request a feature?

Email contact@keyvex.com with the tool name, the exact query parameters you sent, the response you received, and what you expected. We typically reply within one business day.

Support

Primary support contact: contact@keyvex.com

Founders read this inbox directly. Typical response time is within one business day. For urgent issues (production outage, breaking change), include "URGENT" in the subject.

For privacy, terms, and data-handling questions, see the privacy policy. For status and version, see the public health check at https://mcp.keyvex.com/ (returns server version and current tool list as JSON, no authentication required).