Cabrini Market Data

ai.cabriniPublished by cabrini.aiOfficial publisherv1.1.0Updated Oct 24, 2026

US equity data for AI agents — 23 years intraday + daily, SEC filings. x402 USDC payments.

VerifiedStreamable HTTPWeb executableFinanceData & Analytics

Overview

AI-generated overview

Gives an assistant US equity market data — intraday and daily bars, SEC fundamentals, filings and insider transactions — paid per query in USDC.

What you can do
Exposes tools for US stock data: intraday bars for a ticker and date, daily OHLCV with VWAP over a range, resampled bars, batch and multi-day range queries, a screener over all US stocks, ticker lists, company profiles from SEC EDGAR, quarterly fundamentals, filing indexes with optional extracted section text, insider Form 4 transactions, and a joined research brief. Intraday methods return fractional change from the daily open rather than price levels, while daily returns absolute prices. The README also documents Python, LangChain and CrewAI clients, but the MCP endpoint is the remote server.
When to use it
Use it when an assistant needs historical or recent US equity prices, SEC financials, filings or insider activity for analysis, screening or research briefs, and when paying per query in crypto is acceptable instead of an API key or subscription.
Requirements
Remote MCP endpoint at over streamable HTTP; no API key, signup or subscription. Payment requires a Base wallet holding USDC, supplied as a private key to the client library; the MCP flow uses x402 payment headers. Network access to the endpoint and to Base for settlement is needed.
Before you install
Every request costs money in USDC on Base mainnet, quoted live in the 402 response rather than by the published price table, so the client pays whatever the server asks. The client library takes a wallet private key, which is a spending credential; use a dedicated wallet with limited funds. Requests send tickers and query parameters to a third-party service.

Installation

In SourceWeft

  1. Open Cabrini Market Data in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/ai.cabrini%2Fmarket-data/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "cabrini-market-data": {
      "type": "http",
      "url": "https://cabrini.ai/mcp"
    }
  }
}

README

cabrini

US stock market data for AI agents. 23 years of intraday and daily bars, SEC fundamentals, filings, and insider data — every US equity from 2003 to present.

Pay per query with USDC on Base (x402). No API keys, no subscriptions, no signup.

Install

bash
pip install cabrini

Quick start

python
from cabrini import Cabrini
c = Cabrini(private_key="0x...")  # any Base wallet with USDC
# Intraday bars (pct from daily open) — $0.025bars = c.query("AAPL", "2024-01-15")
# Daily OHLCV + VWAP (absolute prices) — $0.001/yeardaily = c.daily("TSLA", "2024-01-01", "2024-03-31")
# SEC fundamentals — $0.02fins = c.fundamentals("NVDA")
# Full research brief — $0.25brief = c.brief("MSFT")

LangChain

python
from cabrini import get_langchain_toolsfrom langchain_openai import ChatOpenAIfrom langgraph.prebuilt import create_react_agent
tools = get_langchain_tools(private_key="0x...")agent = create_react_agent(ChatOpenAI(model="gpt-4o"), tools)
result = agent.invoke({"messages": [    {"role": "user", "content": "What was NVDA's trading volume on the day of their last earnings?"}]})

CrewAI

python
from cabrini import get_crewai_toolsfrom crewai import Agent, Task, Crew
tools = get_crewai_tools(private_key="0x...")
analyst = Agent(    role="Financial Analyst",    goal="Analyze stock performance using real market data",    tools=tools,)
task = Task(    description="Compare AAPL and MSFT intraday volatility on 2024-06-15",    agent=analyst,)
Crew(agents=[analyst], tasks=[task]).kickoff()

MCP (Claude, Cursor, etc.)

Point any MCP client at https://cabrini.ai/mcp:

json
{  "mcpServers": {    "cabrini": {      "url": "https://cabrini.ai/mcp"    }  }}

All endpoints

MethodPriceDescription
query(ticker, date)$0.025Full trading day of intraday bars
daily(ticker, start, end)$0.001/yearDaily OHLCV + VWAP — the absolute prices
batch(tickers, date)$0.02/tickerSeveral tickers, one date, no limit
range(ticker, start, end)$0.01/trading dayMulti-day intraday, no limit
bars(ticker, date, interval)$0.015/dayResampled intraday, 3-240 min
scan(date, **criteria)$0.10Screen every US stock; needs >= 1 criterion
tickers(date)$0.005List traded tickers
company(ticker)$0.005Company profile from SEC EDGAR
fundamentals(ticker)$0.02SEC quarterly data
filings(ticker)$0.01 / $0.05SEC filing index; +extracted section text
insiders(ticker)$0.02Insider transactions (Form 4)
brief(ticker)$0.25Joined research brief

Prices are quoted live in each 402 response and the client pays whatever the server asks — this table is documentation, not the source of truth.

Output format

Intraday methods (query, range, batch, bars) return fractional change from the daily open, not price levels:

python
{"window_start": "2024-01-02T14:30:00", "timestamp": 1704204600000000000, "pct_open": 0.0, "pct_high": 0.0012, "pct_low": -0.0003, "pct_close": 0.0008, "volume": 47000, "transactions": 312}

pct_x = (bar_x - day_open) / day_open, so 0.0012 is +0.12%.

daily() carries the absolute levels — open, high, low, close, volume, transactions and VWAP. Combine the two to reconstruct prices:

python
day = c.daily("AAPL", "2024-01-02", "2024-01-02")["data"][0]bars = c.query("AAPL", "2024-01-02")["data"]close_price = day["open"] * (1 + bars[-1]["pct_close"])

Use daily() rather than a third-party open: our reference is the first bar of the session and includes pre-market, so an external 09:30 open will not reconcile exactly.

How payment works

Every paid request uses x402 — an open protocol for HTTP micropayments:

  1. Client sends request → server returns 402 with a PAYMENT-REQUIRED header
  2. Client signs a USDC transfer authorization (EIP-3009)
  3. Client replays request with X-PAYMENT header containing the signed authorization
  4. Cloudflare edge worker verifies signature, submits to Base, forwards to origin
  5. Origin returns data

The Cabrini client handles all of this automatically. You just need a wallet with USDC on Base.

Get USDC on Base

  1. Bridge from Ethereum: bridge.base.org
  2. Buy directly: Coinbase → send USDC to your wallet on Base network
  3. Faucet (testnet): not needed, mainnet USDC is cheap ($0.025/query)

Links

Source: README.md at commit 9b04e1b

Tools

0
SourceWeft has not read this server's tools yet.

Version history

1
  1. v1.1.0LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declaredRequired10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts