Skip to content

Reference

MCP server

PIT provides a Model Context Protocol endpoint at POST /mcp. It gives AI agents four read-only tools to query point-in-time data as of any past timestamp. The endpoint is hosted, so you do not need to install local software.

Reference documentation. Updated 2026-08-26 against the corpus described on coverage.

Endpoint

URL
https://api.pit.aqx.llc/mcp
Transport
Streamable HTTP. JSON-RPC 2.0 over HTTP POST. Supports text/event-stream when requested by the client.
Auth
Pass Authorization: Bearer pit_live_… using your REST API key. Requests without a key access the public sample.
Local
http://127.0.0.1:8080/mcp

Each tool call executes one /v1 request on the server. MCP responses use the same JSON envelope and error codes as curl requests, and each call counts as one request toward your plan rate limit.

Claude Code

terminal

$ claude mcp add --transport http pit https://api.pit.aqx.llc/mcp --header "Authorization: Bearer pit_live_..."

If you omit --header, the connection defaults to the public sample. Run claude mcp list to view configured servers, and claude mcp remove pit to remove the server.

Claude.ai

In Settings, open Connectors, select Add custom connector, and paste this URL.

custom connector URL

https://api.pit.aqx.llc/mcp

Claude.ai custom connectors support OAuth or unauthenticated connections. PIT does not currently support OAuth, so Claude.ai connections use the public sample where every row has sample: true. To query the full corpus, use a client that can send custom headers, such as Claude Code, Cursor, or a custom application.

Cursor

Add this configuration to ~/.cursor/mcp.json for global access across all projects, or to .cursor/mcp.json inside a specific project.

mcp.json

{
  "mcpServers": {
    "pit": {
      "url": "https://api.pit.aqx.llc/mcp",
      "headers": {
        "Authorization": "Bearer pit_live_..."
      }
    }
  }
}

The four tools

ToolAnswersSame as
pit_queryThe filings that were knowable at one instant.GET /v1/news
pit_diffThe rows that became knowable between two instants.GET /v1/news/diff
pit_coverageWhich source-days we mined, and how completely.GET /v1/coverage
pit_metaCorpus version, sources, certified span, plans.GET /v1/meta

All four tools are read-only and return the standard envelope as JSON text. Check count before parsing results. A number indicates a successful query. A JSON null indicates that the requested window includes uncertified dates. In that case, the data is unknown, and coverage.missing lists those dates.

pit_query arguments

ArgumentWhat it does
as_ofThe instant you are asking about, RFC3339 UTC with a literal Z. Some clients call this known_at; it is the same value. Required once you send a key.
visible_byWhich timestamp as_of is compared against: published_at (default), available_at, or committed_at. See timestamps.
tickerResolved to the CIKs (SEC company numbers) that held the symbol at as_of, so a company that renamed later still comes back. Send ticker or cik, not both.
cikSEC Central Index Key. Needs a key.
sourceOne source id, such as sec.edgar. pit_meta lists them.
lanecertified_pit for the mined history, forward_first_seen for the live tape's first sighting.
limit1 to 1000, default 100. Anything larger returns an error.
cursornext_cursor from the previous page.

pit_diff accepts the same filter arguments as pit_query, but uses as_of_start and as_of_end instead of as_of. pit_coverage accepts source, date, as_of, limit, and cursor. pit_meta takes no arguments.

Without a key

Without an API key, tools query the public sample dataset: SVB (SIVB), Apple (AAPL), and Meta (META, or FB before the rename) on the certified dates used in the demo. Every returned row includes sample: true. Querying any other ticker returns an error listing the three supported tickers.

A valid API key gives access to the full corpus at your plan's rate limit: 60 requests per minute on Researcher, or 300 on Power. If the key is rejected, the server returns JSON-RPC error -32001 containing the standard REST unauthorized envelope.

Queries are refused if a required timestamp is missing, limit exceeds 1000, the source is invalid, or the window hits a coverage gap. In these cases, the tool returns a response with isError set to true, includes the full envelope in the text, and explains the issue in the message.

Try it with curl

no key, sample tier 200 · count 1

$ curl -s -X POST https://api.pit.aqx.llc/mcp \
    -H 'Content-Type: application/json' \
    -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
         "params":{"name":"pit_query","arguments":{"ticker":"SIVB"}}}'

The text block inside result.content contains the envelope: as_of 2023-03-10T23:59:59Z, visible_by published_at, status ok, count 1, and one SVB 8-K filing accepted at 2023-03-10T22:23:03Z marked with sample: true.

Protocol details

Revisions
Supported versions are 2025-06-18 and 2025-03-26. If a client requests either version, the server responds with that version. All other requests default to 2025-06-18.
Methods
initialize, notifications/initialized, ping, tools/list, tools/call.
Response mode
Responses use application/json, or text/event-stream when prioritized in the Accept header. An SSE response sends a single event: message frame and closes the stream.
Sessions
The server is stateless. It echoes back any provided MCP-Session-Id header, but never generates one.
Other methods
GET /mcp and DELETE /mcp return 405. The server does not support persistent streams or session termination.

Not supported yet

OAuth authentication is not supported. The server advertises tool capabilities only; MCP resources and prompts are not available. There are no MCP tools for the /v1/stream live tape, /v1/files, or /v1/mapping.