### Clone and Install OpenInsider-MCP Source: https://github.com/btopn/openinsider-mcp/blob/main/README.md Clone the repository, navigate to the directory, install dependencies, and build the project. ```sh git clone https://github.com/btopn/OpenInsider-MCP cd openinsider-mcp npm install npm run build ``` -------------------------------- ### Installation Source: https://context7.com/btopn/openinsider-mcp/llms.txt Instructions on how to install and configure the OpenInsider MCP server in your Claude Desktop or Claude Code environment. ```APIDOC ## Installation Configure the MCP server in your Claude Desktop or Claude Code config. ```json { "mcpServers": { "openinsider": { "command": "npx", "args": ["-y", "openinsider-mcp"] } } } ``` ``` -------------------------------- ### Run OpenInsider-MCP Server Source: https://github.com/btopn/openinsider-mcp/blob/main/README.md Start the MCP server to run on stdio. For interactive use, set the OPENINSIDER_MCP_UA environment variable for identification. ```sh node dist/index.js # run the MCP server on stdio ``` ```sh OPENINSIDER_MCP_UA="my-app 1.0 me@example.com" node dist/index.js ``` -------------------------------- ### Install OpenInsider MCP for Claude Code (CLI) Source: https://github.com/btopn/openinsider-mcp/blob/main/README.md Use this command to add the OpenInsider MCP server to Claude Code via its CLI. ```sh claude mcp add openinsider -- npx -y openinsider-mcp ``` -------------------------------- ### Sample ShortSnapshot JSON Output Source: https://github.com/btopn/openinsider-mcp/blob/main/README.md Example JSON output for short interest data, demonstrating the structure of ShortSnapshot objects. This is returned by functions like `short_interest`. ```json [ { "ticker": "NVDA", "reportDate": "2026-03-31", "sharesShort": 280872588, "pctOfFloat": 0.01156, "daysToCover": 1.51, "delta": { "sharesShortDelta": 32531716, "pctDelta": 0.131 } }, { "ticker": "NVDA", "reportDate": "2026-02-27", "sharesShort": 248340872, "pctOfFloat": 0.01022, "daysToCover": 1.31 } ] ``` -------------------------------- ### Install OpenInsider MCP for Codex CLI (OpenAI) Source: https://github.com/btopn/openinsider-mcp/blob/main/README.md Add the OpenInsider MCP server to Codex CLI using this command or by directly editing the configuration file. ```sh codex mcp add openinsider -- npx -y openinsider-mcp ``` -------------------------------- ### Get Short Interest Data Source: https://github.com/btopn/openinsider-mcp/blob/main/README.md Retrieve FINRA bi-monthly short interest snapshots for a ticker. Defaults to the last 6 periods. ```python # Example usage (assuming a client object exists): # client.short_interest(ticker='TSLA', periodsBack=12) ``` -------------------------------- ### Get Dilution Filings Source: https://github.com/btopn/openinsider-mcp/blob/main/README.md Retrieve S-3 shelf registrations and 424B5 takedowns for a ticker. Defaults to the last 365 days. ```python # Example usage (assuming a client object exists): # client.dilution_filings(ticker='NVDA') ``` -------------------------------- ### Get Failures to Deliver Source: https://github.com/btopn/openinsider-mcp/blob/main/README.md Retrieve SEC failures-to-deliver per bi-monthly period for a ticker. Defaults to the last 4 periods. ```python # Example usage (assuming a client object exists): # client.failures_to_deliver(ticker='META', periodsBack=8) ``` -------------------------------- ### Sample EdgarFiling JSON Output Source: https://github.com/btopn/openinsider-mcp/blob/main/README.md Example JSON output for a recent SEC filing, demonstrating the structure and fields of an EdgarFiling object. This is typically returned by functions like `recent_sec_filings`. ```json [ { "ticker": "NVDA", "cik": "0001045810", "formType": "8-K", "filingDate": "2026-03-06", "acceptanceDateTime": "2026-03-06T16:11:25.000Z", "accessionNumber": "0001045810-26-000024", "primaryDocUrl": "https://www.sec.gov/Archives/edgar/data/1045810/000104581026000024/nvda-20260302.htm", "itemCodes": ["5.02", "9.01"] } ] ``` -------------------------------- ### Get Activist Filings Source: https://github.com/btopn/openinsider-mcp/blob/main/README.md Retrieve Schedule 13D activist filings for a ticker. Defaults to the last 365 days and includes amendments. ```python # Example usage (assuming a client object exists): # client.activist_filings(ticker='GOOG', includeAmendments=False) ``` -------------------------------- ### Get Daily Short Volume Source: https://github.com/btopn/openinsider-mcp/blob/main/README.md Retrieve FINRA Reg SHO daily short-sale volume for a ticker. Defaults to the last 30 days. ```python # Example usage (assuming a client object exists): # client.daily_short_volume(ticker='AMZN', daysBack=60) ``` -------------------------------- ### Screen for CEO Open Market Buys Source: https://github.com/btopn/openinsider-mcp/blob/main/README.md Use this generic screener to find specific insider trading patterns. This example filters for CEO open-market buys over $500k in the last 30 days. ```json { "isCeo": true, "transactionTypes": ["P"], "minTradeValue": 500000, "daysBack": 30 } ``` -------------------------------- ### Get Live Stock Quote Source: https://github.com/btopn/openinsider-mcp/blob/main/README.md Call this tool to retrieve live stock quote data for a given ticker. Ensure the ticker is valid and adheres to the specified format. ```json { "ticker": "AAPL" } ``` -------------------------------- ### Targeted Tool Queries Source: https://github.com/btopn/openinsider-mcp/blob/main/README.md Perform targeted queries against a specific tool for full output. Pipe the output through `jq` for date or field filtering. Examples include searching by ticker, daily short volume, recent SEC filings, and short interest. ```sh node scripts/run-tool.mjs search_by_ticker ticker=NVDA daysBack=7 \ | jq '.[] | select(.tradeDate == "2026-04-22")' ``` ```sh node scripts/run-tool.mjs daily_short_volume ticker=GME daysBack=10 ``` ```sh node scripts/run-tool.mjs recent_sec_filings ticker=AAPL daysBack=730 itemCodes=5.02 \ | jq '.[] | {filingDate, primaryDocUrl}' ``` ```sh node scripts/run-tool.mjs short_interest ticker=NVDA periodsBack=6 > nvda_si.json ``` -------------------------------- ### Get Short Interest Snapshots Source: https://context7.com/btopn/openinsider-mcp/llms.txt Retrieves bi-monthly short-interest data from FINRA, including shares short, percent of float, and days-to-cover. Includes delta compared to the prior period. Useful for gauging short-selling sentiment. ```json // MCP Tool Call { "tool": "short_interest", "arguments": { "ticker": "GME", "periodsBack": 6 } } ``` ```json // Response { "count": 6, "snapshots": [ { "ticker": "GME", "reportDate": "2026-03-31", "sharesShort": 45000000, "pctOfFloat": 0.148, "daysToCover": 3.2, "delta": { "sharesShortDelta": 5000000, "pctDelta": 0.125 } }, { "ticker": "GME", "reportDate": "2026-03-15", "sharesShort": 40000000, "pctOfFloat": 0.132, "daysToCover": 2.8 } ] } ``` -------------------------------- ### Get Recent SEC Filings Source: https://github.com/btopn/openinsider-mcp/blob/main/README.md Retrieve recent 8-K material event filings for a specific ticker. Optionally filter by item codes. ```python # Example usage (assuming a client object exists): # client.recent_sec_filings(ticker='MSFT', daysBack=90, itemCodes=['4.02', '5.02']) ``` -------------------------------- ### Get Dilution Filings (S-3 and 424B5) Source: https://context7.com/btopn/openinsider-mcp/llms.txt Retrieves S-3 shelf registrations and 424B5 takedowns, which indicate potential stock dilution. The 424B5 filings represent actual sales and have a higher immediate impact. Useful for assessing future share supply. ```json // MCP Tool Call { "tool": "dilution_filings", "arguments": { "ticker": "BIOTECH", "daysBack": 365, "limit": 20 } } ``` ```json // Response { "count": 3, "filings": [ { "ticker": "BIOTECH", "cik": "0006666666", "formType": "424B5", "filingDate": "2026-01-20", "acceptanceDateTime": "2026-01-20T08:00:00.000Z", "accessionNumber": "0006666666-26-000005", "primaryDocUrl": "https://www.sec.gov/...", "shelfAmount": 150000000, "useOfProceedsExcerpt": "We intend to use the net proceeds from this offering for general corporate purposes, including working capital and potential acquisitions." } ] } ``` -------------------------------- ### Get Daily Short Volume Data Source: https://context7.com/btopn/openinsider-mcp/llms.txt Retrieves FINRA Reg SHO daily short-sale volume for a given ticker. Specify the number of days to look back. Returns date, short volume, total volume, and short ratio. ```json { "tool": "daily_short_volume", "arguments": { "ticker": "AMC", "daysBack": 10 } } ``` ```json { "count": 10, "rows": [ { "date": "2026-04-24", "shortVolume": 15000000, "totalVolume": 35000000, "shortRatio": 0.428 }, { "date": "2026-04-23", "shortVolume": 12000000, "totalVolume": 28000000, "shortRatio": 0.428 } ] } ``` -------------------------------- ### Get Activist Investor Filings (Schedule 13D) Source: https://context7.com/btopn/openinsider-mcp/llms.txt Retrieves Schedule 13D activist filings, indicating active intent to influence a company. Returns filer details, ownership percentage, and purpose excerpts. Useful for identifying potential shareholder activism. ```json // MCP Tool Call { "tool": "activist_filings", "arguments": { "ticker": "TARGET", "daysBack": 365, "includeAmendments": false, "limit": 10 } } ``` ```json // Response { "count": 1, "filings": [ { "ticker": "TARGET", "cik": "0005555555", "formType": "SC 13D", "filingDate": "2026-02-15", "acceptanceDateTime": "2026-02-15T12:00:00.000Z", "accessionNumber": "0001234567-26-000001", "primaryDocUrl": "https://www.sec.gov/...", "filerName": "Activist Capital Partners LP", "pctOwned": 8.5, "purposeExcerpt": "The Reporting Persons intend to engage with management regarding potential strategic alternatives to enhance shareholder value.", "isAmendment": false } ] } ``` -------------------------------- ### Exercise Tools with Ticker Data Source: https://github.com/btopn/openinsider-mcp/blob/main/README.md Perform a one-shot dump of representative output from every tool against a known ticker. This is useful for verifying a deployment or inspecting tool output. ```sh npm run build node scripts/exercise-tools.mjs NVDA # or any ticker ``` -------------------------------- ### Get Latest Insider Trades Source: https://context7.com/btopn/openinsider-mcp/llms.txt Returns the most recent insider trading filings across the market. Filter by transaction type (buys, sells, or all) to get a market-wide pulse of insider activity. Pair with `daysBack: 1` to see filings from today. ```json // MCP Tool Call { "tool": "latest_trades", "arguments": { "daysBack": 1, "transactionType": "buys" } } ``` ```json // Response { "count": 47, "trades": [ { "filingDate": "2026-04-24T20:15:30", "tradeDate": "2026-04-23", "ticker": "XYZ", "companyName": "XYZ Holdings Inc", "insiderName": "Smith John", "insiderCik": "1234567", "title": "CFO", "transactionType": "P - Purchase", "price": 45.20, "quantity": 10000, "sharesOwnedAfter": 50000, "ownershipDelta": 25.0, "value": 452000, "formUrl": "https://www.sec.gov/..." } ] } ``` -------------------------------- ### Run OpenInsider-MCP Tests Source: https://github.com/btopn/openinsider-mcp/blob/main/README.md Execute unit tests against checked-in fixtures or live tests against OpenInsider, SEC EDGAR, and FINRA by setting the SMOKE environment variable. ```sh npm test # unit tests against checked-in fixtures (offline) ``` ```sh SMOKE=1 npm test # live tests against OpenInsider, SEC EDGAR, FINRA ``` -------------------------------- ### Get Late Filings Source: https://github.com/btopn/openinsider-mcp/blob/main/README.md Retrieve NT-10K / NT-10Q late filing notices for a ticker. Defaults to the last 365 days. ```python # Example usage (assuming a client object exists): # client.late_filings(ticker='AAPL', daysBack=730) ``` -------------------------------- ### Use MCP Inspector Source: https://github.com/btopn/openinsider-mcp/blob/main/README.md Exercise the server interactively using the official MCP inspector with the Node.js distribution. ```sh npx @modelcontextprotocol/inspector node dist/index.js ``` -------------------------------- ### Configure OpenInsider MCP for Claude Desktop Source: https://github.com/btopn/openinsider-mcp/blob/main/README.md Add this JSON configuration to your Claude Desktop settings to enable the OpenInsider MCP server. Restart Claude Desktop after saving. ```json { "mcpServers": { "openinsider": { "command": "npx", "args": ["-y", "openinsider-mcp"] } } } ``` -------------------------------- ### Get Top Insider Buys by Value Source: https://context7.com/btopn/openinsider-mcp/llms.txt Retrieves the largest insider purchases by dollar value over a specified period. Use this to identify significant open-market buys. ```json { "tool": "top_buys", "arguments": { "period": "week" } } ``` ```json { "count": 25, "trades": [ { "filingDate": "2026-04-22T18:30:00", "tradeDate": "2026-04-20", "ticker": "ABC", "companyName": "ABC Corporation", "insiderName": "Johnson Mary", "insiderCik": "9876543", "title": "Dir", "transactionType": "P - Purchase", "price": 125.00, "quantity": 80000, "sharesOwnedAfter": 180000, "ownershipDelta": 80.0, "value": 10000000, "formUrl": "https://www.sec.gov/..." } ] } ``` -------------------------------- ### Configure OpenInsider MCP for Codex CLI (TOML) Source: https://github.com/btopn/openinsider-mcp/blob/main/README.md Directly edit your Codex CLI configuration file with this TOML snippet to add the OpenInsider MCP server. ```toml [mcp_servers.openinsider] command = "npx" args = ["-y", "openinsider-mcp"] ``` -------------------------------- ### Screen Insiders with Custom Filters Source: https://context7.com/btopn/openinsider-mcp/llms.txt Runs a flexible screener query with custom filters for transaction type, insider role, trade value, price, and date range. Use when specialized tools do not fit specific criteria. ```json { "tool": "screen", "arguments": { "isCeo": true, "transactionTypes": ["P"], "minTradeValue": 500000, "daysBack": 30, "excludeDerivativeRelated": true, "limit": 100 } } ``` ```json { "count": 8, "trades": [ { "filingDate": "2026-04-15T11:30:00", "tradeDate": "2026-04-13", "ticker": "INDUST", "companyName": "Industrial Holdings", "insiderName": "Miller James", "insiderCik": "3333333", "title": "CEO", "transactionType": "P - Purchase", "price": 56.00, "quantity": 15000, "sharesOwnedAfter": 100000, "ownershipDelta": 17.6, "value": 840000, "formUrl": "https://www.sec.gov/..." } ] } ``` -------------------------------- ### Screen API Source: https://context7.com/btopn/openinsider-mcp/llms.txt Runs a flexible OpenInsider screener query with custom filters including transaction type, insider role, trade value range, price range, and date range. Use this when none of the specialized tools fit your specific research criteria. ```APIDOC ## screen ### Description Runs a flexible OpenInsider screener query with custom filters including transaction type, insider role, trade value range, price range, and date range. Use this when none of the specialized tools fit your specific research criteria. ### Method POST ### Endpoint /btopn/openinsider-mcp ### Parameters #### Request Body - **tool** (string) - Required - The name of the tool to use, in this case, "screen". - **arguments** (object) - Required - Contains the arguments for the tool. - **isCeo** (boolean) - Optional - Filter for trades made by CEOs. - **transactionTypes** (array of strings) - Optional - Filter by transaction types (e.g., ["P"] for purchases, ["S"] for sales). - **minTradeValue** (number) - Optional - Minimum trade value. - **daysBack** (integer) - Optional - Number of days to look back. - **excludeDerivativeRelated** (boolean) - Optional - Whether to exclude derivative-related transactions. - **limit** (integer) - Optional - Maximum number of results to return. ### Request Example ```json { "tool": "screen", "arguments": { "isCeo": true, "transactionTypes": ["P"], "minTradeValue": 500000, "daysBack": 30, "excludeDerivativeRelated": true, "limit": 100 } } ``` ### Response #### Success Response (200) - **count** (integer) - The number of trades returned. - **trades** (array) - An array of trade objects. - **filingDate** (string) - The date the filing was made. - **tradeDate** (string) - The date the trade occurred. - **ticker** (string) - The stock ticker symbol. - **companyName** (string) - The name of the company. - **insiderName** (string) - The name of the insider. - **insiderCik** (string) - The CIK of the insider. - **title** (string) - The insider's title. - **transactionType** (string) - The type of transaction (e.g., "P - Purchase"). - **price** (number) - The price per share. - **quantity** (integer) - The number of shares traded. - **sharesOwnedAfter** (integer) - The number of shares owned after the transaction. - **ownershipDelta** (number) - The change in ownership percentage. - **value** (number) - The total value of the transaction. - **formUrl** (string) - URL to the SEC filing form. #### Response Example ```json { "count": 8, "trades": [ { "filingDate": "2026-04-15T11:30:00", "tradeDate": "2026-04-13", "ticker": "INDUST", "companyName": "Industrial Holdings", "insiderName": "Miller James", "insiderCik": "3333333", "title": "CEO", "transactionType": "P - Purchase", "price": 56.00, "quantity": 15000, "sharesOwnedAfter": 100000, "ownershipDelta": 17.6, "value": 840000, "formUrl": "https://www.sec.gov/..." } ] } ``` ``` -------------------------------- ### Get Officer Buys Source: https://context7.com/btopn/openinsider-mcp/llms.txt Retrieves recent purchases of $25k+ by company officers (CEO, CFO, etc.). Excludes 10%-owner buys to focus on executive purchases. ```json { "tool": "officer_buys", "arguments": { "daysBack": 30 } } ``` ```json { "count": 32, "trades": [ { "filingDate": "2026-04-20T09:15:00", "tradeDate": "2026-04-18", "ticker": "HEALTH", "companyName": "Health Systems Inc", "insiderName": "Brown Sarah", "insiderCik": "2222222", "title": "CFO", "transactionType": "P - Purchase", "price": 89.75, "quantity": 5000, "sharesOwnedAfter": 25000, "ownershipDelta": 25.0, "value": 448750, "formUrl": "https://www.sec.gov/..." } ] } ``` -------------------------------- ### Get Latest Market-Wide Insider Trades Source: https://github.com/btopn/openinsider-mcp/blob/main/README.md Access the most recent insider filings across the entire market. This can be filtered by transaction type (buys or sells) and days back. ```json { "daysBack": 1 } ``` -------------------------------- ### dilution_filings Source: https://github.com/btopn/openinsider-mcp/blob/main/README.md Fetches S-3 shelf registrations and 424B5 takedowns, providing parsed shelf amounts and use-of-proceeds excerpts. ```APIDOC ## dilution_filings ### Description S-3 shelf registrations and 424B5 takedowns, with parsed shelf amount and use-of-proceeds excerpt. ### Parameters #### Query Parameters - **ticker** (string) - The stock ticker symbol. - **daysBack** (int, optional) - Number of days to look back for filings. Defaults to 365. ``` -------------------------------- ### Get Live Stock Quote Source: https://github.com/btopn/openinsider-mcp/blob/main/README.md Fetch live stock quote data directly from Yahoo Finance by scraping their public quote page. No API keys or authentication are required. ```python # Example usage (assuming a client object exists): # client.quote(ticker='GOOG') ``` -------------------------------- ### short_interest Source: https://github.com/btopn/openinsider-mcp/blob/main/README.md Provides bi-monthly short interest snapshots from FINRA, including the delta compared to the prior period. Note that the most recent snapshot may lag spot price by 1-2 weeks. ```APIDOC ## short_interest ### Description FINRA bi-monthly short interest snapshots with delta vs prior period. Returns `ShortSnapshot[]`. ### Parameters #### Query Parameters - **ticker** (string) - The stock ticker symbol. - **periodsBack** (int, optional) - Number of bi-monthly periods to retrieve. Defaults to 6 (approximately 3 months). ``` -------------------------------- ### Get Clustered Insider Buys Source: https://context7.com/btopn/openinsider-mcp/llms.txt Returns companies where multiple insiders bought stock within a short window, indicating strong conviction. Includes industry and insider count. ```json { "tool": "cluster_buys", "arguments": { "daysBack": 14 } } ``` ```json { "count": 15, "trades": [ { "filingDate": "2026-04-21T16:00:00", "tradeDate": "2026-04-19", "ticker": "BANK", "companyName": "Regional Bank Corp", "insiderName": "Davis Michael", "insiderCik": "1111111", "title": "CEO", "transactionType": "P - Purchase", "price": 32.50, "quantity": 30000, "sharesOwnedAfter": 150000, "ownershipDelta": 25.0, "value": 975000, "formUrl": "https://www.sec.gov/...", "industry": "Banks - Regional", "insiderCount": 4 } ] } ``` -------------------------------- ### Get Top Insider Sells by Value Source: https://github.com/btopn/openinsider-mcp/blob/main/README.md Retrieve the largest insider sales by dollar value over a specified period. Note that large sales often stem from routine plans or option exercises. ```json { "period": "month" } ```