# MCP server

The data as Model Context Protocol tools, over streamable HTTP. Server version 1.4.0. One server, two URLs:

| URL | Use it when | How a premium tool is covered |
| --- | --- | --- |
| `https://iposignal.xyz/api/oauth/mcp` | You use Claude, ChatGPT, Cursor, VS Code or another MCP client | You sign in; calls use your account's quota |
| `https://iposignal.xyz/api/mcp` | An agent pays per call, or you only want the free tools | x402 payment per call. No credential needed to connect |

Both serve the same tools, and both accept an API key as a bearer header. Premium tools cost the same as the matching HTTP endpoint. See [Authentication](https://iposignal.xyz/docs/authentication.md).

## Tools

| Tool | Price per call | What it returns |
| --- | --- | --- |
| `get_ipo_overview` | Free | The public facts of an IPO: company, ticker, CIK, exchange, listing date, shares offered, price range, final offer price when the deal has priced, and gross proceeds. Use it to identify a deal before buying the full profile with get_ipo_snapshot. Provide exactly one of companyId, symbol, or cik. |
| `lookup_companies_with_financials` | Free | Directory of companies we hold SEC iXBRL financial statements for, optionally filtered by ticker or company name. Returns ticker, company, CIK, latest reported period and pre/post-IPO period counts — use it to find which tickers get_company_financials can return. Paged: limit (default 200, max 500) and offset; the response carries total and nextOffset (null on the last page). |
| `get_ipo_snapshot` | $0.01 | Retrieve a complete IPO company profile — deal terms, pricing range, expected market cap, SEC registration and prospectus details, offering structure, lifecycle timeline, and IBKR indicative borrow fee rate when available. When available, includes AI-generated research with valuation models, competitor benchmarking, underwriter ratings, board analysis, and risk factors. Provide exactly one of companyId, symbol, or cik. |
| `get_ipo_sentiment` | $0.01 | Access IPOSignal's proprietary market sentiment score — a daily signal quantifying how well recent IPOs are being received by investors. Ranges from -100 (extreme bearish) to +100 (extreme bullish) with trend data for the last N days. Use it to identify favorable IPO windows, time investment entries, and assess overall market appetite for new listings. |
| `get_company_metrics` | $0.02 | Get live valuation metrics for any US-listed company (not just IPOs), computed from primary sources: SEC XBRL companyfacts TTM fundamentals (revenue, net income, EBITDA, debt, cash, shares) plus the latest market close. Returns multiples (P/E, P/S, EV/Revenue, EV/EBITDA), derivations (PEG, earnings/sales/EBITDA yields, net-debt/EBITDA), margins, and YoY growth — the same data IPOSignal's valuation pipeline uses for peer benchmarking, with the computation convention stated in the response. Provide exactly one of symbol (any SEC-mapped ticker) or companyName (resolves Nasdaq/NYSE listings). |
| `get_company_financials` | $0.01 | Retrieve full SEC iXBRL financial statements for a company we cover, pre- and post-IPO, with derived margins, growth, leverage and return ratios per period. Interim periods carry annualized figures alongside the reported ones. Provide a symbol. |
| `get_ipo_social_sentiment` | $0.01 | Get IPOSignal's X/Twitter social-sentiment reading for a specific IPO — an aggregate of how investors are discussing the stock on X, scored from -1 (bearish) to +1 (bullish) with a label, post tallies, and a one-line summary. The reading is taken once, before listing, and not refreshed: `ageDays` says how old it is and `reliable` is false when too few posts back it. Returns the aggregate signal only, not the underlying posts. Provide exactly one of companyId, symbol, or cik. |
| `get_ipo_pipeline` | Free | The US IPO pipeline: operating companies that have filed with the SEC but are not trading yet (status upcoming), or deals that were withdrawn or postponed. Each row has company, ticker when assigned, CIK, exchange, expected trading date when one is scheduled, the date of the latest status change, price range, shares offered, Nasdaq's deal size, and a link to the latest SEC filing. Status is the one the iposignal.xyz calendar shows, so SPACs and other vehicles are excluded. Use it to see what is coming to market or what was pulled; follow up with get_ipo_filings for one company's filing history or get_ipo_snapshot for the full deal profile. Arguments: status (upcoming, withdrawn or postponed; default upcoming), since as YYYY-MM-DD for withdrawn/postponed (default one year ago), limit (default 100, max 500). Upcoming deals sort by expected date, undated last. |
| `get_ipo_filings` | Free | One company's SEC filing timeline as we hold it, newest first: form type (S-1, S-1/A, F-1, F-1/A, EFFECT, 424B4, RW, 8-K, ...), filing date, and the link to the document on sec.gov. Use it to follow a registration from first S-1 through amendments to the final prospectus, or to confirm a withdrawal (RW). Covers the filings our SEC syncs collected for the company, not every filing it ever made. Provide exactly one of companyId, symbol, or cik. |
| `get_ipo_events` | $0.02 | Dated IPO events across all US IPOs in a window: lock-up expiries (with lock-up length), quiet-period expiries, and listings with offer price, first-day open and close, first-day pop and close return versus the offer, and lead managers. Use it to find upcoming lock-up expiries (supply overhang), quiet-period ends (analyst initiations) or how recent deals traded on day one. Arguments: from and to as YYYY-MM-DD (default today to today + 30 days, at most 366 days), types as a subset of lockup_expiry, quiet_period_expiry, listing (default all). |

The server also offers three prompts (`ipo_due_diligence`, `ipo_week_ahead`, `lockup_watch`) and one resource, `iposignal://guide`, which says which tool answers which question.

## Claude and ChatGPT

Add `https://iposignal.xyz/api/oauth/mcp` as a custom connector (in Claude: Settings, then Connectors, then Add custom connector). The app opens the IPOSignal sign-in page; approve the connection and the tools appear.

## Claude Code

```bash
claude mcp add --transport http iposignal https://iposignal.xyz/api/oauth/mcp
```

Then run `/mcp` and authenticate.

## Cursor

In `.cursor/mcp.json` in a project, or `~/.cursor/mcp.json` for every project. Cursor then offers to sign in:

```json
{
  "mcpServers": {
    "iposignal": {
      "url": "https://iposignal.xyz/api/oauth/mcp"
    }
  }
}
```

## VS Code

In `.vscode/mcp.json`. VS Code offers to sign in when the server starts:

```json
{
  "servers": {
    "iposignal": {
      "type": "http",
      "url": "https://iposignal.xyz/api/oauth/mcp"
    }
  }
}
```

## Clients that only speak stdio

Bridge through `mcp-remote`, which runs the sign-in for the client:

```json
{
  "mcpServers": {
    "iposignal": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://iposignal.xyz/api/oauth/mcp"
      ]
    }
  }
}
```

## With an API key instead of signing in

For a script, a CI job or a client that cannot open a browser, send a key as a header. In Claude Code:

```bash
claude mcp add --transport http iposignal https://iposignal.xyz/api/oauth/mcp \
  --header "Authorization: Bearer ips_live_YOUR_KEY"
```

In a JSON config, add the header beside the URL:

```json
{
  "mcpServers": {
    "iposignal": {
      "url": "https://iposignal.xyz/api/oauth/mcp",
      "headers": {
        "Authorization": "Bearer ips_live_YOUR_KEY"
      }
    }
  }
}
```

## Paying per call

An agent with a wallet connects to `https://iposignal.xyz/api/mcp` with no credential and pays for each premium call over x402. The flow is in [Authentication](https://iposignal.xyz/docs/authentication.md).