headless-records-mcp
This server provides structured, non-advisory access to public SEC Form 4 insider filing data via the Headless Records API. Here's what you can do:
Check data freshness (
get_freshness): Retrieve the freshness status of the watched-ticker universe, indicating how up-to-date the SEC filing coverage is, with a configurable freshness window (1–168 hours).Assess insider activity (
assess_insider_activity): Get a deterministic, factual summary of reported SEC Form 4 insider trading activity for a specific ticker over a chosen time period (30, 90, or 180 days), without any investment recommendations or trading signals.Retrieve filing provenance (
get_filing_provenance): Look up the source provenance of a specific imported SEC Form 4 filing by accession number, including the source document URL, retrieval timestamp, and SHA-256 hash.
All interactions are non-advisory and confined to publicly available SEC Form 4 data from a bounded, watched-ticker universe, and do not constitute financial advice.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@headless-records-mcpassess insider activity for AAPL"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Headless Records MCP Server
A local Model Context Protocol (MCP) stdio server that gives agents structured, non-advisory access to public SEC Form 4 insider filing data via the hosted Headless Records API.
The server is a thin wrapper: it validates tool input, calls https://api.headlessrecords.dev, and returns the API's JSON responses as formatted text. It does not call SEC directly, does not connect to a database, and does not run ingestion jobs.
Full API documentation: headlessrecords.dev · OpenAPI spec
Safety and Scope
Responses summarize public SEC Form 4 filing data from a bounded, watched-ticker universe. They do not imply full-market coverage.
Output is not financial advice. The server provides no buy, sell, hold, bullish, bearish, price prediction, alpha, trading signal, or investment recommendation guidance.
API caveats, methodology notes, request IDs, timestamps, and source provenance are preserved in tool output so agents can show context rather than over-compress results.
Related MCP server: edgar-mcp
Requirements
Node.js 20 or later (uses the built-in
fetch)A Headless Records API key (
hr_live_prefix) — request design partner accessNo key yet? Try the open preview endpoint:
curl https://api.headlessrecords.dev/v1/ticker/TSLA/previewInstall and Build
npm install
npm run buildThe compiled server is written to dist/index.js.
Configuration
The server is configured entirely through environment variables read from the process. Export them in your shell or set them in your MCP client config. (.env.example is a reference file only; the server does not auto-load .env.)
Required:
HEADLESS_RECORDS_API_KEY— your API key, sent as theX-API-Keyheader.
Optional:
HEADLESS_RECORDS_API_BASE_URL— defaults tohttps://api.headlessrecords.dev.HEADLESS_RECORDS_TIMEOUT_MS— per-request timeout, defaults to10000.
Do not commit real API keys.
Running
Run from source:
HEADLESS_RECORDS_API_KEY=hr_live_REPLACE_ME npm startRun the built stdio server:
HEADLESS_RECORDS_API_KEY=hr_live_REPLACE_ME node /absolute/path/to/dist/index.jsMCP Client Configuration
Example configuration for Cursor, Claude Desktop, or any MCP client, after npm run build:
{
"mcpServers": {
"headless-records": {
"command": "node",
"args": ["/absolute/path/to/dist/index.js"],
"env": {
"HEADLESS_RECORDS_API_KEY": "hr_live_REPLACE_ME"
}
}
}
}Tools
get_freshness
Returns freshness status for the configured watched-ticker universe.
{
"freshness_window_hours": 24
}freshness_window_hours(optional integer, 1–168, default24)
Calls GET /v1/freshness.
assess_insider_activity
Returns a deterministic, non-advisory summary of reported SEC Form 4 insider activity for a ticker. Tickers are normalized to uppercase before the API call.
{
"ticker": "TSLA",
"period": "90d",
"freshness_window_hours": 24
}ticker(required string)period(optional, one of30d,90d,180d, default90d)freshness_window_hours(optional integer, 1–168, default24)
Calls GET /v1/insider-activity/{ticker}/assessment.
get_filing_provenance
Returns source provenance for an imported SEC Form 4 filing, including the source document URL, retrieval timestamp, and SHA-256 hash when available.
{
"accession_number": "0000001001-26-000123"
}accession_number(required string)
Calls GET /v1/provenance/filing/{accession_number}.
Error Behavior
Tool errors are returned as structured JSON with a stable code field:
Missing, invalid, or revoked API keys surface as
unauthorized(HTTP 401).Rate limits surface as
rate_limited(HTTP 429), includingretry_afterwhen the API provides it.Timeouts, network failures, and invalid responses surface as
timeout,network_error, andinvalid_json.API request IDs are preserved in error output when available.
Raw
hr_live_...API keys are redacted from all error text.
Development
npm testTests run with Vitest and use mocked HTTP; they never call the live API.
Known Limitations
Local stdio server only; this is not a hosted remote MCP server.
Requires a valid
HEADLESS_RECORDS_API_KEYand inherits the API's per-key rate limits.Coverage is bounded to the watched-ticker universe and imported filings; it does not fetch SEC data live.
Does not manage watched tickers, billing, or authentication flows.
Returns formatted JSON text; it does not transform API output into advice.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jgmcalpine/headless-records-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server